庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>软件破解>脱壳技术>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

EZIP1.0脱壳手记

 作者:本站收集   日期:2005-5-28
字号选择〖 〗/ 双击滚屏 单击停止   
好久没有写有关于脱壳的文章了 主要是最近一直在研究Keygen的编写和密码学 而且也没有什么感兴趣的壳可写比如 DBPE1.5B4 或者 ASProtect1.3 太简单的又没有 ^_^ 今天到http://www.programmerstools.org/
溜达了一圈 乱七八糟的东西弄下来一大堆 其中就有一个这个东西 叫做EZIP 是个动态压缩软件 使用Generic Unpacker Win32 脱壳居然非法操作 还以为会有点乐趣值得研究一下 没有想到使用TRW脱壳居然出奇的简单 :( 功夫不能白费 写出来给一些初学者参考一下吧 不对的地方请多多执教!

脱壳的目标就是EZIP程序本身。

用TRW载入程序 按两下F10后来到外壳部分代码段:

017F:004582DC INT3
017F:004582DD MOV EBP,ESP /TRW的光条停在这里
017F:004582DF SUB EBP,0428
017F:004582E5 PUSH EBX
017F:004582E6 PUSH ESI
017F:004582E7 PUSH EDI
017F:004582E8 LEA EAX,[EBP+FFFFFC94]
017F:004582EE PUSH EAX
017F:004582EF CALL 004550F0
017F:004582F4 POP ECX
017F:004582F5 TEST EAX,EAX
017F:004582F7 JNZ 0045868A

这个东西的壳相当简单 比我所见过的任何壳都简单许多 一直按F10单步跟踪就到达了这里:

017F:00458539 PUSH EAX
017F:0045853A PUSH DWORD [EBP+FFFFFDEC]
017F:00458540 LEA EAX,[EBP+FFFFFC3C]
017F:00458546 PUSH EAX
017F:00458547 LEA EAX,[EBP+FFFFFC94]
017F:0045854D PUSH EAX
017F:0045854E CALL 00455005
017F:00458553 ADD ESP,BYTE +10
017F:00458556 AND DWORD[EBP+FFFFFC34]
017F:0045855D JMP SHORT 0045856C /跳到脱壳代码段
017F:0045855F MOV EAX,[EBP+FFFFFC34] /标志位-EAX
017F:00458565 INC EAX /循环一次后减一
017F:00458566 MOV [EBP+FFFFFC34],EAX /压入地址 EBP+FFFFFC34 中
017F:0045856C MOV EAX,[EBP+FFFFFBE4] /从这里开始程序开始进行循环 并在内存中脱壳
017F:00458572 MOVZX EAX,WORD [EAX+06] /取值
017F:00458576 CMP [EBP+FFFFFC34],EAX /对比循环标志
017F:0045857C JNC NEAR 0045861F /跳出到45861F的话则循环结束
017F:00458582 MOV EAX,[EBP+FFFFFDEC]
017F:00458588 MOV EAX,[EAX+0C]
017F:0045858B ADD EAX,[EBP+FFFFFBE0]

若没有在 0045857C 处跳出,你就会按F10跟到这里:

017F:004585F5 LEA EAX,[EBP+FFFFFC3C]
017F:004585FB PUSH EAX
017F:004585FC LEA EAX,[EBP+FFFFFC94]
017F:00458602 PUSH EAX
017F:00458603 CALL 00455050
017F:00458608 ADD ESP,BYTE +18
017F:0045860B MOV EAX,[EBP+FFFFFDEC]
017F:00458611 ADD EAX,BYTE +28
017F:00458614 MOV [EBP+FFFFFDEC],EAX
017F:0045861A JMP 0045855F /跳到上面继续进行循环脱壳
017F:0045861F PUSH DWORD [EBP+FFFFFDE8]

因此我们知道了这个壳的第一个关键处 就是45857C 只要这个时候下 BPX XXXXXXX (45857C中JNC语句后面的地址) 然后按一下F5 程序就会自动停到循环后的第一个语句处 这时按F10继续跟踪会很快来到这里:

017F:00458662 POP ECX
017F:00458663 POP ECX
017F:00458664 MOV EAX,[EBP+FFFFFC2C]
017F:0045866A MOV EAX,[EAX+10]
017F:0045866D MOV ECX,[EBP+FFFFFC2C]
017F:00458673 ADD EAX,[ECX+1C]
017F:00458676 MOV [EBP+FFFFFC38],EAX
017F:0045867C MOV EAX,[EBP+FFFFFC38]
017F:00458682 POP EDI
017F:00458683 POP ESI
017F:00458684 POP EBX
017F:00458685 MOV ESP,EBP
017F:00458687 POP EBP
017F:00458688 JMP EAX /这个就是跳到程序的OEP的JMP
017F:0045868A POP EDI

从这个JMP跳出来 哦~~~ 整个世界清净了 重要找到了OEP ^_^ 赶快下命令 MAKEPE ———— 脱壳成功 程序没有对
输入表加密 脱壳后可以夸平台运行了 呵呵
脱壳后的程序370多K 看来这个东西的压缩比还是很高的阿
上一篇:PEPack1.0脱壳手记    下一篇:怎样脱用 Aspack2.12 加的壳(适合初学者)  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-5-28
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿