分享
 
 
 

Encyrptpe 2003.5.18主程序Unpacking tut

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

EnCryPtPE 2003.5.18主程序的脱壳

【目 标】:EnCryPtPE 2003.5.18主程序

【工 具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F

【任 务】:脱马甲

【操作平台】:Windows Xp sp1

【作 者】:loveboom[DFCG][FCG][US]

【简要说明】:不打算发布出去,只是当做自己以后参考用而已

【详细过程】:

设置:

忽略全部异常,其它选上加上0EEDFADE和C0000008(INVALID HANDLE)两个异常地址并隐身先.

第一步:找程序的OEP

准备好后,我们先找到OEP对后面有用的.

004B7000 > 60 PUSHAD ;壳的入口

004B7001 9C PUSHFD

载入后并设置好然后按f9运行,出现那个很长时间的异常

后.取消int3异常,这里要等很久的,可以先去做一点别的事.N久之后,在INT3处异常中断了.

7119CF58 90 NOP ;第一次断在这里

7119CF59 64:8F05 0000000>POP DWORD PTR FS:[0]

下按一次shift+f9进入第二次int3异常中断:

7119CF58 90 NOP ;第二次也是断在这里

7119CF59 64:8F05 0000000>POP DWORD PTR FS:[0]

7119CF60 C3 RETN

现在打开内存页面,在程序所在段处下F2断点:

然后再按一次程序就断在程序的oep处了:

现在再找一下输入表的位置,随便选一处就行了:

00406AA0 90 NOP ;我找的是这里

00406AA1 - E9 7EB3AB00 JMP 00EC1E24

第一步也就算完成了,这一步要记下程序的OEP: 499780,和00406aa0那个地址,看一下就知道壳改了东西,让IAT跳到壳里去了,后面还有很长一段,直接修复吗?当然不是了,重来准备修复程序的代码了.

第二步:修复程序代码

再次载入后同样在那个很长时间的时候,在00406AA0处下内存访问中断.

711A451A 8B07 MOV EAX,DWORD PTR DS:[EDI] ;第一次断下

711A451C 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]

711A451F 83F2 FF XOR EDX,FFFFFFFF

……

711A4569 66:8B03 MOV AX,WORD PTR DS:[EBX]

; 第二处中断处

好了,现在我们要记下711A4569这个地址,再来一次,在711a4569处下一下硬件执行断点,因程序一开始没有711a4569这个地址,所以我们要让程序运行一会儿,然后就可以下断了.

711A456C 66:3D FF25 CMP AX,25FF

711A4570 74 0B JE SHORT 711A457D

711A4572 66:3D FF15 CMP AX,15FF

711A4576 74 05 JE SHORT 711A457D

711A4578 E8 EF7BF8FF CALL 7112C16C

711A457D 8B7D FC MOV EDI,DWORD PTR SS:[EBP-4] ; EncryptP.0049D250

711A4580 8B37 MOV ESI,DWORD PTR DS:[EDI]

;这里要改我们的东西了,所以这时改成mov esi,edi

711A4582 81FE 00000080 CMP ESI,80000000

711A4588 72 05 JB SHORT 711A458F

711A458A E8 DD7BF8FF CALL 7112C16C

711A458F 66:813B FF25 CMP WORD PTR DS:[EBX],25FF

;这里判断是不是跳去api的了,如果是就改代码。

711A4594 75 07 JNZ SHORT 711A459D

;所以我们这里就要改成 jmp 711a459d

711A4596 66:C703 90E9 MOV WORD PTR DS:[EBX],0E990

;这里把正常的东西填成jmp xxxx nop的方式了

711A459B EB 05 JMP SHORT 711A45A2

711A459D 66:C703 90E8 MOV WORD PTR DS:[EBX],0E890

;这里也要改,否则变成了call xxxx,nop的方式,所以这里要nop掉

711A45A2 8B5D E8 MOV EBX,DWORD PTR SS:[EBP-18]

711A45A5 83C3 06 ADD EBX,6

711A45A8 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20]

711A45AB 03C0 ADD EAX,EAX

711A45AD 03D8 ADD EBX,EAX

711A45AF 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]

711A45B2 8B38 MOV EDI,DWORD PTR DS:[EAX]

711A45B4 0FB703 MOVZX EAX,WORD PTR DS:[EBX]

711A45B7 2D 00300000 SUB EAX,3000

711A45BC 03F8 ADD EDI,EAX

711A45BE 037D DC ADD EDI,DWORD PTR SS:[EBP-24]

711A45C1 2BF7 SUB ESI,EDI ;********

711A45C3 83EE 04 SUB ESI,4 ;********

;这里两行又是进行破坏操作,nop掉去

711A45C6 8937 MOV DWORD PTR DS:[EDI],ESI

711A45C8 33C0 XOR EAX,EAX

改好后的图如下:

修改完成后,取消刚才的硬件断点.再和第一步一样到oep处,现在我们看看发生了什么变化:

00406AA0 - FF25 50D24900 JMP DWORD PTR DS:[49D250] ;怎么样,已经改好了代码吧

00406AA6 8BC0 MOV EAX,EAX

00406AA8 - FF25 4CD24900 JMP DWORD PTR DS:[49D24C]

现在把程序给dump下来.进入第三步.

第三步:修复程序的输入表

现在就差输入表没有处理了.现在我们再次载入程序,然后在我们前面记下的OEP的那个地址处下内存访问断点然后运行之,结果在这里断下了:

71122943 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>

71122945 89C1 MOV ECX,EAX

断下后,取消内存访问断点,下MR GetProcAddress,的内存访问断点。再次运行,断下了:

在7119D30C处断下后,按ctrl+B找334DFC89088955F8,找到这里:

711A3385 334D FC XOR ECX,DWORD PTR SS:[EBP-4]

;这里改成mov ecx,ss:[ebp-4]

711A3388 8908 MOV DWORD PTR DS:[EAX],ECX

711A338A 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX

;这里又是进行破坏,NOP掉这里

711A338D 85FF TEST EDI,EDI

改好后的情况:

改好后,去掉所有的内存断点,并下断HE 711a4569,并运行之,再次中断后,我们可以得到完全的输入表了.现在看看iat的位置和大小,大小可以不算,写一个可以得到全部IAT的大概值就OK的.

我是偷懒我选择的是iat开始地址: 9d160(RVA),大小为1000,然后把无效的给cut掉J.

这好了,现在填上oep然后fixdump就行了.

现在程序就可以正常运行了.

后面的就不再写了.

改进一下我自己上次的脱壳方法,直接在EPE0段下F2断点,断下后下断mr getprocaddress,再然如果不是中断在GetProcaddress入口处的话,找:

711A3385 334D FC XOR ECX,DWORD PTR SS:[EBP-4]

;这里改成mov ecx,ss:[ebp-4]

711A3388 8908 MOV DWORD PTR DS:[EAX],ECX

711A338A 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX

Greetz:

Fly.Jingulong,yock,tDasm.David.ahao.UFO(brother).alan(sister).all of my friends and you!

By loveboom[DFCG][FCG]

Email:bmd2chen@tom.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有