`
izuoyan
  • 浏览: 8950273 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

    EncryptPE2008.2.06.18

    可以将软件加壳,保护软件。跟朋友一起分享!请多指点,我要找个能脱这壳的软件!

    EncryptPE V2.2007.04.11+ V2.2007.12.01 脱壳机

    EPE V2 Stripper 2007.4.11 + 2007.12.01 +V20070411 +V20071201 +SDK +CodeReplace fixed by shoooo[CUG] Thanks: wfs, heXer, xIkUg, DiKeN

    encryptpe20040810.rar

    encryptpe20040810,内有保密码,算号可注册了

    EncryptPE V2.2008.6.18

    著名的加壳软件,可以对你的PE文件进行加密保护。

    Encryptpe老版本的通用脱壳机

    Encryptpe老版本的通用脱壳机,这个支持所有老版本的壳!

    EncryptPE_note.7z

    菜鸟学习笔记之EncryptPE 菜鸟学习笔记之EncryptPE

    完全掌握加密解密实战超级手册.zip02

    1445.2.2 实现SoftICE调用 1485.2.3 激活SoftICE主窗口 1485.2.4 快捷键与常用命令 1505.2.5 快速找到程序入口处 1575.2.6 多次跟踪的设置 1585.2.7 用PE修改代码属性 1585.3 动态反汇编调试器TRW2000 1595.3.1 安装...

    完全掌握加密解密实战超级手册.z01

    1966.4.1 补丁制作工具dUP 1966.4.2 绿色工具XCell 1996.5 专家点拨:常见问题解答 200第7章 揭秘壳的不同应用技术 2017.1 不同的加壳压缩软件 2027.1.1 DOS窗口下的文件压缩壳软件UPX 2027.1.2 压缩各种可执行程序...

    EncryPtpe

    支持多语言,除GB外的其他语言形式的界面元素由“EncryptPE.INI”文件设置,便于增删改,注册窗口界面与语言相关。 5. 向待加密软件提供方便的编程接口,便于设计个性注册方式,同时使被加密程序与加密壳之间融...

    PE加密保护软件(EncryptPE)

    支持多语言,除GB外的其他语言形式的界面元素由“EncryptPE.INI”文件设置,便于增删改,注册窗口界面与语言相关。 5. 向待加密软件提供方便的编程接口,便于设计个性注册方式,同时使被加密程序与加密壳之间融...

    Crack破解必学+脱壳

    Crack破解必学,手动脱壳,案例收集 01、破解工具的介绍 02、壳的介绍已经脱壳常用思路 03、手脱UPX的几种方法 04、手脱ASPack以及变形壳的几种方法 05、手脱FSG1.33变形壳 06、手脱PECompact 07、手脱nspack(北斗)...

    2009年通用脱壳机免费下载

    可脱一般的加壳软件 自己看看 然后试试 绝对让你大开眼界

    讯极天度DIY教程.txt

    encryptpe(2) v2.2008.6.18授权文件(2) 注册机(1) 序列号(1) 雨过天晴(1) 破解(1)

    加密狗检测工具2.0.zip

    2、USB\VID_096E&PID_0403\5&18CD3484&0&1 Rockey6 3、HID\VID_096E&PID_0006 飞天诚信(ftsafe) 飞天4无驱型 加密锁 rockey 4 nd ROCKEY4ND 4、USB\VID_096E&PID_0304 坚石诚信(Rockey) ET199 Token 5、USB\VID_...

    USB设备检测工具.rar

    USB\\VID_0925&PID_8705 世纪龙脉(Century Longmai) NOX5 加密狗 智能狗,无驱型 USB\\VID_0925&PID_7504 世纪龙脉(Century Longmai) NOX5 主锁 USB\\VID_0529&PID_0001 阿拉丁(Aladdin) HASP HL Time 有驱型 USB\...

    加密狗型号查看读取工具

    _8705 世纪龙脉(Century Longmai) NOX5 加密狗 智能狗,无驱型USB\\VID_0925&PID;_7504 世纪龙脉(Century Longmai) NOX5 主锁USB\\VID_0529&PID;_0001 阿拉丁(Aladdin) HASP HL Time 有驱型USB\\VID_0529&PID;_0001 ...

    ccs-gm:中国网安go语言国密库

    ccs-gm go语言国密密码库,实现了数据签名/验签、数据哈希、对称加密、非对称加密、x509证书管理、以及国密tls通信的功能。 License Hyperledger Project source code files are made ...golang: x509.EncryptPE

Global site tag (gtag.js) - Google Analytics