csapp系列
文章平均质量分 79
咸鱼宇
以前我没得选,现在我只想做一条咸鱼。博客为个人学习过程笔记。。。
展开
-
csapp bomb lab phase_1
一.首先先阅读CSAPP官网上的两份文件(gdb使用说明与handout)准备工作:切换terminal到bomb的文件夹下,可以通过ls指令查看文件关键就在于可执行文件bomb(绿色的那个)二.对于phase_1拆炸弹:1.打开关键道具 gdb (GNU DeBuger)对可执行文件逐步分析2.(可以先用objdump -t)查看该文件的汇编代码,不过阅读过两份官...原创 2018-09-01 21:34:51 · 757 阅读 · 0 评论 -
csapp bomb lab phase_2
一.承接上一篇文章,接下来是解决bomb的phase_2的问题 首先我们看看phase_2的汇编代码,上文已经提到了反汇编指令disas (dis assemble) phase_2(函数名) 其中有个函数名是否值得注意,<read_six_numbers>,显然,这个函数需要我们读入6个数字作为密码。(作者一开始在0x400f0e处设置过断点,但是在run时,...原创 2018-09-02 23:26:00 · 1709 阅读 · 0 评论 -
csapp bomb lab phase_4
随着课程的深入,笔者发现实验基本是延续着上课的进程来的,包括之前利用jump table 实现了switch的编译。这一小节采用的知识点是函数(procedure)与递归(recurison),写到这里,笔者觉得CSAPP课程编排真的挺不错,通过实验来强调知识点,所以说,单单看书必然是事倍功半,因为书势必追求完备性,对初学者而言,很难抓到汇编语言部分的重点,而视频可以稍微集中一下知识点,老师的...原创 2018-09-11 16:36:58 · 3107 阅读 · 1 评论 -
csapp bomb lab phase_3
本文写的是炸弹lab的第三层密码,刚开始解的时候,确实有点摸不着头脑,后来重新看了一遍视频,把当时划水放过的switch重点看了一遍,发现第三重密码其实就是一个switch判断。 正如教授所说,switch在判断条件不稀疏的时候,gcc并不是采用我们第一印象的if-else chain 来进行编译,而是采用了一种叫jump table 的结构来判断。在汇编语言里面,最具有特征的...原创 2018-09-06 19:22:16 · 2664 阅读 · 0 评论 -
csapp bomb lab phase_5
CSAPP phase这个阶段很有意思,考察了两个知识点,一方面是数组在内存中的存储,另一方面,其采用了一个简单加密算法,对字符数组进行了加密,也就意味着需要破解密钥才能打开这关。作者花了不少时间解决这关,成就感当然也很大啦~另外,作者想用英语写文章,提高自己的英语表达能力,可能有的地方并不流畅,还请原谅~At the begining,I didn't find the point ...原创 2018-09-13 14:47:09 · 2432 阅读 · 0 评论