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

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

推荐文章

 
 

热点文章

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

相关文章

 
 

百度搜索

 
 

ASProtect的加密算法初步分析(1)

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

原来ASProtect的几个函数的作用对保护强度提高不小。一改以前我见过的壳重技巧轻算法的毛病,的确在有些方面值得学习。

其利用的原理如下:
1)程序在编程时可以根据需要选择使用ASProtect提供的几个函数。
比如:
SetRegistrationKey(...),
GetRegistrationInformation(...),
GetHardwareID(...)

这几个函数由于使用了导出方式的声明所以会在ExportTable中出现,ASProtect在加壳时可以通过分析ExportTable识别出程序使用了哪些其提供的函数,从而对这些函数的入口进行挂钩,从而使其加壳后的外壳代码可以象回调函数一样调用这些函数与程序进行通信。
比如见以下代码:
0041333E loc_41333E: ; CODE XREF: sub_413253+B0j
0041333E mov eax, ds:4155CCh
00413343 cmp dword ptr [eax+0Ch], 0
00413347 jz short loc_413360
00413349 mov eax, ds:41555Ch
0041334E mov eax, [eax]
00413350 call @System@@LStrToPChar$qqrv ; System __linkproc__ LStrToPChar(void)
00413355 push eax
00413356 mov eax, ds:4155CCh
0041335B mov eax, [eax+0Ch]
0041335E call eax
00413360
00413360 loc_413360: ; CODE XREF: sub_413253+F4j
00413360 mov eax, ds:4155CCh
00413365 cmp dword ptr [eax+30h], 0 ; eax 是一内部结构指针
00413369 jz short loc_413389
0041336B push 41105Ch
00413370 mov eax, ds:4155CCh
00413375 mov eax, [eax+30h]
00413378 call eax ; 这里将调用 GetDecryptProc(...)
0041337A push 41105Ch
0041337F mov eax, ds:4155CCh


2)程序在编程时还可以加入ASProtect提供的两个宏定义,这两个宏定义实际上将起到特殊的标志作用,有点类似"块开始"和"块结束"的作用。在ASProtect将在加壳时将对"这些块"中的代码进行加密。对这些代码块的加、解密使用了的密码学算法。目前还不十分清楚其使用的算法,初步分析这里可能用到了TWOFISH。因为发现了一些特征:

初始化部分有以下常数设置:
0040C4AE mov dword ptr [ebx+48h], 67452301h
0040C4B5 mov dword ptr [ebx+4Ch], 0EFCDAB89h
0040C4BC mov dword ptr [ebx+50h], 98BADCFEh
0040C4C3 mov dword ptr [ebx+54h], 10325476h
0040C4CA mov dword ptr [ebx+58h], 0C3D2E1F0h
0040C4D1 mov dword ptr [ebx+5Ch], 76543210h
0040C4D8 mov dword ptr [ebx+60h], 0FEDCBA98h
0040C4DF mov dword ptr [ebx+64h], 89ABCDEFh
0040C4E6 mov dword ptr [ebx+68h], 1234567h
0040C4ED mov dword ptr [ebx+6Ch], 3C2D1E0Fh

而运算部分有大量类似MD5算法的运算。由于代码太长,不列举了。

  

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

 

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

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