首页  编辑  

PEPack1.0脱壳手记

Tags: /计算机文档/软件应用限制解除/   Date Created:

PEPack1.0 脱壳手记

                                         Worte By 娃娃/[CCG]

   这个壳比EZIP1.0的壳稍微复杂一点  循环比较多 而且左跳右跳 很容易让Cracker迷失方向  不过只要有信心

在关键处下好断点 认真仔细的跟踪  我相信你也一定可以搞定它的  ^_^ 好了不废话 开始吧

这次的试验品是一个使用汇编编写的程序 很多人都喜欢用NOTEPAD当作实验品 加壳后再脱壳  但是我比较喜欢使用汇编编写的程序

因为汇编编写的程序非常好判断是否为真正的入口点  一看到 COMMANDLINEA 就证明你到了~~~

用TRW载入程序 下FALLUS OFF命令  F10两下到这里:

017F:00406000  PUSHA /光标停在这里

017F:00406001  CALL  00406006 /这个CALL一定要进入 脱壳的关键CALL

017F:00406006  POP  EBP

017F:00406007  SUB  EBP,BYTE +06

017F:0040600A  CMP  BYTE [EBP+053E],01

017F:00406011  JZ  NEAR 40625F

进入这个CALL后小心的跟踪很快就来到第一个关键部分:

017F:004060D4  JNC  0040610E

017F:004060D6  DEC  EAX

017F:004060D7  JZ  0040610E

017F:004060D9  JS  0040610E

017F:004060DB  MOV  BX,[ECX+EDI]

017F:004060DF  CMP  BL,E8

017F:004060E2  JZ  004060F3

017F:004060E4  CMP  BL,E9

017F:004060E7  JZ  004060F3

017F:004060E9  CMP BX,25FF

017F:004060EE  JZ  004060FF

017F:004060F0  INC  ECX

017F:004060F1  JMP  SHORT 004060D6

很明显4060F1处构成一个循环 只要EAX寄存器指不为0 程序会一直在这里循环380多次  ^_^ 我可没有时间看着它

一步一步的循环 于是我们来观察这个循环里面的跳转  发现跳的最远的就是4060D7处的 JZ  0040610E 于是我们

在40610E处下断点,按F5~~~~  跳出这个循环了

接下来是很多比较大的循环  一个循环里面大概有7,8个判断语句 和跳转  这时只要小心的在每一个条件跳转语句上都下上断点

不断的排除循环内的断点  很快就会找到真正的入口点了

这个就是最后一个大循环的结尾部分  只要下断点 BPX  40625F就可以跳出循环  406270处的跳转语句就是跳到正确OEP的地址

017F:00406248  POP  ECX

017F:00406249  POP  EDI

017F:0040624A  MOV  [EDI],EAX

017F:0040624C  POP  ESI

017F:0040624D  POP  EDX

017F:0040624E  POP  EBX

017F:0040624F  ADD  ESI,BYTE +04

017F:00406252  ADD  EDI,BYTE +04

017F:00406255  JMP  SHORT  00406214

017F:00406257  ADD  EDX,BYTE +14

017F:0040625A  JMP  004061B4

017F:0040625F  MOV  EAX,[EBP+0557]

017F:00406265  ADD  EAX.[EBP+058B]

017F:0040626B  MOV  [ESP+1C],EAX

017F:0040626F  POPA

017F:00406270  JMP  EAX

跳过 406270 后下命令MakePE,就可以成功脱壳了~~~~~  测试后可以夸平台运行

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

脱壳后当然要制作出一个脚本方便大家使用了 ^_^

PROCDUMP1.62带有PEPack的脱壳脚本 但是根本就不好用  下面的是我自己写的 经过测试完美脱壳:

[NYDoll's PEPack]

L1=OBLR

L2=LOOK E9,76,FF,FF,FF  /第一处循环入口点的机器码

L3=BP

L4=WALK

L5=OBLR

L6=LOOK FF,E0  /第二处循环入口点的机器码

L7=BP

L8=STEP

OPTL1=00000000

OPTL2=01000001

OPTL3=01010001

OPTL4=00030000

OPTL5=00000000

仅以此文献给我们可爱的组织CCG,希望它能蒸蒸日上。

娃娃(NYDoll)

CHiNA CrACKiNG GrOUp