
CSAPP
文章平均质量分 90
code120302
这个作者很懒,什么都没留下…
展开
-
CSAPP Lab 2 Bomb小记三
在前面两篇文章中,我们已经分析完了六个phase,接下来分析最后一个phase。实验过程secret phase 破解在此之前,我们分析bomb.c文件,发现一件有趣的事情:在文件执行的过程中,我们似乎并没有察觉到phase_defused()函数的动静,接下来我们看看这个函数干了什么。这里要注意:这是一个防止栈溢出的操作。把%fs段偏移0x28处的一个数据存储到了%rsp上面0x68距离处(金丝雀)903:将%esi置为0x402619,查看其代表含义为输入两个数字和一个字符串,原创 2021-04-26 22:10:08 · 181 阅读 · 0 评论 -
CSAPP Lab 2 Bomb小记二
接着上一篇文章,我们来继续分析几个phase实验过程phase 4 破解反汇编代码:设置断点:执行程序:分析汇编:446:压栈447:传入的第二个参数%rcx448:传入的第一个参数%rdx449:输入” %d %d”450-453:输入个数为2454-457:判断输入的第一个参数的大小,该数需小于等于14,且被初始化为14458:%esi值为0459:%edi的值等于刚输入第一个参数的值460:调用func4,大致上浏览一遍函数,找到传入func4的参数:%edi,%e原创 2021-04-26 21:56:19 · 241 阅读 · 0 评论 -
CSAPP Lab2 Bomb小记一
实验概述这是一个非常有趣的实验,实验以通关(phase)的形式来呈现汇编语言学习的重点与难点,并且一环扣一环,除了必须要经过的六个phase外,还有一个secret phase,接下来我们看一下如何破解这些phase。实验过程首先,输入命令objdump -d bomb > bomb_assembly.S,得到bomb_assembly.s反汇编文件。之后在终端用gdb对bomb.c进行调试。phase 1破解首先给出phase 1的反汇编代码:347: 压栈348:将0x402原创 2021-04-26 21:19:49 · 248 阅读 · 0 评论