-
-
[讨论]eXcalibur V1.03通用脱壳方法
-
发表于:
2008-7-30 23:15
8103
-
[讨论]eXcalibur V1.03通用脱壳方法
【文章标题】: eXcalibur V1.03通用脱壳方法
【文章作者】: ayarei
【下载地址】: 自己搜索下载
【使用工具】: ollyice
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
天某群里有人问到eXcalibur V1.03的脱壳问题。因为很久没有脱过这个壳了,不过记得脱起来还是比较简单的一个壳。这个壳算是取当时众家之长逆向出来的,另外背景音乐是仙剑3的《望海潮》,都是比较好玩的东西。(不过那时候的壳现在看来难度都是很低的,就是有些比较复杂,比如SVK那个需要修很长时间stolen code)正好很久没有使用过调试工具了,也算是复习一下吧,不过感觉手生了很多,od都不会使了,哈哈。另外考虑到通用性原因,很多地方都不是下断中断,因为由于选择项导致部分代码可能并不执行。
Ollydbg载入某VC加壳程序,HideOD插件隐藏一下ollydbg:
00405000 > /E9 00000000 jmp 00405005
003D021B 8985 A4394000 mov dword ptr [ebp+4039A4], eax
003D0221 E8 0D000000 call 003D0233
003D0226 45 inc ebp
003D0227 6E outs dx, byte ptr es:[edi]
003D0228 61 popad
003D0229 626C65 57 bound ebp, qword ptr [ebp+57]
003D022D 696E 64 6F77005>imul ebp, dword ptr [esi+64], 5600776>
003D0234 FFD7 call edi
003D0236 8985 94394000 mov dword ptr [ebp+403994], eax
003D023C 6A 00 push 0 //这里改成push 1
003D023E FFB5 A4394000 push dword ptr [ebp+4039A4]
003D0244 FFD0 call eax
003D02EB FF15 12544000 call dword ptr [<&KERNEL32.VirtualAll>; kernel32.VirtualAlloc
003D02F1 FC cld
003D02F2 8BF8 mov edi, eax
003D02F4 8BB5 3C374000 mov esi, dword ptr [ebp+40373C]
003D02FA 46 inc esi
003D02FB B9 10000000 mov ecx, 10
003D0300 E8 5E000000 call 003D0363 //找到这里
003D0305 85C0 test eax, eax
003D0307 74 07 je short 003D0310 //改成jmp short 003D0310
003D0309 E8 08000000 call 003D0316 //这里处理Stolen Call
003D030E ^ E2 F0 loopd short 003D0300
003D0310 61 popad
003D0311 E9 BE000000 jmp 003D03D4
003D03E4 6A 00 push 0
003D03E6 6A 00 push 0
003D03E8 6A 11 push 11
003D03EA 50 push eax
003D03EB FFD7 call edi //这里nop掉
003D03ED BE A8250000 mov esi, 25A8
003D03F2 85F6 test esi, esi
003D03F4 0F84 CA050000 je 003D09C4 //到003D09C4上下个断
003D0975 61 popad
003D0976 3385 E0394000 xor eax, dword ptr [ebp+4039E0]
003D097C 8907 mov dword ptr [edi], eax //这三句指令要修改
003D097E 8385 E4394000 0>add dword ptr [ebp+4039E4], 4
003D0985 61 popad
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)