- UID
- 42076
注册时间2007-12-19
阅读权限8
最后登录1970-1-1
初入江湖
该用户从未签到
|
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.
当然想学习内存补丁的,现在可以动手了,哈哈! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|