您现在的位置: 骇客基地 >> 黑客文章 >> 黑客攻防 >> 黑客编程 >> 正文

手动脱壳入门第十五篇 FSG 1.33
骇客基地 阅读: 时间:2007-6-3 10:38:34 来源:www.hookbase.com
  
【脱文标题】 手动脱壳入门第十五篇 FSG 1.33

【脱文作者】 weiyi75[Dfcg]

【作者邮箱】 weiyi75@sohu.com

【作者主页】 Dfcg官方大本营

【使用工具】 Peid,Ollydbg,ImportREC,Loadpe

【脱壳平台】 Win2K/XP

【软件名称】 Unpackme

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

【软件大小】 2.65 KB

【下载地址】 点击下载FSG 1.33.rar

【加壳方式】 FSG 1.33 -> dulek/xt

【保护方式】 FSG压缩壳

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


--------------------------------------------------------------------------------

【脱壳内容】

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

00404B58 >  BE A4014000     mov esi, fsg1_33.004001A4    //外壳入口。
00404B5D    AD              lods dword ptr ds:[esi]
00404B5E    93              xchg eax, ebx
00404B5F    AD              lods dword ptr ds:[esi]
00404B60    97              xchg eax, edi
00404B61    AD              lods dword ptr ds:[esi]
00404B62    56              push esi
00404B63    96              xchg eax, esi
00404B64    B2 80           mov dl, 80
00404B66    A4              movs byte ptr es:[edi], byte ptr ds:[esi>
00404B67    B6 80           mov dh, 80
00404B69    FF13            call dword ptr ds:[ebx]
00404B6B  ^ 73 F9           jnb short fsg1_33.00404B66
00404B6D    33C9            xor ecx, ecx
00404B6F    FF13            call dword ptr ds:[ebx]
00404B71    73 16           jnb short fsg1_33.00404B89
00404B73    33C0            xor eax, eax
00404B75    FF13            call dword ptr ds:[ebx]
00404B77    73 1F           jnb short fsg1_33.00404B98

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

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

内存镜像,项目 13
地址=00404000
大小=00001000 (4096.)
Owner=fsg1_33  00400000   
区段=
包含=SFX,imports,resources  // 当前段是在404000里面。
类型=Imag 01001002
访问=R
初始访问=RWE


内存镜像,项目 12
地址=00401000
大小=00003000 (12288.)
Owner=fsg1_33  00400000
区段=
包含=code      //Oep肯定是在Code段里面。不管FSG在SFX,imports,resources区段里面解压,循环搞什么飞机。最后肯定要跨段访问401000

Code段。
类型=Imag 01001002
访问=R
初始访问=RWE

于是,命令行下

tc eip<404000         //模拟跟踪指令。

1分钟不到,Oep就到了。

00401160      68            db 68           //Oep,点清除分析看得习惯一点。
00401161      F8            db F8
00401162      13            db 13
00401163      40            db 40                                    ;  CHAR '@'
00401164      00            db 00
00401165      E8            db E8
00401166      F0            db F0
00401167      FF            db FF
00401168      FF            db FF
00401169      FF            db FF
0040116A      00            db 00
0040116B      00            db 00
0040116C      00            db 00
0040116D      00            db 00
0040116E      00            db 00
0040116F      00            db 00
00401170      30            db 30                                    ;  CHAR '0'
.........................................................................................

00401160    68 F8134000     push fsg1_33.004013F8   //熟悉的VB程序入口特征码,Loadpe直接脱壳。
00401165    E8 F0FFFFFF     call fsg1_33.0040115A                    ; jmp to MSVBVM60.ThunRTMain
0040116A    0000            add byte ptr ds:[eax], al
0040116C    0000            add byte ptr ds:[eax], al
0040116E    0000            add byte ptr ds:[eax], al
00401170    3000            xor byte ptr ds:[eax], al
00401172    0000            add byte ptr ds:[eax], al
00401174    3800            cmp byte ptr ds:[eax], al
00401176    0000            add byte ptr ds:[eax], al
00401178    0000            add byte ptr ds:[eax], al
0040117A    0000            add byte ptr ds:[eax], al
0040117C    95              xchg eax, ebp
0040117D  ^ 75 A7           jnz short fsg1_33.00401126
.........................................................................................

脱壳后发现程序不能运行,这时需要用Imprec修复引入函数表(Import Table)

在Oep处填1160,点IT自动搜索,然后点获输入信息,看到输入表全部有效,点修复抓取文件按钮,选择Dump的文件,修复它,正常运行。

再看看API断点找Oep,单步跟踪FSG 1.33后,大家可以走捷径,当然是下API断点。

Btw:  前提是你有过单步跟踪Fsg的经验,不然你看不懂下面是什么意思。也就是第一次学某个壳要按正常方法单步跟踪找入口体会壳,不要取巧走捷径,精通了就可以走捷径脱壳。

00404B58 >  BE A4014000     mov esi, fsg1_33.004001A4  //外壳入口。
00404B5D    AD              lods dword ptr ds:[esi]
00404B5E    93              xchg eax, ebx
00404B5F    AD              lods dword ptr ds:[esi]
00404B60    97              xchg eax, edi
00404B61    AD              lods dword ptr ds:[esi]
00404B62    56              push esi
00404B63    96              xchg eax, esi
00404B64    B2 80           mov dl, 80
00404B66    A4              movs byte ptr es:[edi], byte ptr ds:[esi>
00404B67    B6 80           mov dh, 80
00404B69    FF13            call dword ptr ds:[ebx]
00404B6B  ^ 73 F9           jnb short fsg1_33.00404B66
00404B6D    33C9            xor ecx, ecx
00404B6F    FF13            call dword ptr ds:[ebx]
00404B71    73 16           jnb short fsg1_33.00404B89
00404B73    33C0            xor eax, eax
00404B75    FF13            call dword ptr ds:[ebx]
00404B77    73 1F           jnb short fsg1_33.00404B98
00404B79    B6 80           mov dh, 80
00404B7B    41              inc ecx
00404B7C    B0 10           mov al, 10
.........................................................................................

命令行

bp GetModuleHandleA

77E6AB06 >&nbs

[1] [2] [3] 下一页

今天广告
参与评论:
注意事项:
【手动脱壳入门第十五篇 FSG 1.33】文章由骇客基地网上搜集,其立场行为并不代表本站。
如果您发现该文章若无意中侵犯到您的权利,请联系我们!
未经本站明确许可,任何网站不得非法盗链及抄袭本站资源;如引用页面,请注明来自本站,谢谢您的支持!
最近更新
最新推荐
     
 
黑客首页 | 服务指南 | 软件发布  | 关于我们 | 本站声明  | 隐私声明 | 诚征英才 | 网站地图 | 友情链接 |
 
 
中国·黑客·骇客·基地 请使用IE6.0版本, 分辩率1024×768进行浏览 www.hookbase.com 站长:利客 Email:hookbase@163.com
Copyright © 2004-2009 All Rights Reserved. 粤ICP备05000985号