- UID
- 5512
注册时间2005-12-19
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 开心 2022-9-25 11:58 |
---|
签到天数: 12 天 [LV.3]偶尔看看II
|
hmimys-Packer V1.2、1.3 脱脱脱
娱乐一下,看论坛没朋友写这个,就忽悠一下!
今天有朋友叫我帮忙脱一壳,并要文章,闲着没事,脱~~
查壳后发现是hmimys-Packer V1.2 -> hmimys,但感觉奇怪,似乎这个壳被某人修改过,代码有所不同(后面证明):
★一、OD载入目标程序:
/*1012CD8*/ call PYG脱客_.01012D72 //EP
/*1012CDD*/ add byte ptr ds:[eax],dl
/*1012CDF*/ add dword ptr ds:[eax],eax
/*1012CE1*/ add byte ptr ds:[eax],dl
/*1012CE3*/ add byte ptr ds:[ecx],al
/*1012CE5*/ in al,dx
/*1012CE6*/ dec esp
/*1012CE7*/ add byte ptr ds:[eax],al
/*1012CE9*/ iretd
★二、Alt+M 打开内存镜像:
Memory map
地址 大小 属主 区段 包含 类型 访问 初始访问 已映射为
01000000 00001000 PYG脱客_ 01000000 (自身) PE 文件头 Imag R RWE
01001000 00011000 PYG脱客_ 01000000 hmimys 代码 Imag R RWE
01012000 0000E000 PYG脱客_ 01000000 hmimys SFX,输入表,资源 Imag R RWE
01020000 00001000 PYG脱客_ 01000000 hmimys Imag R RWE
在第一“PE 文件头”区段上,F2设置访问中断,F9运行中断:
Memory map, 条目 17
地址=01000000
大小=00001000 (4096.)
属主=PYG脱客_ 01000000 (自身)
区段=
包含=PE 文件头
类型=Imag 01001002
访问=R
初始访问=RWE
中断后来到这里:
/*7C930806*/ cmp word ptr ds:[ecx],5A4D
/*7C93080B*/ jnz short ntdll.7C93082A
/*7C93080D*/ mov edx,dword ptr ds:[ecx+3C]
/*7C930810*/ cmp edx,10000000
/*7C930816*/ jnb short ntdll.7C93082A
/*7C930818*/ lea eax,dword ptr ds:[edx+ecx]
/*7C93081B*/ mov dword ptr ss:[ebp-1C],eax
/*7C93081E*/ cmp dword ptr ds:[eax],4550
/*7C930824*/ jnz ntdll.7C958BB5
/*7C93082A*/ or dword ptr ss:[ebp-4],FFFFFFFF
/*7C93082E*/ call ntdll.7C92EE02
/*7C930833*/ retn 4
★三、再次 Alt+M 打开内存镜像:
在第一区段上,F2设置访问中断,F9运行中断:
Memory map, 条目 18
地址=01001000
大小=00011000 (69632.)
属主=PYG脱客_ 01000000
区段=hmimys
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
中断后来到这里:
/*10102D3*/ mov dword ptr ss:[esp],eax
/*10102D6*/ call PYG脱客_.010102E7
/*10102DB*/ inc ebx
/*10102DC*/ insb
/*10102DD*/ outsd
/*10102DE*/ jnb short PYG脱客_.01010345
/*10102E0*/ dec eax
/*10102E1*/ popad
/*10102E2*/ outsb
/*10102E3*/ insb
/*10102E5*/ add byte ptr gs:[ebp-1],dl
/*10102E9*/ salc
/*10102EA*/ call eax
/*10102EC*/ push 0
/*10102EE*/ call PYG脱客_.010102FE
四、Ctrl+S搜索代码:
popad
push eax
找到这里:
/*10106C9*/ popad
/*10106CA*/ push eax
/*10106CB*/ push E82BBDF5
/*10106D0*/ pushad
/*10106D1*/ push C748640E
/*10106D6*/ sub esp,-4
/*10106D9*/ popad
/*10106DA*/ sub esp,-4
/*10106DD*/ pop eax
/*10106DE*/ call PYG脱客_.010106E3
/*10106E3*/ jmp short PYG脱客_.010106E6
/*10106E5*/ outsb
/*10106E6*/ add ebx,7B30DA6E
/*10106EC*/ sub ebx,7B30DA6E
/*10106F2*/ retn //在这里F2设置断点,经过2次中断后飞向OEP
飞向OEP:
/*1006420*/ push ebp //OEP
/*1006421*/ mov ebp,esp
/*1006423*/ push -1
/*1006425*/ push PYG脱客_.01001888
/*100642A*/ push PYG脱客_.010065D0
/*100642F*/ mov eax,dword ptr fs:[0]
/*1006435*/ push eax
/*1006436*/ mov dword ptr fs:[0],esp
/*100643D*/ add esp,-68
/*1006440*/ push ebx
/*1006441*/ push esi
/*1006442*/ push edi
/*1006443*/ mov dword ptr ss:[ebp-18],esp
/*1006446*/ mov dword ptr ss:[ebp-4],0
/*100644D*/ push 2
/*100644F*/ call dword ptr ds:[1001160]
★五、LoadPE脱壳、Import REC修复即可!
OEP=1006420-1000000=0006420
为了证明我开场的观点,于是用真正的hmimys-Packer V1.2加了几个试炼程序(包括脱壳后我们的目标程序):
脱壳前三步与以上的一样,接着我们来说第四步,也就是找OEP:(这里目标为脱壳后再加壳的目标程序)
★一(略)
★二(略)
★三(略)
四、Ctrl+B搜索代码:
AB EB E4 AD 50 55 FF 53 04 AB EB E0 C3
来到:
/*1028DB8*/ lodsb
/*1028DB9*/ test al,al
/*1028DBB*/ jnz short PYG脱客_.01028DB8
/*1028DBD*/ lodsw
/*1028DBF*/ test ax,ax
/*1028DC2*/ je short PYG脱客_.01028DAD
/*1028DC4*/ lodsb
/*1028DC5*/ sub esi,3
/*1028DC8*/ test al,al
/*1028DCA*/ je short PYG脱客_.01028DD4
/*1028DCC*/ push esi
/*1028DCD*/ push ebp
/*1028DCE*/ call dword ptr ds:[ebx+4]
/*1028DD1*/ stosd //找到这里
/*1028DD2*/ jmp short PYG脱客_.01028DB8
/*1028DD4*/ lodsd
/*1028DD5*/ push eax
/*1028DD6*/ push ebp
/*1028DD7*/ call dword ptr ds:[ebx+4]
/*1028DDA*/ stosd
/*1028DDB*/ jmp short PYG脱客_.01028DBD
/*1028DDD*/ retn //在这里F2设置断点,中断后F8飞向OEP
飞向OEP:
/*1006420*/ push ebp
/*1006421*/ mov ebp,esp
/*1006423*/ push -1
/*1006425*/ push PYG脱客_.01001888
/*100642A*/ push PYG脱客_.010065D0
/*100642F*/ mov eax,dword ptr fs:[0]
/*1006435*/ push eax
/*1006436*/ mov dword ptr fs:[0],esp
/*100643D*/ add esp,-68
/*1006440*/ push ebx
/*1006441*/ push esi
/*1006442*/ push edi
/*1006443*/ mov dword ptr ss:[ebp-18],esp
/*1006446*/ mov dword ptr ss:[ebp-4],0
/*100644D*/ push 2
/*100644F*/ call dword ptr ds:[1001160]
★五(略)
原来hmimys-Packer 1.30也可以这么脱~~o(∩_∩)o... |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|