逆向之手工加壳——004

逆向之手工加壳


试验工具: LordPE、010Editor、OD


试验程序是vs2017编译的控制台程序,开始加壳。

一、添加区段

  使用LordPE打开程序, 添加区段,新区段就是我们的壳

在这里插入图片描述

  找到NewSec区段,右键编辑,添加0x200字节大小,随后点击保存。保存后可以运行下,发现运行不起来。

在这里插入图片描述


  使用010Editor打开,找到最后,按Ctrl+Shift+i 添加0x200个字节大小。保存之后,点击程序发现可以正常运行了。

在这里插入图片描述


二、修改入口点(OEP)

  同样用LordPE打开,首先记录原始的入口点,我这程序是0x1144C。

在这里插入图片描述

  新添加的区段的RVA地址是0x23000,可以从上上上面的图片查询。将入口点直接更改为23000,然后点击保存。此时运行程序会崩溃。

在这里插入图片描述


三、OD修改跳转的原始入口点

  现在的目的是要让程序能正常运行起来,原理就是从壳代码跳转到原始的入口点
  由于win7以后的系统和程序都使用了随机基址,不能用jmp 直接跳转到一个固定的值
  这里需要用到GetPC 技术,也就是获取到当前EIP数据的技术。这里使用 call 下一条指令;pop eax。 这样eax就保存了当前运行代码的基址

在这里插入图片描述

   修改代码后,打个补丁,然后程序就运行起来了。
   虽然壳代码只是一个跳转到OEP的功能,但至少这也是个壳。


如果对加壳有兴趣,可以看一下我写的加壳基础篇和高级篇

基础篇:https://blog.csdn.net/qq_31507523/article/details/89438410

高级篇:https://blog.csdn.net/qq_31507523/article/details/89678830

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值