Hmily 发表于 2008-3-25 22:46

Reloz1.0 试脱(eXPressor.Protection V1.6.0.1)

【文章标题】: Reloz1.0 试脱(eXPressor.Protection V1.6.0.1)
【文章作者】: a__p
【作者邮箱】: a__p@163.com
【作者主页】: http://www.unpack.cn
【作者QQ号】: xxxxxxx
【软件名称】: Reloz1.0
【下载地址】: 自己搜索下载
【保护方式】: eXPressor.Protection V1.6.0.1
【使用工具】: OD,UIF,LoadPE,ImporptREC
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
PEID扫描:eXPressor.Protection V1.6.0.1 -> CGSoftLabs* Sign.By.fly * 20080308 *

1、F8一下, HR ESP

00413000 > 68 92944100         push 00419492            ; F8一下
00413005C3            retn                  ; HR ESP
0041300602048A            add al,byte ptr ds:
00413009A0 000A9682         mov al,byte ptr ds:
0041300EB4 7E            mov ah,7E
0041301064:17            pop ss                      ; 段寄存器更改
004130122E:BB E193D89B      mov ebx,9BD893E1               ; 多余的前缀
00413018D6            salc
0041301901ED             add ebp,ebp
0041301BAE            scas byte ptr es:
0041301C64:2285 4A87BB37       and al,byte ptr fs:
004130238E71 EA         mov seg?,word ptr ds:          ; 未定义的段寄存器
004130261D 0FE3C6CD         sbb eax,CDC6E30F
0041302B89E4             mov esp,esp

2、BP VirtualProtect 后F9,注意看堆栈出现Size = 1000 时停止。

0012F65800B7A669 /CALL 到 VirtualProtect 来自 00B7A666
0012F65C7C80A7D4 |Address = kernel32.GetLocalTime
0012F66000001000 |Size = 1000 (4096.)                  ;看这里。
0012F66400000020 |NewProtect = PAGE_EXECUTE_READ
0012F6680012F6B0 \pOldProtect = 0012F6B0
0012F66C7C930738 ntdll.7C930738

3、BP GetProcAddress , RET返回,F8几下,直到出现下面代码:

00B62CC381BD 5CFDFFFF AF027294    cmp dword ptr ss:,947202AF
00B62CCD74 24            je short 00B62CF3            ;不能跳,NOP
00B62CCF81BD 5CFDFFFF 3B1032E3    cmp dword ptr ss:,E332103B
00B62CD974 18            je short 00B62CF3            ;不能跳,NOP
00B62CDB81BD 5CFDFFFF AB1CA7D7    cmp dword ptr ss:,D7A71CAB
00B62CE574 0C            je short 00B62CF3            ;不能跳,NOP
00B62CE781BD 5CFDFFFF 3C7C33B6    cmp dword ptr ss:,B6337C3C
00B62CF175 2A            jnz short 00B62D1D         ;不能跳,NOP
00B62CF3EB 01            jmp short 00B62CF6
00B62CF5EA FFB5D0FD FFFF       jmp far FFFF:FDD0B5FF            ; 远跳转
00B62CFCFFB5 58FDFFFF      push dword ptr ss:
00B62D02E8 ED120000         call 00B63FF4
00B62D0759            pop ecx
00B62D0859            pop ecx
00B62D0985C0             test eax,eax

4、一路F9,直到出现OEP为止,删除硬件断点后用 UIF,输入进程ID后修复。

0040B2CD > 8BEC             mov ebp,esp               ;OEP
0040B2CF83C4 F0         add esp,-10
0040B2D2B8 7CB24000         mov eax,0040B27C
0040B2D7E8 048FFFFF         call 004041E0
0040B2DCA1 70C44000         mov eax,dword ptr ds:
0040B2E133D2             xor edx,edx
0040B2E3E8 DCDFFFFF         call 004092C4
0040B2E8A1 70C44000         mov eax,dword ptr ds:
0040B2ED8B00             mov eax,dword ptr ds:
0040B2EF83C0 18         add eax,18
0040B2F2E8 E1BCFFFF         call 00406FD8
0040B2F7E8 1C80FFFF         call 00403318
0040B2FC0000             add byte ptr ds:,al
0040B2FE0000             add byte ptr ds:,al
0040B3000000             add byte ptr ds:,al

UIF 修复记录(勾选:Fix Directiy Imports / Fix NtDll to Kernel32)

Fixing Success...

Fixed Module : Reloz.exe
Image Base: 00400000

IAT RVA : 00650000
IAT Size : 0000024C

Normal Imports: 148
Directly Imports : 0
All Imports   : 148


5、LoadPE 修正镜像后DUMP,ImporptREC修复(输入UIF修复后的IAT RVA : 00650000 IAT Size : 0000024C)即可。


--------------------------------------------------------------------------------
【经验总结】
eXPressor.Protection V1.6.0.1 最近看到加此壳比较常见,大多为外挂、木马。。。。

Reloz1.0 是个非常不错的工具!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于一蓑烟雨技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                            2008年03月25日 22:17:52

Squn 发表于 2008-3-26 01:21


/////. 学习班的大作 ~
/////. 好好学习~

nishizhu 发表于 2008-3-29 00:30

看来要好好学学了
////. 学习班的大作 ~
/////. 好好学习~

q52013140 发表于 2008-3-31 17:00

请问你们会脱QQ音速的G吗???
页: [1]
查看完整版本: Reloz1.0 试脱(eXPressor.Protection V1.6.0.1)