码迷,mamicode.com
首页 > 移动开发 > 详细

csapp lab2

时间:2016-06-24 12:46:04      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

PHASE_1

使用到的命令:

objdump -t bomb | less

我们得到的bomb文件是一个二进制文件,使用 objdump 可以得到反汇编的代码;

-t 表示生成符号表,不必关注 . 开头的内容,可以看到phase_1/phase_2/.../phase_6,显然应该是对应不同的关卡;

| less 表示使用一种方便浏览的分页方式,可以使用对应的快捷键辅助浏览。

 

objdump -d bomb > bomb.txt

-d将需要执行的内容生成反汇编代码。

 

chmod 777 bomb

赋予文件的读写及可执行权限,避免出现permission denied。

 

gdb bomb

用gab打开文件

 

break explode_bomb

可以在函数名、行号等地方设置断点

 

run

执行被gdb打开的文件

 

disas

显示当前函数的反汇编代码

 

info registers

查看当前寄存器使用情况

 

print $eax

输出一个寄存器的内容

 

x/s $eax(或是一个内存地址如0x12314)

x 命令表示访问相应地址下的内容,/s是可选项,表示这个地址的内容是string

 

stepi x

单步执行,可以跟一个可选参数表示单步执行x次,默认是一次。执行后再使用disas可以看到箭头指示的当前指令有所变化。

 

对于这关:

查看到phase_1的反汇编代码之后可以判断出检查方式是使用strings_not_equal这个函数接受两个参数,判断输入命令和答案是否一致,其中对答案所在的地址直接使用x/s就可得到答案,使用shift+ctrl+c/v在终端下复制黏贴答案。

csapp lab2

标签:

原文地址:http://www.cnblogs.com/autoria/p/5613663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!