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 编辑 ] 谢谢了,我发现好多基础的东西我自己都不会!以后要好好学习啊! DUMP&FIX后,我载入怎么不是你说的这个地址啊,虽然他会跳一个对话框出来,提示不能“READ”
,地址到是在你说那。。。。 原帖由 温柔 于 2007-9-28 09:23 发表 https://www.chinapyg.com/images/common/back.gif
DUMP&FIX后,我载入怎么不是你说的这个地址啊,虽然他会跳一个对话框出来,提示不能“READ”
,地址到是在你说那。。。。
学思路~看方法~别去看址 因为那个软件,已经被当作病毒杀掉了,所以我想自己脱壳,然后自己再加壳! 跟着飞哥又学习了一下,呵呵,
我这里也是弹出对话框,不能为"READ"但还是那个地址呀!晕
这里 高手真多 支持了 重载程序后SHIFT+F9运行程序 一直运行直到出现错误为止,然后按下小键盘上的 "-"号看看是哪个CALL调用了这里产生错误异常,于是发现是这里调用了这段代码导致出错.
这个地方作不好下小键盘上的 "-"号 不知道有什么用 不懂,现在学习中……PYG的教程:loveliness: 这个壳感觉兼容性蛮不错的
页:
[1]
2