摘要: 前言 众所周知, 递归函数容易爆栈 ,究其原因,便是函数调用前需要先将参数、运行状态压栈,而 递归则会导致函数的多次无返回调用,参数、状态积压在栈上,最终耗尽栈空间 。 一个解决的办法是从算法上解决,把递归算法改良成只依赖于少数状态的迭代算法,然而此事知易行难,线性递归还容易,树状递归就难以转化了, 阅读全文
posted @ 2017-02-26 15:55 cheukyin 阅读(2623) 评论(3) 推荐(5) 编辑
摘要: 前言 之前受知乎用户 启发,写了个 源码的调用图生成器,可以以图示法显示 函数的调用关系, 代码放在了github仓库里,仅供参考: "CodeSnippet/python/SRCGraphviz/c++ at master · Cheukyin/CodeSnippet · GitHub" 主要思路 阅读全文
posted @ 2017-02-12 18:13 cheukyin 阅读(2541) 评论(1) 推荐(4) 编辑
摘要: 这是CSAPP官网上的著名实验,通过注入汇编代码实现堆栈溢出攻击。实验材料可到我的github仓库 https://github.com/Cheukyin/CSAPP-LAB/ 选择buffer-overflow分支下载 linux默认开启ASLR,每次加载程序,变量地址都会不一样,所以若要关... 阅读全文
posted @ 2015-06-12 18:42 cheukyin 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 这两天稍稍看了一下boost的preprocessor库,发觉boost那帮疯子竟然利用各种奇技淫巧定义出各种数据类型和结构,还在上面定义出加减乘除等等各种运算,在快速浏览的过程中,还瞄到了很眼熟的各种宏名:list,cons,fold_left、fold_right,估计这帮人把函数式语言的很多特... 阅读全文
posted @ 2015-06-12 16:07 cheukyin 阅读(1379) 评论(7) 推荐(1) 编辑
摘要: 著名的CSAPP实验:二进制炸弹就是通过gdb和反汇编猜测程序意图,共有6关和一个隐藏关卡只有输入正确的字符串才能过关,否则会程序会bomb终止运行隐藏关卡需要输入特定字符串方会开启实验材料下载地址:http://csapp.cs.cmu.edu/2e/labs.html下面通关解法:反汇编:obj... 阅读全文
posted @ 2015-05-17 00:21 cheukyin 阅读(5158) 评论(0) 推荐(0) 编辑
摘要: 文章同时可在我的github blog上阅读:http://cheukyin.github.io/python/2014-08/pygments-highlight-src-export-html.html本文完整代码可见我的_pygment-html.py1前言最近在研究利用org-mode写博客... 阅读全文
posted @ 2015-01-07 15:43 cheukyin 阅读(1950) 评论(0) 推荐(0) 编辑
摘要: 该文章同时发布在我的github blog上:http://cheukyin.github.io/jekyll/emacs/2014-08/org2jekyll.html1前言在这个月之前,我一直都是Vimmer,可是VimScript语法令人无语的混乱和棉花般的软弱无力,让我苦恼不已,可是工作学习... 阅读全文
posted @ 2014-12-03 18:29 cheukyin 阅读(1759) 评论(2) 推荐(0) 编辑