手脱FSG 1.33版本壳记录
使用到的工具:
A. 侦壳工具PEID;
B. 动态 反汇编工具OD;
C. 修复工具ImportREC。
使用侦壳工具PEID查壳,显示为:
FSG 1.33 -> dulek/xt
(1)单步跟踪
按住快捷键F8一直单步步入
00409C8A > BE A4014000 mov esi,FBFD.004001A4
00409C8F AD lods dword ptr ds:[esi]
00409C90 93 xchg eax,ebx
00409C9B FF13 call dword ptr ds:[ebx]
00409C9D ^ 73 F9 jnb short FBFD.00409C98 //此处往回跳
00409C9F 33C9 xor ecx,ecx //使用F4下断运行到所选位置
00409CB2 12C0 adc al,al
00409CB4 ^ 73 FA jnb short FBFD.00409CB0 //此处往回跳
00409CB6 75 3C jnz short FBFD.00409CF4//使用F4下断运行到所选位置
00409CB8 AA stos byte ptr es:[edi]
00409CB9 ^ EB E0 jmp short FBFD.00409C9B //此处往回跳
00409CBB FF53 08 call dword ptr ds:[ebx+8]//使用F4下断运行到所选位置
00409CFB 5E pop esi
00409CFC ^ EB 9D jmp short FBFD.00409C9B //此处往回跳
00409CFE 8BD6 mov edx,esi //使用F4下断运行到所选位置
00409D0C 97 xchg eax,edi
00409D0D ^ EB 87 jmp short FBFD.00409C96 //此处往回跳
00409D0F AD lods dword ptr ds:[esi] //使用F4下断运行到所选位置
00409D1A 84C0 test al,al
00409D1C ^ 75 FB jnz short FBFD.00409D19 //此处往回跳
00409D1E FE0E dec byte ptr ds:[esi] //使用F4下断运行到所选位置
00409D29 FE0E dec byte ptr ds:[esi]
00409D2B - 0F84 B27BFFFF je FBFD.004018E3 //此处跳向程序的OEP
00409D31 56 push esi
跳转未实现
004018E3=FBFD.004018E3
004018E3 E8 8C000000 call FBFD.00401974 //到达OEP,判定被添加花指令
004018E8 E8 57010000 call FBFD.00401A44
使用OD自带插件脱壳,运行程序,可以运行,但不能正常工作,使用ImportREC抓取刚用OD脱壳后的程序修复下!测试运行,正常工作。单步跟踪脱壳成功!
(2)ESP定律
00409C94 56 push esi
00409C95 96 xchg eax,esi //单步至此,注意右窗口的ESP和EIP
00409C96 B2 80 mov dl,80
寄存器(FPU)
EAX 00409098 FBFD.00409098
ECX 0012FFB0
EDX 7C9585EC ntdll.KiFastSystemCallRet
EBX 00400198 FBFD.00400198
ESP 0012FFC0 //选中此行,右键选择数据窗口中跟随
EBP 0012FFF0
ESI 004001B0 FBFD.004001B0
EDI 00401000 FBFD.00401000
EIP 00409C95 FBFD.00409C95
数据窗口
0012FFC0 004001B0 FBFD.004001B0 //选中此行,断点,硬件访问,字
0012FFC4 7C82F23B 返回到 kernel32.7C82F23B
在上面右键选择断点,硬件访问,字后,按住组合键Shift+F9运行,程序将停留在此处:
00409D01 AD lods dword ptr ds:[esi]
00409D02 48 dec eax
00409D03 74 0A je short FBFD.00409D0F
继续按快捷键F8单步步入
00409D0C 97 xchg eax,edi
00409D0D ^ EB 87 jmp short FBFD.00409C96 //此处往回跳
00409D0F AD lods dword ptr ds:[esi] //使用F4下断运行到所选位置
00409D1A 84C0 test al,al
00409D1C ^ 75 FB jnz short FBFD.00409D19 //此处往回跳
00409D1E FE0E dec byte ptr ds:[esi] //使用F4下断运行到所选位置
00409D29 FE0E dec byte ptr ds:[esi]
00409D2B - 0F84 B27BFFFF je FBFD.004018E3 //此处跳向程序的OEP
00409D31 56 push esi
跳转未实现
004018E3=FBFD.004018E3
004018E3 E8 8C000000 call FBFD.00401974 //到达OEP,判定被添加花指令
004018E8 E8 57010000 call FBFD.00401A44
使用OD自带插件脱壳,运行程序,可以运行,但不能正常工作,使用ImportREC抓取刚用OD脱壳后的程序修复下!测试运行,正常工作。使用ESP定律脱壳成功!
几秒突破FSG 1.33 -> dulek/xt
【破解日期】 2006年4月30日
【破解作者】 冷血书生[OCN][DFCG]
【作者邮箱】 meiyou
【作者主页】 meiyou
【使用工具】 FlyOD、 LordPE、ImportREC
【破解平台】 Win9x/NT/2000/XP
【软件名称】 记事本
【下载地址】 本地下载
【软件大小】
【加壳方式】 FSG 1.33 -> dulek/xt
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
00410305 > BE A4014000 mov esi,NOTEPAD.004001A4 ; 载入停在这里,往下拉
0041030A AD lods dword ptr ds:[esi]
0041030B 93 xchg eax,ebx
0041030C AD lods dword ptr ds:[esi]
0041030D 97 xchg eax,edi
0041030E AD lods dword ptr ds:[esi]
0041030F 56 push esi
00410310 96 xchg eax,esi
00410311 B2 80 mov dl,80
00410313 A4 movs byte ptr es:[edi],byte ptr ds:[esi]
00410314 B6 80 mov dh,80
00410316 FF13 call dword ptr ds:[ebx]
00410318 ^ 73 F9 jnb short NOTEPAD.00410313
0041031A 33C9 xor ecx,ecx
0041031C FF13 call dword ptr ds:[ebx]
0041031E 73 16 jnb short NOTEPAD.00410336
00410320 33C0 xor eax,eax
00410322 FF13 call dword ptr ds:[ebx]
00410324 73 1F jnb short NOTEPAD.00410345
00410326 B6 80 mov dh,80
00410328 41 inc ecx
00410329 B0 10 mov al,10
0041032B FF13 call dword ptr ds:[ebx]
0041032D 12C0 adc al,al
0041032F ^ 73 FA jnb short NOTEPAD.0041032B
00410331 75 3C jnz short NOTEPAD.0041036F
00410333 AA stos byte ptr es:[edi]
00410334 ^ EB E0 jmp short NOTEPAD.00410316
00410336 FF53 08 call dword ptr ds:[ebx+8]
00410339 02F6 add dh,dh
0041033B 83D9 01 sbb ecx,1
0041033E 75 0E jnz short NOTEPAD.0041034E
00410340 FF53 04 call dword ptr ds:[ebx+4]
00410343 EB 26 jmp short NOTEPAD.0041036B
00410345 AC lods byte ptr ds:[esi]
00410346 D1E8 shr eax,1
00410348 74 2F je short NOTEPAD.00410379
0041034A 13C9 adc ecx,ecx
0041034C EB 1A jmp short NOTEPAD.00410368
0041034E 91 xchg eax,ecx
0041034F 48 dec eax
00410350 C1E0 08 shl eax,8
00410353 AC lods byte ptr ds:[esi]
00410354 FF53 04 call dword ptr ds:[ebx+4]
00410357 3D 007D0000 cmp eax,7D00
0041035C 73 0A jnb short NOTEPAD.00410368
0041035E 80FC 05 cmp ah,5
00410361 73 06 jnb short NOTEPAD.00410369
00410363 83F8 7F cmp eax,7F
00410366 77 02 ja short NOTEPAD.0041036A
00410368 41 inc ecx
00410369 41 inc ecx
0041036A 95 xchg eax,ebp
0041036B 8BC5 mov eax,ebp
0041036D B6 00 mov dh,0
0041036F 56 push esi
00410370 8BF7 mov esi,edi
00410372 2BF0 sub esi,eax
00410374 F3:A4 rep movs byte ptr es:[edi],byte ptr ds:[esi>
00410376 5E pop esi
00410377 ^ EB 9D jmp short NOTEPAD.00410316
00410379 8BD6 mov edx,esi
0041037B 5E pop esi
0041037C AD lods dword ptr ds:[esi]
0041037D 48 dec eax
0041037E 74 0A je short NOTEPAD.0041038A
00410380 79 02 jns short NOTEPAD.00410384
00410382 AD lods dword ptr ds:[esi]
00410383 50 push eax
00410384 56 push esi
00410385 8BF2 mov esi,edx
00410387 97 xchg eax,edi
00410388 ^ EB 87 jmp short NOTEPAD.00410311
0041038A AD lods dword ptr ds:[esi]
0041038B 93 xchg eax,ebx
0041038C 5E pop esi
0041038D 46 inc esi
0041038E AD lods dword ptr ds:[esi]
0041038F 97 xchg eax,edi
00410390 56 push esi
00410391 FF13 call dword ptr ds:[ebx]
00410393 95 xchg eax,ebp
00410394 AC lods byte ptr ds:[esi]
00410395 84C0 test al,al
00410397 ^ 75 FB jnz short NOTEPAD.00410394
00410399 FE0E dec byte ptr ds:[esi]
0041039B ^ 74 F0 je short NOTEPAD.0041038D
0041039D 79 05 jns short NOTEPAD.004103A4
0041039F 46 inc esi
004103A0 AD lods dword ptr ds:[esi]
004103A1 50 push eax
004103A2 EB 09 jmp short NOTEPAD.004103AD
004103A4 FE0E dec byte ptr ds:[esi]
004103A6 - 0F84 200DFFFF je NOTEPAD.004010CC -----------------------> 004010CC 别告诉我你看不懂?
几秒而已~
HAVE FUN~~
--------------------------------------------------------------------------------
【破解总结】
没啥好总结,纯属娱乐~
阅读(1356) | 评论(0) | 转发(0) |