码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-03-07 20:14:46      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:进入   输入   修改   退出   dump   markdown   语言转换   9.png   忘记   

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的修改指令部分就已经完成了。

实验问题

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

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

标签:进入   输入   修改   退出   dump   markdown   语言转换   9.png   忘记   

原文地址:https://www.cnblogs.com/gnlm/p/8524762.html

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