吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4234|回复: 4
收起左侧

[分享] 手脱ORiEN(学习历程)

[复制链接]
开始的复活节 发表于 2017-4-21 23:38
本帖最后由 开始的复活节 于 2017-4-21 23:41 编辑

声明:

       1.纪录自己成长历程,与大家分享
       2.由于技术与能力,如有疏漏错误,欢迎指出,高手轻喷

简述:
      
       在小生我怕怕的吾爱破解脱壳练习七期中--ORiEN中,关于两个无效的指针的修复操作是需要用删除指针,这个操作我还是第一次碰到,于是我又找到了其他的ORiEN加壳程序练习,结果撞壁了,
具体原因吗就是删除无效指针后程序跑不起来,提示错误为内存不能为“written”于是我在论坛里搜索了一下,发现小生我怕怕大牛的老帖(http://www.52pojie.cn/thread-18757-1-1.html),
这个壳修复后跑不起来的原因是区段并没有修复完整,下面我们来看具体事例。
  
1.发送到PEID查壳,插件核心扫描:ORiEN v2.11 (DEMO)

2.寻找OEP
这个壳的OEP用ESP定理法就能快速找到,虽然简单,但是我们还是来看一下。

[Asm] 纯文本查看 复制代码
01023000 > /E9 5D010000     jmp calc.01023162        ;//加载OD程序停在此处
01023005   |CE              into
01023006   |D1CE            ror esi,1
01023008   |CE              into


[Asm] 纯文本查看 复制代码
01023162    60              pushad                ;//上面跳转后来到这里
01023163    E8 783B0000     call calc.01026CE0        ;//此处可以用ESP定理法(hr 6ffa4)


SHIFT+F9后来到下面代码后就单步跟
[Asm] 纯文本查看 复制代码
01024ADB    B8 E0190100     mov eax,0x119E0                ;//删除硬件断点
01024AE0    83F8 00         cmp eax,0x0
01024AE3    74 13           je short calc.01024AF8
01024AE5    05 00000001     add eax,calc.01000000
01024AEA    EB 08           jmp short calc.01024AF4
01024AEC    49              dec ecx
01024AED    E5 24           in eax,0x24
01024AEF    15 20FFE0CD     adc eax,0xCDE0FF20
01024AF4  ^ EB FB           jmp short calc.01024AF1        ;此处向上跳转实现后就快到OEP
01024AF6    EB 10           jmp short calc.01024B08
01024AF8    33C0            xor eax,eax
01024AFA    EB 06           jmp short calc.01024B02


[Asm] 纯文本查看 复制代码
01024AF1  - FFE0            jmp eax                                  ; calc.010119E0

来到OEP
[Asm] 纯文本查看 复制代码
010119E0    55              push ebp
010119E1    8BEC            mov ebp,esp
010119E3    6A FF           push -0x1
010119E5    68 70150001     push calc.01001570
010119EA    68 601D0101     push calc.01011D60                       ; jmp 到 msvcrt._except_handler3
010119EF    64:A1 00000000  mov eax,dword ptr fs:[0]
010119F5    50              push eax
010119F6    64:8925 0000000>mov dword ptr fs:[0],esp
010119FD    83C4 98         add esp,-0x68
01011A00    53              push ebx
01011A01    56              push esi
01011A02    57              push edi


下面就具体讲修复的问题吧。
图片1.
用LoadPE修复镜像大小并完整转存。然后用ImportREC修复,有一个无效的指针。在已知剪切指针无效的情况下我们试试删除指针。
程序出现了我上面遇到的错误。

用PEID来查看我们脱壳后的程序。

图片2.

LoadPE来看看程序区段,打开PE编辑器,加载我们的dumped_.exe程序。选择区段,发现了吧,.bss的物理偏移(R0ffset)和物理大小(Rsize)没有修复好。

图片3.

编辑区段修改一下

图片4.

将物理偏移改为虚拟地址的大小,物理大小改为虚拟大小。保存确定,程序完美运行。

图片5.

图片5

图片5

图片4

图片4

图片3

图片3

图片2

图片2

图片1

图片1

ORiEN.7z

106 KB, 下载次数: 1, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
Sound + 7 + 1 已经处理,感谢您对吾爱破解论坛的支持!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

md5 发表于 2017-4-24 13:05
感谢发布原创作品,吾爱破解论坛因你更精彩!
bysysnet 发表于 2017-4-26 23:08
5771876 发表于 2017-4-30 07:26
5771876 发表于 2017-4-30 07:27
000000000000000000000000000
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表