new bomblab
1.Border relations with Canada have never been better.
2.1 2 4 8 16 32
- 1 311
- 7 0
- IONEFG
该实验要求用户输入6个不同的字符串,如果任何一个不正确,炸弹就会爆炸。
1.checksec bomblab 来查看保护开启的情况
2.gdb bomb
3.disass main
4.disass phase_1 栈顶抬高sub,传参给esi寄存器。这个是第二个参数,第一个参数在进入phase_1前已经传入了。
0x0000000000400e32 <+146>: call 0x40149e <read_line>
0x0000000000400e37 <+151>: mov rdi,rax
将我们输入的作为第一个参数。rax是前面read的返回值。
0x402400是一个字符串的首地址,在gdb下输入x/s 0x402400显示这个地址处存的东西,这个字符串是”Border relations with Canada have never been better.”
5.x/s 0x402400
6.test eax,eax 基本上和and eax,eax是一样的,但是test不会改变eax的结果,只是改变flag寄存器的状态。(flag寄存器又是什么?就是进位标志、零标志、溢出标志)当eax为0的时候,令zf=0.
7.je 是一个跳转指令,看zf标志(零标志)
8.返回看