glts 发表于 2007-9-27 11:21:12

RLPack V1.15-V1.17 (aPlib 0.43) -> ap0x脱壳去自校验(敬告一些无视版规的朋友们)

问题来源:
https://www.chinapyg.com/viewthread.php?tid=19392&extra=page%3D1

希望这位会员下次注意~也在此提醒下其它的会员~请遵规则~

一.查壳得知为RLPack V1.15-V1.17 知道有这壳以前没搞过拿它来练手吧~看这位朋友坚持着破例写一次 OD载入看下入口点
004F2CD7 >60            PUSHAD                              /F8
004F2CD8    E8 00000000   CALL 004F2CDD                         /F8到这里停下 看寄存器ESP值显红色,右链--跟随到数据窗口
004F2CDD    8B2C24          MOV EBP,DWORD PTR SS:
004F2CE0    83C4 04         ADD ESP,4
004F2CE3    8DB5 53030000   LEA ESI,DWORD PTR SS:
004F2CE9    8D9D 02020000   LEA EBX,DWORD PTR SS:
004F2CEF    33FF            XOR EDI,EDI
004F2CF1    E8 45010000   CALL 004F2E3B
004F2CF6    EB 0F         JMP SHORT 004F2D07

//很明显的直接ESP定律试下(基础的知识还是要掌握的,好比打字开始要看着键盘打,熟练了可以不用看键盘打,甚至可以忘记掉五笔的字根,引用fonge兄弟的话,忘记掉一切意由我随行)

0012FFA47C930738ntdll.7C930738      右链--断点-硬件访问-word 下好断之后SHIFT+F9 断在下面

004F2E16    61            POPAD
004F2E17- E9 9C4DF9FF   JMP 00487BB8       //断在这里 F8单步到过OEP
004F2E1C    61            POPAD

00487BB8    55            PUSH EBP            //OEP 完整DUMP&FIX 之后程序为DELPHI程序但运行不起来,看了下应该是有自校验
00487BB9    8BEC            MOV EBP,ESP
00487BBB    83C4 F0         ADD ESP,-10
00487BBE    B8 B8794800   MOV EAX,004879B8
00487BC3    E8 84E3F7FF   CALL 00405F4C
00487BC8    A1 7C9C4800   MOV EAX,DWORD PTR DS:
00487BCD    8B00            MOV EAX,DWORD PTR DS:
00487BCF    E8 288BFEFF   CALL 004706FC
00487BD4    8B0D 789D4800   MOV ECX,DWORD PTR DS:            ; kRavSnCh.0048AC60

二.去除自校验 OD载入脱壳修复的文件 直接F9 产生异常来到
0041851B|.8B73 08       MOV ESI,DWORD PTR DS:   /看信息栏,这样当然运行不起来了
DS:=???
ESI=00E91804

向上翻几行来到此段的代码头

00418514/$53            PUSH EBX                   //看这里,有N多CALL调用此处crtl+r查看所有调用 在每个调用的CALL上下好断点(一共52个)重载程序
00418515|.56            PUSH ESI
00418516|.57            PUSH EDI
00418517|.8BFA          MOV EDI,EDX
00418519|.8BD8          MOV EBX,EAX
0041851B|.8B73 08       MOV ESI,DWORD PTR DS:

重载程序后SHIFT+F9运行程序 一直运行直到出现错误为止,然后按下小键盘上的 "-"号看看是哪个CALL调用了这里产生错误异常,于是发现是这里调用了这段代码导致出错.
00418118/$53            PUSH EBX
00418119|.E8 E2DDFEFF   CALL 00405F00
0041811E|.8B98 0C000000 MOV EBX,DWORD PTR DS:
00418124|.85DB          TEST EBX,EBX
00418126|.75 19         JNZ SHORT 00418141
00418128|.B2 01         MOV DL,1
0041812A|.A1 205E4100   MOV EAX,DWORD PTR DS:
0041812F|.E8 14B0FEFF   CALL 00403148
00418134|.8BD8          MOV EBX,EAX
00418136|.E8 C5DDFEFF   CALL 00405F00
0041813B|.8998 0C000000 MOV DWORD PTR DS:,EBX
00418141|>E8 BADDFEFF   CALL 00405F00
00418146|.8B90 08000000 MOV EDX,DWORD PTR DS:
0041814C|.8BC3          MOV EAX,EBX
0041814E|.E8 C1030000   CALL 00418514    //这个CALL调用了那段代码而产生了异常错误,好找到关键地方了,在此段代码的首(00418118)下好段,重载程序其它的断点暂时留着我也不知道还会有哪个CALL会调用那段代码,重载好了,SHIFT+F9运行直到停在"00418118"(刚才查得是这个CALL调用那段代码从而导致了异常).N十次SHIFT+f9之后停在了这里仔细的看下这两行

00418126|. /75 19         JNZ SHORT 00418141 //我想这里一定是跳走了,从而导至了异常
00418128|. |B2 01         MOV DL,1         //敏感的东西~不会用语言表达~算是一个标志位吧~或许在代码的前面还有关键点.暂时从上面这个跳转动手吧


00418126|. /75 19         JNZ SHORT 00418141//把它行NOP掉~让其不跳~直接附以标志
00418126      90            NOP               // 修改完毕之后,禁用所有断点(因为之前下了好多断点,不先禁用会停好多次^_^),运行测试一下,结果正常~
00418127      90            NOP

三.小结
此壳不难关键在于去校验~首先要求大家要能区别什么情况是脱壳不正确产生的错误~什么样的情况是程序的校验~这就要求大家在平时要多做练习~多总结!欢迎遇到问题发贴出来讨论~而不是一味的把自己搞不定的程序放到论坛上来"求 脱"~如果哪位兄弟帮你脱好了放了个脱好的给你~你学到什么呢~如果单纯的是为了用这个程序你脱它目的何在?修改?把原创作者的信息改成自己的?这样不尊重别人劳动成果的人或许真的就是RPYWT.

请遵守版规~下次再有此类情况~一律严惩~

[ 本帖最后由 glts 于 2007-9-27 12:01 编辑 ]

775825866 发表于 2007-9-27 20:04:12

谢谢了,我发现好多基础的东西我自己都不会!以后要好好学习啊!

温柔 发表于 2007-9-28 09:23:31

DUMP&FIX后,我载入怎么不是你说的这个地址啊,虽然他会跳一个对话框出来,提示不能“READ”
,地址到是在你说那。。。。

glts 发表于 2007-9-28 12:42:47

原帖由 温柔 于 2007-9-28 09:23 发表 https://www.chinapyg.com/images/common/back.gif
DUMP&FIX后,我载入怎么不是你说的这个地址啊,虽然他会跳一个对话框出来,提示不能“READ”
,地址到是在你说那。。。。


学思路~看方法~别去看址

775825866 发表于 2007-9-28 17:28:41

因为那个软件,已经被当作病毒杀掉了,所以我想自己脱壳,然后自己再加壳!

yingfeng 发表于 2007-9-28 23:14:10

跟着飞哥又学习了一下,呵呵,

我这里也是弹出对话框,不能为"READ"但还是那个地址呀!晕

8680005 发表于 2007-9-29 14:01:05

这里 高手真多 支持了

sinlay 发表于 2007-10-4 12:10:24

重载程序后SHIFT+F9运行程序 一直运行直到出现错误为止,然后按下小键盘上的 "-"号看看是哪个CALL调用了这里产生错误异常,于是发现是这里调用了这段代码导致出错.

这个地方作不好下小键盘上的 "-"号 不知道有什么用

风过无痕 发表于 2007-10-14 00:36:09

不懂,现在学习中……PYG的教程:loveliness:

xknt 发表于 2007-11-2 11:39:35

这个壳感觉兼容性蛮不错的
页: [1] 2
查看完整版本: RLPack V1.15-V1.17 (aPlib 0.43) -> ap0x脱壳去自校验(敬告一些无视版规的朋友们)