Exp1 PC平台逆向破解(5)M 20154307 冯彬

Exp1 PC平台逆向破解(5)M 20154307 冯彬#

本次只是做了部分实验,课上学习了手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。

首先,我们先了解本次任务需要用到的代码###

1.反汇编,将汇编语言转换成机器语言

  `objdump -d 文件名 | more`

2.vi命令,进入文件编辑界面

   vi 文件名

3.vi命令状态下的进制转换

①将当前文本转化为16进制格式

   :%!xxd

②将当前文本转化回文本格式

   :%!xxd -r

4.vi状态下的查找

   /查找的内容

5.vi状态下的存盘退出

   :wq

ok,了解这些以后,就可以开始了。首先我们用这个函数objdump -d 20154307 | more查看该文件的机器语言。

如上图所示,主函数调用foo,查阅可知e8 d7 ff ff ff就是调用foo的指令

我们想让它调用getShell

如上图,可知foo和getshell的地址,然后通过计算偏移量,可得出将e8 d7 ff ff ff改为e8 c3 ff ff ff

进入该文件的vi编辑模式

按住esc,输入:%!xxd指令,查看其十六进制格式,再按住esc,输入/e8 d7,找到foo指令位置,修改为c3,即为getshell对应的指令

修改后

然后,用 :%!xxd -r转回原格式,存盘退出

再用反汇编看其指令,如下图

看,已经修改完了。

那么,如此一来,实验1的修改指令部分就已经完成了。

实验问题###

部分同学补码可能已经忘记,在计算偏移量的时候可能会有些疑惑,需要课后复习之前学过的有关计算机组成原理等的知识。

posted @ 2018-03-07 19:15  20154307  阅读(166)  评论(0编辑  收藏  举报