动画介绍:大家好 我是千里之外 很抱歉 前一个教程有未注册的字样 这次我已经弄好了 呵呵 好了 我们开始我们今天的课程 手脱UPX 工具 PEiD_0[1][1].94 OllyDBG 脱壳对象 QQ聊天记录察看器 5.3 好了 我们先来查下壳(这个软件本来是没有壳的 为了说明方便我加上了壳) UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo 我这里介绍3种脱壳的方法 1.基本方法 看我操作 首先不要分析 因为有壳分析也出不来什么结果 004AAC41 ^\72 ED JB SHORT QQ聊天记.004AAC30
这是个往回跳的 语句 我们不能让它回去 因为那样的 话我们就总在这个循环里出不去了 我们点下一行 然后按F4运行到所选的地方 好了 继续往下走 004AAC57 /73 0B JNB SHORT QQ聊天记.004AAC64
这是个往前跳的 但没有实现 我们要让它实现 因为我发现这样可以节省不少麻烦 实现的方法很简单 在这个语句处按回车 在按F4就实现了 这个跳转 004AAC72 ^\EB D4 JMP SHORT QQ聊天记.004AAC48
这个我们也不能叫它跳回去 我们点下一行 然后按F4运行到所选的地方 004AAC79 /72 11 JB SHORT QQ聊天记.004AAC8C
让这个往前跳的跳转实现 在这个语句处按回车 在按F4就实现了 这个跳转 004AAD30 ^\E2 D9 LOOPD SHORT QQ聊天记.004AAD0B
这也是个循环 我们要跳出去 004AAD6D 8903 MOV DWORD PTR DS:[EBX],EAX 004AAD6F 83C3 04 ADD EBX,4 004AAD72 ^ EB E1 JMP SHORT QQ聊天记.004AAD55 004AAD74 FF96 9CB70A00 CALL DWORD PTR DS:[ESI+AB79C] 004AAD7A 61 POPAD 004AAD7B ^ E9 5CB5FDFF JMP QQ聊天记.004862DC 004AAD80 98 CWDE 004AAD81 AD LODS DWORD PTR DS:[ESI] 004AAD82 4A DEC EDX 004AAD83 00A8 AD4A000C ADD BYTE PTR DS:[EAX+C004AAD],CH 004AAD89 97 XCHG EAX,EDI 004AAD8A 48 DEC EAX 004AAD8B 0000 ADD BYTE PTR DS:[EAX],AL
注意上面的语句 004AAD7A 61 POPAD 这是出栈的标志 我们很可能已经到了 程序的入口 004AAD7B ^ E9 5CB5FDFF JMP QQ聊天记.004862DC 这是一个大跳转 它跳到我们程序的入口点 004862DC 55 PUSH EBP
这就是程序的入口点 到这里 壳就脱完了 |