• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 软件应用 >> 病毒安全 >> 详细内容
 

推荐文章

 
 

热点文章

  • 网吧任我行
  • 诺基亚手机杀毒软件使用指南
  • 加密软件PGP教程
  • 如何防止黒客远程盗取QQ密码
  • 远程盗ADSL帐号密码竟如此简单?
  • 如何破解PCAnyWhere的密码
  • 破解 女性基础体温管理软件 v1.2
  • 破万象.免费上网
  • 使用ARP命令来绑定IP和MAC地址
  • 完全免费!国外杀毒软件AVG新版试用!
  • C语言学习系统 v3.0 破解过程
  • IE再现漏洞,立刻升级新补丁!
 
 

相关文章

 
 

百度搜索

 
 

AZPR3.0的脱壳教程.

  • 阅览次数:
  • 文章来源: CodePub整理
  • 原文作者: 不详
  • 整理日期: 2006-10-05
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

详细信息:

Advanced Zip Password Recovery 3.0的脱壳
版权声明: 本文没有版权,允许任意转贴和修改. 但如果只引用文中部分内容时,请最好注明原文出处,以表示对一位Cracker同行的劳动的尊重.

使用工具:
TRW2000 1.03
ProcDump 1.6.2
Hexworkshop 3.02

比起其Beta版来,AZPR 3.0正式版的保护更为加强. 1. 对Softice的多处Check,用FrogsICE不能完全骗过; 2. CRC的校验; 3. 动态地址(好象是这个名吧?); 4.对Loader的防范,这回用Process Patch不行了.

用Softice跟踪它会是一种痛苦 (当然完全可以用Softice,只是你要了解程序的Anti-debugger技巧,在关键的Check后改变跳转方向). 这次祭出我们中国人的骄傲TRW2000来对付它.

先用Procdump的PE Editor查看一下程序的.idata section记下数值. Virtual size=2000, Virtual offset=21000. 另外,记下程序的Image Base: 400000.

1. 运行TRW, Load程序. 程序中断在入口处. 但接下来无论是否BPX设断只要G继续运行程序,便会出错. 下Faults off, G, OK程序退出.
2. 试BPM 421000 (.idata的offset), 再Load程序. G, 程序可以被正常中断, COOL!
3. G,当程序第三次(? 记不清了. 原则是d 421000显示的data区见到XXXX0200 000000字样)中断时,BD*,F10直到下面的语句

*********************************
注意: 程序每次Load时Offset都不一样,你的机器中的XXXX:YYYYYYYY肯定和下面的不同. 下Code on指令,这样才好参照下面的代码. 另外,下面所摘的几段代码是引用高手tiamath的.因为我不清楚在TRW下如何dump屏幕 (谁能指教一下:);而用ICEDump的pagein n命令来Dump Softice的屏幕,我的机器会死机. :(
*********************************

0167:004F34CD 50         PUSH EAX
0167:004F34CE B890274F00     MOV EAX,004F2790
0167:004F34D3 50         PUSH EAX
0167:004F34D4 B8A4274F00     MOV EAX,004F27A4
0167:004F34D9 50         PUSH EAX
0167:004F34DA B8A0284F00     MOV EAX,004F28A0
0167:004F34DF 50         PUSH EAX
0167:004F34E0 B8AC274F00     MOV EAX,004F27AC
0167:004F34E5 50         PUSH EAX
0167:004F34E6 B8646C4E00     MOV EAX,004E6C64
0167:004F34EB 50         PUSH EAX
0167:004F34EC 8B4508         MOV EAX,[EBP+08]
0167:004F34EF 8D4824         LEA ECX,[EAX+24]
0167:004F34F2 8B4508         MOV EAX,[EBP+08]
0167:004F34F5 8B500C         MOV EDX,[EAX+0C]
0167:004F34F8 8B4508         MOV EAX,[EBP+08]
0167:004F34FB 8B4008         MOV EAX,[EAX+08]
0167:004F34FE E899F4FFFF     CALL 004F299C
0167:004F3503 33C0         XOR EAX,EAX <--在这里Dump .idata

下指令 W 421000 L 2000 azprdata.bin

OK. 再往下,直到

0167:004F3637 8D4818         LEA ECX,[EAX+18]
0167:004F363A 8B4508         MOV EAX,[EBP+08]
0167:004F363D 8B10         MOV EDX,[EAX]
0167:004F363F 8B4508         MOV EAX,[EBP+08]
0167:004F3642 8B401C         MOV EAX,[EAX+1C]
0167:004F3645 E8EAF6FFFF     CALL 004F2D34 <--F8进入
0167:004F364A 5F         POP EDI
0167:004F364B 5E         POP ESI

到了

0167:004F2D72 E9148B1DA8     JMP A86CB88B
0167:004F2D77 8E4F00         MOV CS,[EDI+00]
0167:004F2D7A EB01         JMP 004F2D7D
0167:004F2D7C EB89         JMP 004F2D07
0167:004F2D7E 041C         ADD AL,1C
0167:004F2D80 EB02         JMP 004F2D84
0167:004F2D82 EBE8         JMP 004F2D6C
0167:004F2D84 61         POPAD
0167:004F2D85 EB01         JMP 004F2D88
0167:004F2D87 E850EB02E9     CALL E95218DC
0167:004F2D8C 17         POP SS
0167:004F2D8D E802000000     CALL 004F2D94
0167:004F2D92 E91758C35E     JMP 5F1285AE
0167:004F2D97 5B         POP EBX
0167:004F2D98 59         POP ECX

此时小心地跟踪,碰到JMP时按F8而不要按F10

直到显示变成

0167:004F2D72 E9148B1DA8     JMP A86CB88B
0167:004F2D77 8E4F00         MOV CS,[EDI+00]
0167:004F2D7A EB01         JMP 004F2D7D
0167:004F2D7C EB89         JMP 004F2D07
0167:004F2D7E 041C         ADD AL,1C
0167:004F2D80 EB02         JMP 004F2D84
0167:004F2D82 EBE8         JMP 004F2D6C
0167:004F2D84 61         POPAD
0167:004F2D85 EB01         JMP 004F2D88
0167:004F2D87 E850EB02E9     CALL E95218DC
0167:004F2D8C 17         POP SS
0167:004F2D8D E802000000     CALL 004F2D94
0167:004F2D92 E91758C35E     JMP 5F1285AE
0167:004F2D94 58         POP EAX <-- 光标位于此行时, EAX=401000
0167:004F2D95 C3         RET <--这里

下Suspend指令. 回到Windows. 用ProcDump来Dump(full)脱壳的程序,得到azprdump.exe. 你也可以用TRW的PEDUMP命令来得到脱壳程序,但我个人的经验很容易死机,所以我宁愿用ProcDump来做.

4. 用PE Editor修改程序的Entry Point为1000. 并查看脱壳后程序的.idata section. 此时Raw size=1670, Raw offset=1FC00. 修改Directory中Import Table的RVA=21000,SIZE=1670.
5. 用Hexworkshop打开azprdump.exe和azprdata.bin. Goto到exe文件的1FC00偏移处,Select Block大小为1670. 拷贝.bin文件的同样大小(1670)的Block,粘贴到exe文件中以替换掉不正确的.idata section.

现在,再试着运行程序,应该可以正常运行了. 如果程序出错,再做一件事: 把 .bss section的raw size值改为00000000 (高手tiamath的建议).

有了脱壳的程序,大家应该会Patch它成为注册版了吧. 只需改一个字节.

结语: 用本文所描述的方法,可以对绝大多数Asprotect+Aspack保护的程序进行成功的脱壳. 大家读完这篇教程,不妨找几个程序开刀. 比方说,The Bat! 1.39现在不应该再难住大家了.

好了,这次就到这儿了,下回见.
  

上一篇:PHP编程技巧:看实例学正则表达式
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号