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

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

推荐文章

 
 

热点文章

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

相关文章

 
 

百度搜索

 
 

FSG 1.33 的简单脱壳

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

FSG 1.33 的简单脱壳
=======================================================================
作 者: CoolWolF <coolwolf@gmx.net>
破解时间: 2003-4-13
使用工具: OLLYDBG 1.09b、Import REConstructor v1.4.2、PEiD0.8
目 标: FSG 1.33本身
平 台: Windows 2000 Server SP3
难 度: 低
=======================================================================
本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
=======================================================================


FSG是一个最近比较流行的加壳软件,压缩比很高,而且似乎没有自动脱壳机。

废话少说,我们开始:

PEiD看一下,不能识别是什么壳,OEP也找不到。看来这个小软件是不错^o^

用ollydbg加载fsg133.exe,程序停留在入口,F8单步执行:

00533124 > BE A4014000 MOV ESI,fsg133.004001A4
00533129 AD LODS DWORD PTR DS:[ESI]
0053312A 93 XCHG EAX,EBX
0053312B AD LODS DWORD PTR DS:[ESI]
0053312C 97 XCHG EAX,EDI
0053312D AD LODS DWORD PTR DS:[ESI]
0053312E 56 PUSH ESI
0053312F 96 XCHG EAX,ESI
00533130 B2 80 MOV DL,80
00533132 A4 MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00533133 B6 80 MOV DH,80
00533135 FF13 CALL DWORD PTR DS:[EBX]
00533137 ^73 F9 JNB SHORT fsg133.00533132
00533139 33C9 XOR ECX,ECX
0053313B FF13 CALL DWORD PTR DS:[EBX]
0053313D 73 16 JNB SHORT fsg133.00533155
0053313F 33C0 XOR EAX,EAX
00533141 FF13 CALL DWORD PTR DS:[EBX]
00533143 73 1F JNB SHORT fsg133.00533164
00533145 B6 80 MOV DH,80
00533147 41 INC ECX
00533148 B0 10 MOV AL,10
0053314A FF13 CALL DWORD PTR DS:[EBX]
0053314C 12C0 ADC AL,AL
0053314E ^73 FA JNB SHORT fsg133.0053314A
00533150 75 3C JNZ SHORT fsg133.0053318E
00533152 AA STOS BYTE PTR ES:[EDI]
00533153 ^EB E0 JMP SHORT fsg133.00533135
00533155 FF53 08 CALL DWORD PTR DS:[EBX+8]
…………

跟踪了一段时间之后我们发现,很多地方都要跳回00533135,我们就找到最远的一个地址:


0053318E 56 PUSH ESI
0053318F 8BF7 MOV ESI,EDI
00533191 2BF0 SUB ESI,EAX
00533193 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
00533195 5E POP ESI
00533196 ^EB 9D JMP SHORT fsg133.00533135
00533198 8BD6 MOV EDX,ESI

在00533198这一行上按F2下断,F9执行,拦截之后继续F8往下走:

00533198 8BD6 MOV EDX,ESI ; fsg133.00532E3A
0053319A 5E POP ESI
0053319B AD LODS DWORD PTR DS:[ESI]
0053319C 48 DEC EAX
0053319D 74 0A JE SHORT fsg133.005331A9
0053319F 79 02 JNS SHORT fsg133.005331A3
005331A1 AD LODS DWORD PTR DS:[ESI]
005331A2 50 PUSH EAX
005331A3 56 PUSH ESI
005331A4 8BF2 MOV ESI,EDX
005331A6 97 XCHG EAX,EDI
005331A7 ^EB 87 JMP SHORT fsg133.00533130
005331A9 AD LODS DWORD PTR DS:[ESI]

这里又跳回00533130了,同样的道理,在005331A9下断,拦截后F8:

005331AF 56 PUSH ESI
005331B0 FF13 CALL DWORD PTR DS:[EBX]
005331B2 95 XCHG EAX,EBP
005331B3 AC LODS BYTE PTR DS:[ESI]
005331B4 84C0 TEST AL,AL
005331B6 ^75 FB JNZ SHORT fsg133.005331B3
005331B8 FE0E DEC BYTE PTR DS:[ESI]
005331BA ^74 F0 JE SHORT fsg133.005331AC
005331BC 79 05 JNS SHORT fsg133.005331C3
005331BE 46 INC ESI
005331BF AD LODS DWORD PTR DS:[ESI]
005331C0 50 PUSH EAX
005331C1 EB 09 JMP SHORT fsg133.005331CC
005331C3 FE0E DEC BYTE PTR DS:[ESI]
005331C5 -0F84 35DEECFF JE fsg133.00401000
005331CB 56 PUSH ESI
005331CC 55 PUSH EBP
005331CD FF53 04 CALL DWORD PTR DS:[EBX+4]
005331D0 AB STOS DWORD PTR ES:[EDI]
005331D1 ^EB E0 JMP SHORT fsg133.005331B3

在这里我们从右边的状态栏里面可以看到,程序在循环一系列的API名,我们可以特别注意一下


005331C5 -0F84 35DEECFF JE fsg133.00401000

很明显,软件在这里是恢复Import表,当完全恢复之后跳到OEP,所以这个程序OEP就是00401000,这也是很多壳采用的方法。

剩下的事情很简单,DUMP出来之后用Import REConstructor修复,全都可以自动完成,程序执行正常。

整理:程序有两个长时间的循环,跟踪时应该跳过;OEP地址出现在第二次循环结束之后。

EOF====================================================================

BTW:DUMP出来的程序居然有1.2M,而加了壳的文件只有65k:~) 不过这个软件好像对VC编写的程序特别挑剔,加壳后经常非法操作,对汇编程序的支持倒是很好。

  

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

 

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

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