逆向之路(一) 代码节空白区添加代码

这是人生中第一篇博客,记录逆向之路的开始,以便多年后能看到自己的成长,希望那时可以成为一个让自己看得起的人。好了废话不多说,开始正文。

代码节空白区添加代码,以添加MessageBox为例:
1..获取MessageBox地址,构造shellcode代码:OD->bp MessageBoxA->break断点
有user32.dll的程序有MessageBox

确定MessageBox的真正地址是768CCF50

通过VC6.0按alt+8进入反汇编中查看MessageBox(0,0,0,0)

(4次push 0, 1次call,1次jmp)

故要加程序为6A 00 6A 00 6A 00 6A 00 E8 00 00 00 00 E9 00 00 00 00

2.加入代码空白区,查看剩余空间是否够18个字节,若SizeOfRawData-VirtualSize>18则够加



3.文件偏移从PointerToRawData开始,从PointerToRawData+SizeOfRawData往前找空闲区,找到最上头一行开始更改代码:6A 00 6A 00 6A 00 6A 00 E8 00 00 00 00 E9 00 00 00 00。



4.计算E8文件偏移:真正在内存中运行地址:ImageBase+'E9'所在地址


ImageBase=400000 ,'E9'所在地址为450BD
400000+450BD=4450BD

x=MessageBox真正地址-真正在内存中运行地址
x=768CCF50-4450BD=76487E93

即E8 93 7E 48 76

5.计算E9文件偏移:真正地址=EntryPoint+ImageBase
y=真正地址-E9的下一条指令的地址

y=441EC+400000-450C2=3FF12A

即E9 2A F1 3F 00



6.修改OEP,从6A 00……所在行开始执行,记录所在行地址为新OEP;将原OEP(OP头中)改为新入口。ctrl+s保存。


打开被改软件,弹出MessageBox,确定后程序正常运行

这里有个问题是messagebox关闭后ipmsg无法继续运行,我检查了OEP也没有改错,望大佬指正。

                                                                                                              —————时二O一八年三月九日黄昏  by Snippers
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值