吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18501|回复: 30
收起左侧

[原创] 吾爱破解脱壳练习----ACProtector系列保护

 关闭 [复制链接]
小生我怕怕 发表于 2008-10-19 00:22
一转眼我们的脱壳练习已经第15期啦,在这其中我相信许多的朋友也学习到了东西
必能脱掉此壳
本期考核主题为:ACProtector系列保护
1.脱壳后的文件大家以千脑形式上传,目的是为了便于隐藏文件和节约论坛空间
2.脱壳后的文件,请大家以脱文附带脱壳后程序打包压缩传于千脑网盘
3.对于回帖过程中千万不要出现灌水,否则BAN了ID
4.对于有优秀脱文或优秀脱壳方法的朋友,给于适当威望奖励
5.鉴于此练习是针对论坛的所有人,请大家踊跃参加,如果不是脱了壳教作业的,请不要顶帖子,方便管理查阅,及时给出评分
6.以下为需要设置威望的格式
7.脱壳一以周期计算,(周期=等于二天)
8.脱壳周期一结束,就开始公布答案让大家能有更充分的学习环境,让不懂脱的朋友去寻找你失误的地方争取早日赶上论坛的积极份子
9.我们要的是脱文,并不是脱壳机去脱的,如果用脱机脱了别拿来,请一定附带上脱文
10.我们讲对每次脱壳练习选择一个最好的脱壳分析过程,方便大家学习,每次脱壳练习结束后会说出楼数,对于被选种的朋友,我们会酌情给予CB或者威望进行奖励
11.由于前段时间我们的练习群开放式验证加入,导致群在短短几天爆满,现在已经清除了所有没有参加练习的朋友,以后只要参加我们一次练习就会收到我们的短消息邀请加入
平时我们都是关闭模式

12.本期看点:本期学会合理惯通所学知识,用所学套路进行套用,掌握常见壳的基础知识


公告:
接下来我们将开始针对一个壳开设系列保护的脱壳教程,从保护选项,尽量加深至全保护脱壳,从而加大大家对壳的了解,也巩固大家对常见的壳的基础知识,难度会适当控制在初级到中级加密壳之间,另外以后脱壳练习周期将随着壳的难度逐渐加多,所以请大家多多留意练习公告


紧急通知:
由于本期测试难度,偏易了一些,体现不出ACP的难度,为了不对更多的新手产生对强壳有柿子的感觉,提前有今晚进入混淆OEP,考虑到难度,将本期剩下的一天推移到下期,下期开设时间为3天,请大家多多表现

练习一:(结果已经公布)
http://www.52pojie.cn/thread-10496-1-1.html
最佳分析:第10楼unpack

练习二:(结果已经公布)
http://www.52pojie.cn/thread-10607-1-1.html
最佳分析:第9楼lqiulu

练习三:(结果已经公布)
http://www.52pojie.cn/thread-10688-1-1.html
最佳分析:第11楼傻人有傻福

练习四:(结果已经公布)
http://www.52pojie.cn/thread-10850-1-1.html
最佳分析:第11楼维护世界和平

练习五:(结果已经公布)
http://www.52pojie.cn/thread-10990-1-1.html
最佳分析:第3楼维护世界和平

练习六:(结果已经公布)
http://www.52pojie.cn/thread-11112-1-1.html
最佳分析:第12楼ximo

练习七:(结果已经公布)
http://www.52pojie.cn/thread-11244-1-1.html
最佳分析:第14楼傻人有傻福

练习八:(结果已经公布)
http://www.52pojie.cn/thread-11306-1-1.html
最佳分析: 第15楼unpack

练习九:(结果已经公布)
http://www.52pojie.cn/thread-11446-1-1.html
最佳分析: 第1楼小生我怕怕

练习十:(结果已经公布)
http://www.52pojie.cn/thread-11585-1-1.html
最佳分析:第10楼unpack

练习十一:(结果已经公布)
http://www.52pojie.cn/thread-11747-1-1.html
最佳分析:第9楼unpack

练习十二:(结果已经公布)
http://www.52pojie.cn/thread-11883-1-1.html
最佳分析:第19楼unpack

练习十三:(结果已经公布)
http://www.52pojie.cn/thread-12011-1-1.html
最佳分析:第1楼小生我怕怕

练习十四:(结果已经公布)
http://www.52pojie.cn/thread-12135-1-1.html
最佳分析:第3楼 qiulu

UnPackMe.rar

236 KB, 下载次数: 587, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1热心值 +1 收起 理由
min-gong + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

pcfans 发表于 2008-10-19 00:39
脱壳过程:

OD载入,内存镜象法

00468000 > 60 PUSHAD ;载入后停在这
00468001 F8 CLC
00468002 48 DEC EAX
00468003 87F9 XCHG ECX,EDI
00468005 40 INC EAX
00468006 81E1 DA86AE4A AND ECX,4AAE86DA
0046800C F8 CLC

--------------------------
alt+m在00452000行下F2断点,shift+F9运行

Memory map, 项目 23
地址=00452000
大小=00002000 (8192.)
属主=UnPackMe 00400000
区段=DATA
包含=代码,数据
类型=映像 01001002
访问=R
初始访问=RWE
--------------------------
004721BC F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS;停在这了
004721BE 58 POP EAX
004721BF 50 PUSH EAX
004721C0 FFB5 08794000 PUSH DWORD PTR SS:[EBP+407908]
004721C6 E8 F7580000 CALL UnPackMe.00477AC2
004721CB FFB5 08794000 PUSH DWORD PTR SS:[EBP+407908]
--------------------------
alt+M在00401000行下F2断点,shift+F9运行

Memory map, 项目 23
地址=00401000
大小=00051000 (331776.)
属主=UnPackMe 00400000
区段=CODE
包含=代码
类型=映像 01001002
访问=R
初始访问=RWE
--------------------------

0045159C 55 PUSH EBP ;直接来到OEP了
0045159D 8BEC MOV EBP,ESP
0045159F 83C4 F0 ADD ESP,-10
004515A2 B8 BC134500 MOV EAX,UnPackMe.004513BC
004515A7 E8 8846FBFF CALL UnPackMe.00405C34
004515AC A1 E02F4500 MOV EAX,DWORD PTR DS:[452FE0]
004515B1 8B00 MOV EAX,DWORD PTR DS:[EAX]
004515B3 E8 F8E5FFFF CALL UnPackMe.0044FBB0
--------------------------

脱壳过程:

LoadPE dump, ImportREC修复,两个无效指针,等级3修复,抓取脱壳后的程序
peid查壳Borland Delphi 6.0 - 7.0,试运行程序,运行正常,功能完好,脱壳完毕。
 楼主| 小生我怕怕 发表于 2008-10-19 00:47
首先我们设置OD异常选项卡忽略除内存访问和int3以外的所有异常
选项---调试设置---异常,如下图
QQ截图未命名.jpg


━━━━━━━━━━━━━━━━━━━━━━━━━━
00468000 >60pushad //OD载入
00468001F8clc//我们F9直接运行程序
0046800248dec eax
0046800387F9xchg ecx,edi
0046800540inc eax
0046800681E1 DA86AE4A and ecx,4AAE86DA
━━━━━━━━━━━━━━━━━━━━━━━━━━
004715D890nop //程序停在这里
004715D964:67:8F06 0000 pop dword ptr fs:[0]//我们注意堆栈窗口
004715DF83C4 04 add esp,4
004715E260pushad
004715E3E8 00000000 call UnPackMe.004715E8
004715E85Epop esi
004715E983EE 06 sub esi,6
━━━━━━━━━━━━━━━━━━━━━━━━━━
0012FF78 0012FFE0指针到下一个 SEH 记录 //注意下面的SE句柄
0012FF7C 004715A5SE 句柄//点在这里右键,数据窗口跟随
0012FF80 0047576AUnPackMe.0047576A
0012FF84 0000002A
0012FF88 7A1FCBF0
0012FF8C 0012FFA0
━━━━━━━━━━━━━━━━━━━━━━━━━━
004715A50424448B//在此右键---断点---内存访问
004715A90C244C8B//下好断后我们shift+f9运行程序
004715AD00B881FF
004715B1008B0000
004715B50000032D
━━━━━━━━━━━━━━━━━━━━━━━━━━
004715A58B4424 04 mov eax,dword ptr ss:[esp+4] //程序停在了这里,我们继续在此F2设置访问中断
004715A98B4C24 0C mov ecx,dword ptr ss:[esp+C] //下好断后我们shift+f9运行程序
004715ADFF81 B8000000 inc dword ptr ds:[ecx+B8]
004715B38B00mov eax,dword ptr ds:[eax]
004715B52D 03000080 sub eax,80000003
━━━━━━━━━━━━━━━━━━━━━━━━━━
004716038B048Emov eax,dword ptr ds:[esi+ecx*4] //此时程序运行到这里,我们继续在此F2设置访问中断
004716068B5C8E 04 mov ebx,dword ptr ds:[esi+ecx*4+4] //下好断后我们shift+f9运行程序
0047160A33C3xor eax,ebx
0047160CC1C0 18 rol eax,18
0047160F33C2xor eax,edx
━━━━━━━━━━━━━━━━━━━━━━━━━━
0047161789048Emov dword ptr ds:[esi+ecx*4],eax//我们停在了这里
0047161A49dec ecx //右键--断点--清除内存断点
0047161B^ EB E1 jmp short UnPackMe.004715FE //ait+b删除所有断点
0047161D61popad //断点清理好后
0047161E61popad
0047161FC3retn//我们在这里F4运行到所选
004716200000add byte ptr ds:[eax],al//运行停在上面的retn后我们ait+M打开内存镜像
004716220000add byte ptr ds:[eax],al
004716240060 F8 add byte ptr ds:[eax-8],ah
━━━━━━━━━━━━━━━━━━━━━━━━━━
内存映射,项目 23 //在此F2设置访问中断
地址=00401000//设置好了后我们shift+f9运行程序
大小=00051000 (331776.)
物主=UnPackMe 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE
━━━━━━━━━━━━━━━━━━━━━━━━━━
0045159C55push ebp//程序直接停在我们的OEP
0045159D8BECmov ebp,esp //运行lordPE把程序dump在运行importRCE修复下
0045159F83C4 F0 add esp,-10 //修复过程中会出现有两个无效指针我们直接删除就好
004515A2B8 BC134500 mov eax,UnPackMe.004513BC
004515A7E8 8846FBFF call UnPackMe.00405C34
004515ACA1 E02F4500 mov eax,dword ptr ds:[452FE0]
004515B18B00mov eax,dword ptr ds:[eax]
004515B3E8 F8E5FFFF call UnPackMe.0044FBB0
━━━━━━━━━━━━━━━━━━━━━━━━━━

dumped_.rar

193 KB, 下载次数: 2, 下载积分: 吾爱币 -1 CB

jyxer 发表于 2008-10-19 01:18
设置OD,除内存异常以外的所有异常
隐藏OD
00468000 >60pushad//载入停在这里,F9运行
00468001F8clc
0046800248dec eax
0046800387F9xchg ecx,edi
0046800540inc eax
0046800681E1 DA86AE4A and ecx,4AAE86DA
0046800CF8clc
0046800D47inc edi
0046800E87DFxchg edi,ebx
00468010F8clc
00468011EB 0A jmp short UnPackMe.0046801D
——————————————————————————————
00471386CD 01 int 1//停在这里,此时看堆栈
0047138840inc eax
0047138940inc eax
0047138A0BC0or eax,eax
0047138C75 05 jnz short UnPackMe.00471393
0047138E90nop
0047138F90nop
0047139090nop
0047139190nop
0047139261popad
此时堆栈:
0012FF78 0012FFE0指针到下一个 SEH 记录
0012FF7C 0047136ASE 句柄//右键——》数据窗口中跟随
0012FF80 00000027
0012FF84 001CF0F6
0012FF88 538D12C6
0012FF8C 0012FFA0
数据窗口:
0047136A0C245C8B//右键——》断点——》内存断点
0047136E00B88383
0047137233020000
004713766764C3C0
0047137A000036FF
0047137E26896764
00471382C0330000
00471386404001CD

shift+F9

0047136A8B5C24 0C mov ebx,dword ptr ss:[esp+C]//停在这里,F2下断,shift+F9
0047136E8383 B8000000 02add dword ptr ds:[ebx+B8],2
0047137533C0xor eax,eax
00471377C3retn
0047137864:67:FF36 0000 push dword ptr fs:[0]
0047137E64:67:8926 0000 mov dword ptr fs:[0],esp
0047138433C0xor eax,eax
00471386CD 01 int 1
0047138840inc eax
0047138940inc eax
0047138A0BC0or eax,eax
0047138C75 05 jnz short UnPackMe.00471393
0047138E90nop
-----------------------
004713BA8B048Emov eax,dword ptr ds:[esi+ecx*4]/ /停在这里,F2下断,shift+F9
004713BD8B5C8E 04 mov ebx,dword ptr ds:[esi+ecx*4+4]
004713C133C3xor eax,ebx
004713C3C1C8 1A ror eax,1A
004713C603C2add eax,edx
004713C881F2 23337DD0 xor edx,D07D3323
004713CE89048Emov dword ptr ds:[esi+ecx*4],eax //停在这里,取消三个断点
004713D149dec ecx
004713D2^ EB E1 jmp short UnPackMe.004713B5
004713D461popad
004713D561popad
004713D6C3retn//在这里F4
ALT+M
内存映射,项目 22
地址=00401000
大小=00051000 (331776.)
物主=UnPackMe 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE
F2下断,shift+F9
0045159C55push ebp//OEP
0045159D8BECmov ebp,esp
0045159F83C4 F0 add esp,-10
004515A2B8 BC134500 mov eax,UnPackMe.004513BC
004515A7E8 8846FBFF call UnPackMe.00405C34
004515ACA1 E02F4500 mov eax,dword ptr ds:[452FE0]
004515B18B00mov eax,dword ptr ds:[eax]
004515B3E8 F8E5FFFF call UnPackMe.0044FBB0
004515B8A1 E02F4500 mov eax,dword ptr ds:[452FE0]
004515BD8B00mov eax,dword ptr ds:[eax]
004515BFBA FC154500 mov edx,UnPackMe.004515FC; ASCII ".52pojie.cn"
004515C4E8 F7E1FFFF call UnPackMe.0044F7C0
004515C98B0D C0304500 mov ecx,dword ptr ds:[4530C0]; UnPackMe.00454BD0
004515CFA1 E02F4500 mov eax,dword ptr ds:[452FE0]
004515D48B00mov eax,dword ptr ds:[eax]
用LoadPE脱壳,ImportREC修复,无效指针直接剪切掉,OK,修复后可以运行!!
nv21 发表于 2008-10-19 01:21
OD载入
00468000 >60PUSHAD
00468001F8CLC
0046800248DEC EAX
0046800387F9XCHG ECX,EDI
0046800540INC EAX
0046800681E1 DA86AE4A AND ECX,4AAE86DA
0046800CF8CLC
0046800D47INC EDI
0046800E87DFXCHG EDI,EBX
00468010F8CLC
00468011EB 0A JMP SHORT UnPackMe.0046801D
00468013^ 7C EB JL SHORT UnPackMe.<模块入口点>

打开OD的选项忽略INT3以外的所有异常 SHIFT+F9运行程序停在
004715D890NOP
004715D964:67:8F06 0000 POP DWORD PTR FS:[0]
004715DF83C4 04 ADD ESP,4
004715E260PUSHAD
004715E3E8 00000000 CALL UnPackMe.004715E8
004715E85EPOP ESI
004715E983EE 06 SUB ESI,6
004715ECB9 5B000000 MOV ECX,5B
004715F129CESUB ESI,ECX
004715F3BA C895FF35 MOV EDX,35FF95C8
004715F8C1E9 02 SHR ECX,2
004715FB83E9 02 SUB ECX,2

注意堆栈
0012FF78 0012FFE0指向下一个 SEH 记录的指针
0012FF7C 004715A5SE 处理器--------------点右键 跟随到数据窗口
0012FF80 0047576AUnPackMe.0047576A
0012FF84 0000002A
0012FF88 7A1FCBF0
0012FF8C 0012FFA0
0012FF90 0F01EE83
0012FF94 AD075768

下内存访问断点 SHIFT+F9运行
004715A58B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ---F2 下断SHIFT+F9运行
004715A98B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
004715ADFF81 B8000000 INC DWORD PTR DS:[ECX+B8]
004715B38B00MOV EAX,DWORD PTR DS:[EAX]
004715B52D 03000080 SUB EAX,80000003

--------------------------
004716038B048EMOV EAX,DWORD PTR DS:[ESI+ECX*4]-----------F2下断 004716038B048EMOV EAX,DWORD PTR DS:[ESI+ECX*4]
004716068B5C8E 04 MOV EBX,DWORD PTR DS:[ESI+ECX*4+4]
0047160A33C3XOR EAX,EBX
0047160CC1C0 18 ROL EAX,18
0047160F33C2XOR EAX,EDX
0047161181C2 799C6299 ADD EDX,99629C79

运行到下一句 然后取消所有断点
0047161789048EMOV DWORD PTR DS:[ESI+ECX*4],EAX////////////////////////////////////
0047161A49DEC ECX
0047161B^ EB E1 JMP SHORT UnPackMe.004715FE
0047161D61POPAD
0047161E61POPAD
0047161FC3RETN --------------- F4

0047161F---F4如果有STOLEN CODE 这里开始找STONE CODE
如果没有STOLEN CODE 可以在第一次F9 运行之后直接在 打开内存境像
在00401000处下断 SHIFT+F9运行直接到OEP

0045159C55PUSH EBP
0045159D8BECMOV EBP,ESP
0045159F83C4 F0 ADD ESP,-10
004515A2B8 BC134500 MOV EAX,UnPackMe.004513BC
004515A7E8 8846FBFF CALL UnPackMe.00405C34
004515ACA1 E02F4500 MOV EAX,DWORD PTR DS:[452FE0]
004515B18B00MOV EAX,DWORD PTR DS:[EAX]
004515B3E8 F8E5FFFF CALL UnPackMe.0044FBB0
004515B8A1 E02F4500 MOV EAX,DWORD PTR DS:[452FE0]
004515BD8B00MOV EAX,DWORD PTR DS:[EAX]
004515BFBA FC154500 MOV EDX,UnPackMe.004515FC; ASCII ".52pojie.cn"
004515C4E8 F7E1FFFF CALL UnPackMe.0044F7C0

接下来就OD方式一脱壳 REC修复 有两个无效指针直接剪掉 脱壳结束
aisht 发表于 2008-10-19 01:32
OD载入.

00468000 >60pushad
00468001F8clc
0046800248dec eax
0046800387F9xchg ecx,edi
0046800540inc eax
0046800681E1 DA86AE4A and ecx,4AAE86DA
0046800CF8clc

因为ACP的版本很多,方法也多样,我选最简单的。
用内存断点的方法直达OEP,忽略OD所有异常,按Alt+M,在内存映射窗口的Idata段下内存访问断点,F9

0047425C8B46 0C mov eax,dword ptr ds:[esi+C]
0047425F0BC0or eax,eax
004742610F84 C5010000 je UnPackMe.0047442C
004742678366 0C 00and dword ptr ds:[esi+C],0
0047426B03C2add eax,edx
0047426D8BD8mov ebx,eax
0047426F56push esi

继续在CODE段下内存访问断点,F9

0045159C55push ebp
0045159D8BECmov ebp,esp
0045159F83C4 F0 add esp,-10
004515A2B8 BC134500 mov eax,UnPackMe.004513BC
004515A7E8 8846FBFF call UnPackMe.00405C34
004515ACA1 E02F4500 mov eax,dword ptr ds:[452FE0]

直接飞到了OEP .没有偷取代码.

修复.发现两个无效指针. 我们来查找它.(如果有经验的.我想应该会马上能知道是什么指针.)
记录下无效指针的RVA 000551C0000554F0 看上下还可以猜到是在USER32.dll中的函数.
OD重载, dd 004551C0(加上基地) 数据窗口中可以看到地址.
在 004551BC 下内存写入断点. (硬件不能使用) F9
随后运行,停在断点后.单步.注意看数据寄存器.当完成004551C0这个处理后.

0047436053push ebx
00474361FFB5 FC784000 push dword ptr ss:[ebp+4078FC]
00474367FF95 200E4100 call dword ptr ss:[ebp+410E20]
0047436D3B9D 04794000 cmp ebx,dword ptr ss:[ebp+407904] // EAX为 USER32.MessageBoxA
004743737C 0F jl short UnPackMe.00474384
0047437590nop

这个就是我们需要的指针.后面的000554F0这个也是一样.
再次来到OEP.手工修复.两个指针都是USER32.MessageBoxA.
脱壳修复完毕.

1_.rar
头像被屏蔽
痕迹!~ 发表于 2008-10-19 02:06
提示: 作者被禁止或删除 内容自动屏蔽
fox2006 发表于 2008-10-19 02:17
吾爱专题脱壳练习15
--------------------------------------------------------------------------------
【编写程序】:Borland Delphi 6.0 - 7.0
【调试环境】:WinXP、OllyDbg、PEiD、LORDPE、ImportREC
【程序查壳】:AntiCrack Protector 1.0x -> RISCO Software Inc
【脱壳方法】:内存镜像法
---------------------------------------------------------------------------------
00468000 >60pushad ;OD载入到这里,ALT+M,(区段=.idata)F2下断,SHIFT+F9一次
00468001F8clc
0046800248dec eax
0046800387F9xchg ecx,edi
0046800540inc eax
0046800681E1 DA86AE4A and ecx,4AAE86DA
---------------------------------------------------------------------------------
0047425C8B46 0C mov eax,dword ptr ds:[esi+C] ;断在这里,ALT+M,(区段=CODE)F2下断,SHIFT+F9一次
0047425F0BC0or eax,eax
004742610F84 C5010000 je UnPackMe.0047442C
004742678366 0C 00and dword ptr ds:[esi+C],0
0047426B03C2add eax,edx
0047426D8BD8mov ebx,eax

---------------------------------------------------------------------------------
0045159C55push ebp;直接断在OEP,dump+IAT修复(将无效的指针剪切)
0045159D8BECmov ebp,esp
0045159F83C4 F0 add esp,-10
004515A2B8 BC134500 mov eax,UnPackMe.004513BC
004515A7E8 8846FBFF call UnPackMe.00405C34
004515ACA1 E02F4500 mov eax,dword ptr ds:[452FE0]
004515B18B00mov eax,dword ptr ds:[eax]
004515B3E8 F8E5FFFF call UnPackMe.0044FBB0

---------------------------------------------------------------------------------
脱壳完成。



UnPackMe15.rar
mycsy 发表于 2008-10-19 02:53
=====================================================
AntiCrack Protector 1.0x -> RISCO Software Inc.

OD载入

00468000 >60 pushad //OD载入后所挺处
00468001F8 clc
0046800248 dec eax
0046800387F9 xchg ecx,edi
0046800540 inc eax
0046800681E1 DA86AE4Aand ecx,4AAE86DA
0046800CF8 clc
0046800D47 inc edi
0046800E87DF xchg edi,ebx
00468010F8 clc
=====================================================
打开内存 ALT+M
内存映射,项目 26
地址=00455000
大小=00003000 (12288.)
物主=UnPackMe 00400000
区段=.idata
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE


地址=00455000 再次 F2下断 F9 起飞
=====================================================
停在此次
0047425C8B46 0Cmov eax,dword ptr ds:[esi+C]
0047425F0BC0 or eax,eax
004742610F84 C5010000je UnPackMe.0047442C
004742678366 0C 00 and dword ptr ds:[esi+C],0
0047426B03C2 add eax,edx
0047426D8BD8 mov ebx,eax
0047426F56 push esi
0047427057 push edi
0047427150 push eax
004742728BF3 mov esi,ebx
004742748BFB mov edi,ebx

继续 打开内存 ALT+M
内存映射,项目 23
地址=00401000
大小=00051000 (331776.)
物主=UnPackMe 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE


地址=00401000 在此处下断 F9
=====================================================

0045159C55 push ebp // 到达OEP!
0045159D8BEC mov ebp,esp
0045159F83C4 F0add esp,-10
004515A2B8 BC134500mov eax,UnPackMe.004513BC
004515A7E8 8846FBFFcall UnPackMe.00405C34
004515ACA1 E02F4500mov eax,dword ptr ds:[452FE0]
004515B18B00 mov eax,dword ptr ds:[eax]
004515B3E8 F8E5FFFFcall UnPackMe.0044FBB0
004515B8A1 E02F4500mov eax,dword ptr ds:[452FE0]
004515BD8B00 mov eax,dword ptr ds:[eax]
004515BFBA FC154500mov edx,UnPackMe.004515FC; ASCII ".52pojie.cn"
004515C4E8 F7E1FFFFcall UnPackMe.0044F7C0
004515C98B0D C0304500mov ecx,dword ptr ds:[4530C0]; UnPackMe.00454BD0
=====================================================
LordPe===dump =======Import修复5159C ====无效指针

CUT掉 修复即可

=====================================================
Up_.exe
wgz001 发表于 2008-10-19 06:35
基本方法套用可能是加的保护弱的原因吧

最后一次异常

忽略内存和所有指定异常隐藏下ODF9运行到这里

00471386 CD 01int 1
00471388 40 inc eax
00471389 40 inc eax
0047138A 0BC0 or eax,eax
0047138C 75 05jnz short UnPackMe.00471393

次是看堆栈窗

0012FF78 0012FFE0指针到下一个 SEH 记录
0012FF7C 0047136ASE 句柄

在SE句柄处下内存访问断点 shift+F9运行

0047136A 8B5C24 0Cmov ebx,dword ptr ss:[esp+C]
0047136E 8383 B8000000 02 add dword ptr ds:[ebx+B8],2
00471375 33C0 xor eax,eax
00471377 C3 retn

在0047136A处下F2断点 shift+F9运行

004713BA 8B048E mov eax,dword ptr ds:[esi+ecx*4]
004713BD 8B5C8E 04mov ebx,dword ptr ds:[esi+ecx*4+4]
004713C1 33C3 xor eax,ebx
004713C3 C1C8 1Aror eax,1A

在004713BA处下F2断点 shift+F9运行

004713CE 89048E mov dword ptr ds:[esi+ecx*4],eax
004713D1 49 dec ecx
004713D2 ^ EB E1jmp short UnPackMe.004713B5

此时取消所有断点(包括内存断点)

004713C6 03C2 add eax,edx
004713C8 81F2 23337DD0xor edx,D07D3323
004713CE 89048E mov dword ptr ds:[esi+ecx*4],eax
004713D1 49 dec ecx
004713D2 ^ EB E1jmp short UnPackMe.004713B5
004713D4 61 popad
004713D5 61 popad
004713D6 C3 retn

F4运行到004713D6处 打开内存在00401000 处下F2断点

内存映射,项目 22
地址=00401000
大小=00051000 (331776.)
物主=UnPackMe 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE
F9运行到达OEP

0045159C 55 push ebp
0045159D 8BEC mov ebp,esp
0045159F 83C4 F0add esp,-10
004515A2 B8 BC134500mov eax,UnPackMe.004513BC
004515A7 E8 8846FBFFcall UnPackMe.00405C34
004515AC A1 E02F4500mov eax,dword ptr ds:[452FE0]

此时DUMP 程序修复无效指针剪切就可以了




dumped_.rar
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 01:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表