kungbim 发表于 2007-9-20 12:10:27

hmimys-Packer V1.2、1.3 脱脱脱

hmimys-Packer V1.2、1.3 脱脱脱

娱乐一下,看论坛没朋友写这个,就忽悠一下!

今天有朋友叫我帮忙脱一壳,并要文章,闲着没事,脱~~
查壳后发现是hmimys-Packer V1.2 -> hmimys,但感觉奇怪,似乎这个壳被某人修改过,代码有所不同(后面证明):

★一、OD载入目标程序:

/*1012CD8*/call PYG脱客_.01012D72         //EP
/*1012CDD*/add byte ptr ds:,dl
/*1012CDF*/add dword ptr ds:,eax
/*1012CE1*/add byte ptr ds:,dl
/*1012CE3*/add byte ptr ds:,al
/*1012CE5*/in al,dx
/*1012CE6*/dec esp
/*1012CE7*/add byte ptr ds:,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:,5A4D
/*7C93080B*/jnz short ntdll.7C93082A
/*7C93080D*/mov edx,dword ptr ds:
/*7C930810*/cmp edx,10000000
/*7C930816*/jnb short ntdll.7C93082A
/*7C930818*/lea eax,dword ptr ds:
/*7C93081B*/mov dword ptr ss:,eax
/*7C93081E*/cmp dword ptr ds:,4550
/*7C930824*/jnz ntdll.7C958BB5
/*7C93082A*/or dword ptr ss:,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:,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:,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:
/*1006435*/push eax
/*1006436*/mov dword ptr fs:,esp
/*100643D*/add esp,-68
/*1006440*/push ebx
/*1006441*/push esi
/*1006442*/push edi
/*1006443*/mov dword ptr ss:,esp
/*1006446*/mov dword ptr ss:,0
/*100644D*/push 2
/*100644F*/call dword ptr ds:

★五、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:
/*1028DD1*/stosd                     //找到这里
/*1028DD2*/jmp short PYG脱客_.01028DB8
/*1028DD4*/lodsd
/*1028DD5*/push eax
/*1028DD6*/push ebp
/*1028DD7*/call dword ptr ds:
/*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:
/*1006435*/push eax
/*1006436*/mov dword ptr fs:,esp
/*100643D*/add esp,-68
/*1006440*/push ebx
/*1006441*/push esi
/*1006442*/push edi
/*1006443*/mov dword ptr ss:,esp
/*1006446*/mov dword ptr ss:,0
/*100644D*/push 2
/*100644F*/call dword ptr ds:

★五(略)

原来hmimys-Packer 1.30也可以这么脱~~o(∩_∩)o...

kungbim 发表于 2007-9-21 15:22:04

hmimys-Packer 1.30 主程序更为简便脱法(亦可应用于附件中的试炼品):

壳主程序EP:

/*
/*418360*/call hmiPack1.004183FA
/*418365*/add byte ptr ds:,al
/*418368*/add byte ptr ds:,al
/*41836A*/adc byte ptr ds:,al
/*41836D*/xlat byte ptr ds:
/*41836E*/add byte ptr gs:,al
/*418371*/push edi
/*418372*/mov dword ptr ds:,eax
/*418375*/add al,dh
/*418377*/inc ecx
/*418378*/add byte ptr ds:,dh
/*41837B*/inc eax
/*41837C*/add byte ptr ds:,al
/*41837E*/inc eax
/*41837F*/inc ecx
/*418380*/add byte ptr ds:,dh
/*418383*/cmp byte ptr ds:,80
/*418388*/jl short hmiPack1.0041838A
/*41838A*/add byte ptr ds:,al
*/

Alt+M打开内存镜像,在第一区段F2设置访问断点:

/*
Memory map, 条目 18
地址=00401000
大小=00014000 (81920.)
属主=hmiPack1 00400000
区段=hmimys
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
*/

F9 运行中断:

/*
/*418719*/mov byte ptr ds:,bl
/*41871C*/jge short hmiPack1.00418727
/*41871E*/and dword ptr ss:,0
/*418722*/jmp hmiPack1.00418944
/*418727*/cmp dword ptr ss:,0A
/*41872B*/jge short hmiPack1.00418736
/*41872D*/sub dword ptr ss:,3
/*418731*/jmp hmiPack1.00418944
/*418736*/sub dword ptr ss:,6
/*41873A*/jmp hmiPack1.00418944
*/

Ctrl+B搜索代码:5F 5E 5B C9 C2 14 00

/*
/*418950*/pop edi
/*418951*/pop esi
/*418952*/pop ebx
/*418953*/leave
/*418954*/retn 14   // F2设置访问断点,F9运行中断后F7跟进
*/

Ctrl+B搜索代码:AB EB E4 AD 50 55 FF 53 04 AB EB E0 C3

/*
/*418459*/stosd
/*41845A*/jmp short hmiPack1.00418440
/*41845C*/lodsd
/*41845D*/push eax
/*41845E*/push ebp
/*41845F*/call dword ptr ds:
/*418462*/stosd
/*418463*/jmp short hmiPack1.00418445
/*418465*/retn      // F2设置访问断点,F9运行中断后F7跟进,飞向OEP
*/

找到OEP,LoadPE脱壳、Import REC修复即可!

/*
/*406B70*/push 60
/*406B72*/push hmiPack1.0040B378
/*406B77*/call hmiPack1.00407DFC
/*406B7C*/mov edi,94
/*406B81*/mov eax,edi
/*406B83*/call hmiPack1.00407F60
/*406B88*/mov dword ptr ss:,esp
/*406B8B*/mov esi,esp
/*406B8D*/mov dword ptr ds:,edi
/*406B8F*/push esi
*/

本色 发表于 2007-9-21 15:26:04

看不懂啊
好好研究下

kunkun1987 发表于 2007-9-22 22:50:52

1.3的主程序哪里有下?

glts 发表于 2007-9-23 16:40:28

K 哥的文章要学习的。

chinaloong 发表于 2007-9-23 18:32:07

jeffrry 发表于 2007-9-25 23:53:55

真的不错,/:001 /:001 /:001

775825866 发表于 2007-9-26 19:33:22

这个看不太懂啊!/:L

zhaoyafei19 发表于 2007-9-30 23:34:47

在好多论坛看到着东西

爱生活爱拉登 发表于 2007-10-3 03:06:15

/:012 /:012 /:012 /:good /:good /:good
KGG的咚咚哦
嘿嘿
‘今天有朋友叫我帮忙脱一壳,并要文章’嘿嘿,这是个秘密。。。/:018 /:018
页: [1]
查看完整版本: hmimys-Packer V1.2、1.3 脱脱脱