欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2022-06-28 08:31:46
【脱文标题】 手动脱壳入门第十五篇 FSG 1.33 【脱文作者】 weiyi75[Dfcg] 【作者邮箱】 weiyi75@sohu.com 【作者主页】 Dfcg官方大本营 【使用工具】 Peid,Ollydbg,I... 08-10-08...
【脱文标题】 手动脱壳入门第十五篇 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 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