首页
社区
课程
招聘
[旧帖] [原创]处理UPX-Scrambler pack的注册机的脱壳 0.00雪花
发表于: 2008-3-29 15:21 3538

[旧帖] [原创]处理UPX-Scrambler pack的注册机的脱壳 0.00雪花

2008-3-29 15:21
3538
在看《软件加密技术内幕》,其中提到DebugAPI,正想学习一下补丁技术,
说以就那KEYMAKE做了个内存注册机,想看看他的实现方法,所以就有了下文,好了,开始工作。
UPX-Scrambler RC1.x -> ㎡nT畂L [Overlay]

OD载入,ep处代码

0040DA7F >  90                 nop
0040DA80    61                 popad
0040DA81    BE 00B04000        mov esi,packer.0040B000
0040DA86    8DBE 0060FFFF      lea edi,dword ptr ds:[esi+FFFF6000]
0040DA8C    57                 push edi
0040DA8D    83CD FF            or ebp,FFFFFFFF
0040DA90    EB 10              jmp short packer.0040DAA2
0040DA92    EB 00              jmp short packer.0040DA94
0040DA94  ^ EB EA              jmp short packer.0040DA80
0040DA96  ^ EB E8              jmp short packer.0040DA80
0040DA98    8A06               mov al,byte ptr ds:[esi]
1,脱壳,bp LoadLibraryA两次后,alt+F9返回
0040DBA8    95              xchg    eax, ebp
0040DBA9    8A07            mov     al, byte ptr [edi]
0040DBAB    47              inc     edi
0040DBAC    08C0            or      al, al
0040DBAE  ^ 74 DC           je      short 0040DB8C
0040DBB0    89F9            mov     ecx, edi
0040DBB2    79 07           jns     short 0040DBBB
0040DBB4    0FB707          movzx   eax, word ptr [edi]
0040DBB7    47              inc     edi
0040DBB8    50              push    eax
0040DBB9    47              inc     edi
0040DBBA    B9 5748F2AE     mov     ecx, AEF24857
0040DBBF    55              push    ebp
0040DBC0    FF96 74E50000   call    dword ptr [esi+E574]
0040DBC6    09C0            or      eax, eax
0040DBC8    74 07           je      short 0040DBD1
0040DBCA    8903            mov     dword ptr [ebx], eax
0040DBCC    83C3 04         add     ebx, 4
0040DBCF  ^ EB D8           jmp     short 0040DBA9
0040DBD1    FF96 78E50000   call    dword ptr [esi+E578]
0040DBD7    60              pushad
0040DBD8  - E9 AA4AFFFF     jmp     00402687  //F2下断,shift+F9,到达OEP

00402687    8D4424 F8       lea     eax, dword ptr [esp-8]  //OEP,脱壳,完成
0040268B    64:8705 0000000>xchg    dword ptr fs:[0], eax
00402692    BB D5264000     mov     ebx, 004026D5
00402697    8925 58544000   mov     dword ptr [405458], esp
0040269D    53              push    ebx
0040269E    50              push    eax

2,试运行,提示未与破解程序在同一目录
   可能性:1,程序有自校验(bp CreateFileA等相关API未找到,于是有了第二种可能,overlay)
           2,附加数据

WINHEX出场,打开packer,翻到文件末尾,发现Overlay在4800H处,复制附加数据,粘贴到dump出的文件尾(记录overlay粘贴的位置10FE0)。
对dump出的文件,从新载入,下 bp SetFilePointer,发现参数4800,修改为10FE0,保存。运行,在次出错。只好再分析。
分析注册机的特殊性,想到CreateFileA,再次 bp CreateFileA,到
0040141E    E8 FD1D0000     call    <jmp.&kernel32.GetFileSize>
00401423    2D E00F0100     sub     eax, 4800  //4800改为10FE0
保存,运行,OK.

学习了一下KEYMAKE的工作原理,感谢看雪出如此好的书,实在是漂亮,等待《加密解密》第三版。
再次感谢看雪论坛提供的平台和大虾们的无私分享,也希望自己能有更大的进步。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回