实践三
- 使用objdump –d lhc打开文件,找到main函数:
可以看到:
Rbp-0x40为首地址被定义为:0x63686c,将ASCII,转换为字符为 c h l
Rbp-0x20为首地址被定义为rax:0x353233353313032
如果从低地址往高地址连续的就是32 30 31 33 35 33 32 35
转换为字符表示为:20135325
采用直接修改文件来直接执行函数
在test之后的两句jne跳向的地址是0x4006ac+0x11
0x4006ea+0x11
第一个jne指令直接修改为jmp到printf这条指令的位置。
第一条jne的位置是4006aa,此时的eip是4006ac。
需要跳转到4006fb,那么就是要增加0x4f个位置,那么就是将
74 11 改为 eb 4f
先打开文件,然后输入:%!xxd
输入/7411搜索到位置对比objdump查看到的机器指令和这里的机器指令前后相同,则就是要找的位置。修改为eb4f,修改后输入:%!xxd -r并保存,再重新执行程序,结果如下,破解成功。