贴子在这里 http://bbs.pediy.com/showthread.php?s=&threadid=17286
南蛮妈妈不自量力 从看雪主页下载 ExeCryptor 2.2.5.1 来学习一下
下载在这里 http://www.pediy.com/tools/PACK/Protectors/EXECryptor/EXECryptor%20V2.2.5.1.zip
XPsp2 + DS3.2 + IceExt0.67 + flyOD1.1 + WinHex
过程比较乱, 更像是笔记, 希望得到您的指点
一 oep
运行主程序, 第一个区段是从401000到4C8000
所以我用 WinHex 的RAM编辑器, 打开EXECryptor的主要内存, alt-g 到4C8000, 向上找
因为是Delphi的程序, 所以向上翻翻,向下翻翻, 可以确定oep是 4C74D0
二 dump
这个东东我在OD下跑不起来, 在SI下也跑不起来, 但是在SI下似乎跑得更远
006DEE6A > E8 F7FEFFFF call EXECrypt.006DED66 //这个是ep
006DEE6F 05 272D0000 add eax,2D27
006DEE74 FFE0 jmp eax
006DEE76 E8 EBFEFFFF call EXECrypt.006DED66 //这个是TLS的CALLBACK, 比ep先执行
006DEE7B 05 DE220000 add eax,22DE
006DEE80 ^ FFE0 jmp eax
006DEE82 E8 04000000 call EXECrypt.006DEE8B
下2个断点
bpmb 6DEE6A x //在ep处下断
bpmb 6DEE76 x //在TLS的CALL下断
主程序跑起来
先断在6DEE76 这个时候d一下401000, u一下 4C74D0(oep)显然是空的
bd 掉 6DEE76这个断点, 继续跑
断在ep处,也就是6DEE6A
这个时候发现各个区段都已经解码了, 4C74D0(oep)处是
004C74D0 E9 A0C30D00 jmp 005A3875