csapp lab2

Posted autoria

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csapp lab2相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

六星经典CSAPP笔记系列 - 作者:西代零零发

WWWW!!!CSAPP学习笔记

CSAPP Bomb Lab记录

CSAPP第八章

CSAPP第七章概念

CSAPP第七章