首页
社区
课程
招聘
[求助]PEncrypt 3.1 Final遇到指针修复问题
发表于: 2006-9-6 11:14 4129

[求助]PEncrypt 3.1 Final遇到指针修复问题

2006-9-6 11:14
4129
脱PEncrypt 3.1 Final -> junkcodeeuk壳

刚才到吴老师的论坛上看到这个软件
All Media Fixer Pro V6.6 汉化版
下载地址:http://teacher.zjnu.cn/wuguole/HA_AllMediaFixerPro66_WGL.exe
下载地址:http://wuguole.duote.com/down/HA_AllMediaFixerPro66_WGL.exe
见回帖说注册码失效 所以想下来看看
查壳PEncrypt 3.1 Final -> junkcodeeuk 壳  晕死~~

搞定他 OD载入:
004E3600 > $  B8 00E05500   MOV EAX,MediaFix.0055E000   //停到这里 F8单步一次
004E3605   .  FFD0          CALL EAX                                     //F7跟进此Call
004E3607      2C            DB 2C                                    ;  CHAR ','
……
F7跟进CALL:
0055E000   /E9 25010000     JMP MediaFix.0055E12A           //这里的跳转是实现的 我们F8一次即可
0055E005   |57              PUSH EDI
0055E006   |65:6E           OUTS DX,BYTE PTR ES:[EDI]                ; I/O 命令
……
F8一次后停到这里:
0055E12A    58              POP EAX                                  ; MediaFix.004E3607  //停到这里,我们在该代码下方找到第一个retn语句 并下断
0055E12B    E8 16030000     CALL MediaFix.0055E446
0055E130    48              DEC EAX
……中间无用代码省去
0055E2A7    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
0055E2A9    59              POP ECX
0055E2AA    5F              POP EDI
0055E2AB    5E              POP ESI
0055E2AC    C3              RETN                                  //这就是第一个retn语句,下断,运行停在这里。F8一次 即可通往OEP

我这还得Ctrl+A分析下
004E3600 > $  55            PUSH EBP                                 ;  MediaFix.0055E005 // OEP
004E3601   .  8BEC          MOV EBP,ESP
004E3603   .  83C4 F0       ADD ESP,-10
004E3606   .  53            PUSH EBX
004E3607   .  B8 F0324E00   MOV EAX,MediaFix.004E32F0
004E360C   .  E8 8737F2FF   CALL MediaFix.00406D98

PS:找到OEP后,使用Lord PE Dump,但是使用IR时 获得输入信息,发现有两个无效指针,如果减切的话,则修复文件无法打开,不减切却可以运行。请教一下这里出了什么问题。如果修复的话,那两个无效指针应该这样修复?

这是一个朋友发的贴 本来我想帮下结果搞了半天也不能解决 所以上来问了

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 145
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有人知道吗
我一直在线等在
看雪里的大侠一定不会让我失望的
2006-9-6 14:30
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
ImportREC里有2个函数没识别出来:

004E84D4 >0055E2FE   MediaFix.0055E2FE
004E854C >0055E337   MediaFix.0055E337

出现这原因是壳处理了,解决思路是重新加载壳,对这个地址下内存写断点,看外壳对IAT处理过程。所幸用OD打开这个壳时,会发现原来的函数己在那里:

004E84D4 >77F41710   GDI32.GetStockObject
004E854C >77F43B1B   GDI32.CreateFontIndirectA

剩下就简单了,将ImportREC中2个无效函数修正即可。
2006-9-6 14:48
0
雪    币: 145
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ok  thank you  看雪老大亲自出马
实在太感谢了
我用看雪老大的方法  od 载入 在 go到 内存55e2fe  下断    f9到这
察看堆栈  最上面  可以看到调用的函数  解决了
看雪老大把思路和方法都讲了 让小弟矛涩盾开 谢谢拉
2006-9-6 16:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
偶也来学习一下了
2006-9-6 17:23
0
游客
登录 | 注册 方可回帖
返回
//