逆向思维逆向追踪TC(模拟跟踪)思路方法寻找暗桩--_第1页
逆向思维逆向追踪TC(模拟跟踪)思路方法寻找暗桩--_第2页
逆向思维逆向追踪TC(模拟跟踪)思路方法寻找暗桩--_第3页
逆向思维逆向追踪TC(模拟跟踪)思路方法寻找暗桩--_第4页
逆向思维逆向追踪TC(模拟跟踪)思路方法寻找暗桩--_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、逆向思维:逆向追踪+TC(模拟跟踪)思路方法 寻找暗桩-解除脱UPX后的校验疯狂代码 http:/CrazyC ?:http:/CrazyC转自:【脱文标题】逆向追踪+TC(模拟跟踪)思路方法寻找暗桩-解除脱UPX后校验【脱文作者】LenusJ J【作者邮箱】Lenus_MJ J【作者主页】 & 【使用工具】Ollydbg,Loadpe,PEID,Import_Rec 1.6【破解平台】WinXp(SP2)【软件Software名称】在DFC上逛时候找到个小外挂好象是玩升级游戏可以看其他人牌工具【加壳方式】UPX 0.89.6 - 1.02 / 1.05 - 1.24 - Markus & L

2、aszlo Overlay【脱壳声明】我是个考古人在软件 Software 土地上发掘未知宝藏!【脱壳内容】1.寻找OEP+dum修复IATUPX壳脱壳过程我就不再重复用ESPt律可以马上找到或者直接往下找到 0000000前面JMP用 LORDPEdum下来用Import_Rec修复注意到这个壳有OVERLY以脱壳修复后不求他马上能运行(如果马上就能运行那这篇文章就太垃圾了 AA)本来这个壳不想写什么但是看到论坛上很多人在问对于UP溉壳后修复问题所以在这里我打算整理次些基本思路方法供大家参考当然还有很多修复思路方法在这里不可能全讲完而且随着自己脱壳经验增长慢慢也会懂些窍 门技巧!2. 修复暗

3、桩I. 逆向跟踪法;运行修复好了 IAT发现什么反应都没有!; ; 从这里我们可以有两个结论 :; ;1. 壳不能正常运行不是有关 overlay 如果是没读到附加数据应该有非法操作和警告对话窗弹出; ;2. 壳应该是有校验地方发现壳被脱掉了就直接退出了; ; 得到上面结论我们不难得出我们下步是什么 :找校验地方; ; 但是代码茫茫我们该如何去寻找呢?我用我逆向追踪法!; ; 退出般用是这个 API:ExitProcess; ; 于是我们从最后开始向前追踪!这里是OEP;用0既入脱壳后代码我是DUMP_.EX来到这里0040F765 d;55 ; ; ; ; ; ; ; ; ; ; ; ; ;

4、 ; ; ; ; ;push ebp ; ; ; ; ; ; ; ;/0040F766 ; ;8BEC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov ebp,esp0040F768 ; ;6A FF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push -10040F76A ; ;68 903A4100 ; ; ; ; ; ; ; ; ;push dumped_.00413A90J J在命令行下断 BP ExitProcess ,F9 运行断下7C81CAA2 k ; ;8BFF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov edi

5、,edi ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ntdll.7C930738 ; ; ; ; ; ; ;/停在这里7C81CAA4 ; ; ; ; ;55 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push ebp7C81CAA5 ; ; ; ; ;8BEC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov ebp,esp7C81CAA7 ; ; ; ; ;6A FF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push -17C81CAA9 ;

6、; ; ; ;68 B0F3E877 ; ; ; ; ; ; ; ; ;push 77E8F3B0这里是系统领空看看堆栈0012FF04 ; ; ; ;77C09D45 ; ;/CALL 到 ExitProcess 来自 msvcrt.77C09D3F ; ; ; ; ;/还记得我写 ESP定律预备知识吗?(没看过去补补课AA)0012FF08 ; ; ; ;00000000 ; ;ExitCode = 0很明显77C09D4是 call ExitProcess时候压入堆栈地址 好了我们到77C09D4处去看看ctrl+g 输入77C09D45来到77C09D4处77C09D3F ; ; ;

7、; ;FF15 1C12BE77 ; ; ; ; ; ; ;call dword ptr ds:; kernel32.ExitProcess ; ;/这里 callExitProcess77C09D45 ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;3 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/这里是返回地址 ; ; ; ; ; ; ; ; ; ; ;

8、 ; ; ; ; ;这里还是系统领空向上面找找是什么地方 call 到这里来?77C09D11 ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;377C09D12 ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;377C09D13 ; ;8BFF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov edi,edi; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/口是这里F2下断77C09D15 ; ;55 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

9、 ; ;push ebp77C09D16 ; ;8BEC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov ebp,esp77C09D18 ; ; ; ; ;68 A440BE77 ; ; ; ; ; ; ; ; ;push msvcrt.77BE40A4 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ASCII mscoree.dll77C09D1D ; ; ; ; ;FF15 E810BE77 ; ; ; ; ; ; ;call dword ptr ds:; kernel32.GetModuleHandleA找到了新入口那就从来

10、遍 ctrl+F2 F9 断下!看堆栈!0012FF10 ; ; ; ;77C09E78 ; ; 返回到 msvcrt.77C09E78 来自 msvcrt.77C09D130012FF14 ; ; ; ;00000000继续找到77C09E7处!77C09E73 ; ; ; ; ;E8 9BFEFFFF ; ; ; ; ; ; ; ; ;call msvcrt.77C09D13 ; ; ;/ 77C09E78 ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;3 ; ;再想上找入口这里是call向77C09D1地方77C09E54 ; ; ; ;

11、;E8 0EFFFFFF ; ; ; ; ; ; ; ; ;call msvcrt._initterm 77C09E59 ; ; ; ; ;59 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;pop ecx 77C09E5A ; ; ; ; ;59 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;pop ecx 77C09E5B ; ; ; ; ;85DB ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;test ebx,ebx 77C09E5D ; ; ; ; ;74 0B ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

12、je msvcrt.77C09E6A ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/ 77C09E5F ; ; ; ; ;6A 08 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push 877C09E61 ; ; ; ; ;E8 B3060000 ; ; ; ; ; ; ; ; ;call msvcrt._unlock 77C09E66 ; ; ; ; ;59 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;pop ecx 77C09E67 ; ; ; ; ;5E ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;po

13、p esi 77C09E68 ; ; ; ; ;5D ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;pop ebp77C09E69 ; ; ; ; ;C3 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;retn ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/ 77C09E6A ; ; ; ; ;FF75 08 ; ; ; ; ; ; ; ; ; ; ; ; ;push dword ptr ss:ebp+8 ; ; ; ; ; ; ; ; ; ; ;/ 77C09

14、E6D ; ; ; ; ;8935 541AC377 ; ; ; ; ; ; ;mov dword ptr ds:77C31A54,esi 77C09E73 ; ; ; ; ;E8 9BFEFFFF ; ; ; ; ; ; ; ; ;call msvcrt.77C09D13第3处第1处看到前面有个RETN第个可能入口是77C09E6可能有个call从什么地方call过来;然而我们知道有些RET也 可能是变形JMP不过这个不太可能但我们对他也不可掉以轻心 );第3个地方是77C09E5他 JMf过了 RET所 以为了保险我们 3个起下断!好了重来次! F9断在了 77C09E5D处果然是JMft

15、i了 RETN好了继续向上找吧!77C09DD8 ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;377C09DD9 ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;377C09DDA ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;377C09DDB ; ; ; ; ;8BFF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov edi,edi ; ; ; ; ; ; ; ;/找到这里估计有是个call 吧!下断77C09DDD ; ;

16、; ; ;55 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push ebp重来后断在这里看堆栈0012FF20 ; ; ; ;77C09E90 ; ; 返回到 msvcrt.77C09E90 来自 msvcrt.77C09DDB ; ;/ 还没回到领空 (真累但是路 能断下来介绍说明我们方向是正确! )0012FF24 ; ; ; ;00000000继续来到77C09E9向上找77C09E7C ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;377C09E7D ; ; ; ; ;CC ; ; ; ; ; ; ; ; ;

17、; ; ; ; ; ; ; ; ;3是这里 下断重来77C09E7E m ; ;8BFF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov edi,edi ; ; ; ;/ 77C09E80 ; ; ; ; ;55 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push ebpF9 后断到这里看堆栈!0012FF34 ; ; ; ;0040F8A3 ; ;/CALL 到 exit 来自 dumped_.0040F89D ; ; ;/ 终于回到领空了!庆祝下吧!0012FF38 ; ; ; ;00000000 ; ;status = 0好了到领空去吧!

18、0040F884 ; ; rEB F5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;jmp dumped_.0040F87B0040F886 ; ; ; ; ;6A 0A ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push 0A0040F888 ; ; ; ; ;58 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;pop eax 0040F889 ; ; ; ;50 ; ; ; ; ;push eax0040F88A ; ; ; ;56 ; ; ; ; ;push esi0040F88B ; ; ; ;53 ; ; ; ; ;push eb

19、x0040F88C ; ; ; ;53 ; ; ; ; ;push ebx0040F88D ; ; ; ; ;FF15 F4804200 ; ; ; ; ; ; ;call dword ptr ds: ; ; ; ; ; ; kernel32.GetModuleHandleA 0040F893 ; ; ; ; ;50 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push eax0040F894 ; ; ; ; ;E8 17040000 ; ; ; ; ; ; ; ; ;call dumped_.0040FCB0从这里开0040F899 ; ; ; ; ;8945 98

20、 ; ; ; ; ; ; ; ; ; ; ; ; ;mov dword ptr ss:ebp-68,eax 0040F89C ; ; ; ; ;50 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push eax0040F89D ; ; ; ; ;FF15 BC864200 ; ; ; ; ; ; ;call dword ptr ds: ; ; ; ; ; ; ; ; msvcrt.exit ; ; ; ;/ExitProcess逆向追踪现在全部完毕了呵呵很累是吗?其实做个好crack想不累是不可能关键是这路下来我们在系统领空玩得挺高兴而且多学会了种思路方法呵呵值了!I

21、I.TC 模拟跟踪法下面我们工作就是什么地方是校验了 (般在exitprocess前面不远就会有个关键比较可以跳过但是这个却没有)于是我们在这里先停停来看看原未脱壳它在这里是如何运行呵呵我们发现原来这个地址离0E还不是很远!于是我们用0既入未脱壳用ESP定律来到0E处!(这里请格外注意下定要关掉原来这个会检查在内存中是否 还有另个同样进程如果有就直接退出这个也是我后来才知道但是这个东西却不是校验所以曾经影响了我判断!)向下找到0040F89D地址在他前面JMP和CALI全部下断(不要太多了 AA)我们会发现在(用F8)步过0040F894这里时候就运行了所以我们又得到了以下结论 :1.校验定在

22、0040F8941面某个地方我们脱壳后也步过了这句但是什么都没反映就出来了!2.0040F89D是正个终点上面call里面定有个校验比较如果发现被脱壳就直接跳出来结束(难怪我们运行时候什 么反应都没有 )知道上面结论我们就再来次F7 进入 0040F894 call0040FCB0 ; ; ; ; ;FF7424 10 ; ; ; ; ; ; ; ; ; ; ;push dword ptr ss:esp+10 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/0040FCB4 ; ; ; ; ;FF7424 10 ; ; ; ; ; ; ; ; ; ; ;push d

23、word ptr ss:esp+10 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;0040FCB8 ; ; ; ; ;FF7424 10 ; ; ; ; ; ; ; ; ; ; ;push dword ptr ss:esp+100040FCBC ; ; ; ; ;FF7424 10 ; ; ; ; ; ; ; ; ; ; ;push dword ptr ss:esp+100040FCC0 ; ; ; ; ;E8 43000000 ; ; ; ; ; ; ; ; ;call ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/这个 c

24、all没什么东0040FCC5 ; ; ; ; ;C2 1000 ; ; ; ; ; ; ; ; ; ; ; ; ;retn 10 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;/0040FD08 ; ; ;- FF25 28864200 ; ; ; ; ; ; ;jmp dword ptr ds: ; ; ; ; ; ; ; ; ; mfc42.#1576 ; ;/ 原来这个是个 api 啊!0040FD0E ; ; ; ; ;CC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

25、; ; ;3跳到这里 :到这里啊跳转表73D3CF2B m ; ;8BFF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov edi,edi ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ntdll.7C930738 ; ; ;/ 到这里了73D3CF2D ; ; ; ; ;53 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push ebx73D3CF2E ; ; ; ; ;56 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push esi哎又是

26、系统领空了!真是累如果各位还想在里面玩玩我可不想在奉陪了这里祭出0D虽大模拟跟踪命令TC在命令行键入 TC EIP回车后马上到了这里 :0040F062 ; ; ;- FF25 98814200 ; ; ; ; ; ; ;jmp dword ptr ds: ; ; ; ; ; ; ; ; ; mfc42.#3922 ; ; ;/0040F068 ; ; ;- FF25 9C814200 ; ; ; ; ; ; ;jmp dword ptr ds: ; ; ; ; ; ; ; ; ; mfc42.#1089又是个api ;到这里73DC9FED m ; ;8B15 9404E173 ; ; ;

27、; ; ; ;mov edx,dword ptr ds:73E10494 ; ; ;/73DC9FF3 ; ; ; ; ;85D2 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;test edx,edx73DC9FF5 ; ; ; ; ;74 14 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;je mfc42.73DCA00B又来到系统领空再来TC EIP00402300 ; ; ; ; ;64:A1 00000000 ; ; ; ; ; ;mov eax,dword ptr fs:0 ; ; ; ; ; ; ; ; ; ; ; ; ;/以为用了 api我就认不出

28、你了00402306 ; ; ; ; ;6A FF ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push -100402308 ; ; ; ; ;68 38FF4000 ; ; ; ; ; ; ; ; ;push dumped_.0040FF380040230D ; ; ; ; ;50 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push eax0040230E ; ; ; ; ;64:8925 00000000 ; ; ; ;mov dword ptr fs:0,esp 00402315 ; ; ; ; ;81EC 30020000 ; ; ; ; ;

29、 ; ;sub esp,230 0040231B ; ; ; ; ;53 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push ebx 0040231C ; ; ; ; ;56 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push esi 0040231D ; ; ; ; ;57 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push edi0040231E ; ; ; ; ;68 FC714100 ; ; ; ; ; ; ; ; ;push dumped_.004171FC ; ; ; ; ; ; ; ; ; ; ;

30、 ; ; ; ; ; ; ; ; ; ; ASCII哈哈终于找到了小OLDWORM_GLUPGRADE_HELPER_APP00402323 ; ; ; ; ;6A 00 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push 000402325 ; ; ; ; ;8BF1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;mov esi,ecx00402327 ; ; ; ; ;68 01001F00 ; ; ; ; ; ; ; ; ;push 1F00010040232C ; ; ; ; ;FF15 CC804200 ; ; ; ; ; ; ;call dword

31、ptr ds: ; ; ; ; ; ; kernel32.OpenMutexA00402332 ; ; ; ; ;85C0 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;test eax,eax00402334 ; ; ; ; ;8986 C4000000 ; ; ; ; ; ; ;mov dword ptr ds:esi+C4,eax0040233A ; ; ; ; ;75 56 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;jnz dumped_.004023920040233C ; ; ; ; ;68 FC714100 ; ; ; ; ; ; ; ; ;pus

32、h dumped_.004171FC ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ASCII OLDWORM_GLUPGRADE_HELPER_APP00402341 ; ; ; ; ;6A 01 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push 100402343 ; ; ; ; ;50 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;push eax00402344 ; ; ; ; ;FF15 D0804200 ; ; ; ; ; ; ;call dword ptr ds: ; ; ; ; ; ; ; kernel32.CreateMutexA上面0040233A有个跳转但是这个不是哦看到前面Ope nM utex/了吗?这个估计是判断内存里面还有同样进程 然后决定新建个新进程CreateMutexA(如果哪位兄弟觉得这个功能很多余也可以暴掉不过我还算是比较尊重原 创 A-A)向下面找0040236F ; ; ; ; ;E8 ACD60000 ; ; ; ; ; ; ; ; ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论