教好拳的苏师父 發表於 2008-10-8 19:04:31

手动脱壳入门第十五篇 FSG 1.33

【脱文标题】 手动脱壳入门第十五篇 FSG 1.33<br />

【脱文作者】 weiyi75 <br />

【作者邮箱】 weiyi75@sohu.com <br />

【作者主页】 Dfcg官方大本营 <br />

【使用工具】 Peid,Ollydbg,ImportREC,Loadpe<br />

【脱壳平台】 Win2K/XP<br />

【软件名称】 Unpackme<br />

【软件简介】 Loveboom用VB写的一个FSG压缩的脱壳练习程序<br />

【软件大小】 2.65 KB<br />

FSG 1.33.rar<br />

【加壳方式】 FSG 1.33 -&gt; dulek/xt<br />

【保护方式】 FSG压缩壳<br />

【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)<br />

-------------------------------------------------------------------------------- <br />

【脱壳内容】 <br />

首先Peid查壳,为FSG 1.33 -&gt; dulek/xt,OD载入运行,无任何异常,判断其为压缩壳。<br />

00404B58 &gt;BE A4014000   mov esi, fsg1_33.004001A4    //外壳入口。<br />

00404B5D    AD            lods dword ptr ds:<br />

00404B5E    93            xchg eax, ebx<br />

00404B5F    AD            lods dword ptr ds:<br />

00404B60    97            xchg eax, edi<br />

00404B61    AD            lods dword ptr ds:<br />

00404B62    56            push esi<br />

00404B63    96            xchg eax, esi<br />

00404B64    B2 80         mov dl, 80<br />

00404B66    A4            movs byte ptr es:, byte ptr ds:[esi&gt;<br />

00404B67    B6 80         mov dh, 80<br />

00404B69    FF13            call dword ptr ds:<br />

00404B6B^ 73 F9         jnb short fsg1_33.00404B66<br />

00404B6D    33C9            xor ecx, ecx<br />

00404B6F    FF13            call dword ptr ds:<br />

00404B71    73 16         jnb short fsg1_33.00404B89<br />

00404B73    33C0            xor eax, eax<br />

00404B75    FF13            call dword ptr ds:<br />

00404B77    73 1F         jnb short fsg1_33.00404B98<br />

打开内存镜像,它工作区段就是404000 resources段里面,内存镜像断点没有作用。它也没有用PUSHAD等语句,ESP定律也不能用。据说FSG 1.33还有变形版本,单步慢慢跟踪太费时间,下API断点,也慢。<br />

对付它最好的方法就是模拟跟踪,因为它没有SEH,模拟跟踪最好不过了。<br />

内存镜像,项目 13<br />

地址=00404000<br />

大小=00001000 (4096.)<br />

Owner=fsg1_3300400000   <br />

区段=<br />

包含=SFX,imports,resources// 当前段是在404000里面。<br />

类型=Imag 01001002<br />

访问=R<br />

初始访问=RWE<br />

内存镜像,项目 12<br />

地址=00401000<br />

大小=00003000 (12288.)<br />

Owner=fsg1_3300400000<br />

区段=<br />

包含=code      //Oep肯定是在Code段里面。不管FSG在SFX,imports,resources区段里面解压,循环搞什么飞机。最后肯定要跨段访问401000 <br />

Code段。<br />

类型=Imag 01001002<br />

访问=R<br />

初始访问=RWE<br />

于是,命令行下<br />

tc eipBE A4014000   mov esi, fsg1_33.004001A4//外壳入口。<br />

00404B5D    AD            lods dword ptr ds:<br />

00404B5E    93            xchg eax, ebx<br />

00404B5F    AD            lods dword ptr ds:<br />

00404B60    97            xchg eax, edi<br />

00404B61    AD            lods dword ptr ds:<br />

00404B62    56            push esi<br />

00404B63    96            xchg eax, esi<br />

00404B64    B2 80         mov dl, 80<br />

00404B66    A4            movs byte ptr es:, byte ptr ds:[esi&gt;<br />

00404B67    B6 80         mov dh, 80<br />

00404B69    FF13            call dword ptr ds:<br />

00404B6B^ 73 F9         jnb short fsg1_33.00404B66<br />

00404B6D    33C9            xor ecx, ecx<br />

00404B6F    FF13            call dword ptr ds:<br />

00404B71    73 16         jnb short fsg1_33.00404B89<br />

00404B73    33C0            xor eax, eax<br />

00404B75    FF13            call dword ptr ds:<br />

00404B77    73 1F         jnb short fsg1_33.00404B98<br />

00404B79    B6 80         mov dh, 80<br />

00404B7B    41            inc ecx<br />

00404B7C    B0 10         mov al, 10<br />

.........................................................................................<br />

命令行<br />

bp GetModuleHandleA <br />

77E6AB06 &gt;&amp;nbs

<br />
頁: [1]
查看完整版本: 手动脱壳入门第十五篇 FSG 1.33