ASProtect的加密算法初步分析
2007-01-12 20:12:21 来源:WEB开发网核心提示: 初始化部分有以下常数设置:0040C4AE mov dword ptr [ebx+48h], 67452301h0040C4B5 mov dword ptr [ebx+4Ch], 0EFCDAB89h0040C4BC mov dword ptr [ebx+50h], 98BADCFEh00
初始化部分有以下常数设置:
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算法的运算。由于代码太长,不列举了。
3)在ASProtect中我们看到其提供了Registration_Keys加密方式。ASProtect可以对你提供的"Registration_Information"进行加密,形成"Registeration_Key",(按照帮助中介绍的你还可以使用自己的"加解密算法",但是RegKey必须至少173个字符,才有安全性)。这个"RegKey"将以注册表文件(.reg)文件方式保存。在加壳后的外壳代码运行时将解密"RegKey"从而得到"RegInfo",当然这分为两种方式:一种方式,程序编程时使用了其提供的回调函数SetRegistrationKey(...),那么外壳代码运行时将调用该函数从而得到"RegKey"来解密出"RegInfo",如果程序没有使用这个函数,外壳代码将从注册表中相应键名处提取键值作为"RegKey"来解密出"RegInfo"。初步分析其可能使用了RSA算法。
其解密部分的代码:
0040B4D4 loc_40B4D4: ; CODE XREF: license+156j
0040B4D4 ; license+15Fj
0040B4D4 lea edi, [ebp+lpInterBlock]
0040B4DA inc edi
0040B4DB mov esi, edi
0040B4DD push esi
0040B4DE lea eax, [ebp+lpInterStruct+8]
0040B4E4 push eax
0040B4E5 lea eax, [ebp+lpInterStruct+88h]
0040B4EB push eax
0040B4EC push esi
0040B4ED call decrypt_engine ; Criper Text to Plain Text...
从 decrypt_engine 函数的入口参数看有四个:
- ››加密帖教程
- ››算法大全(3) 二叉树
- ››加密狗
- ››算法
- ››加密使企业FTP服务器更安全
- ››加密网页破解大法
- ››加密与解密原理的一个例子
- ››加密处理使密码更安全
- ››加密能奈我何?破解加密光盘五式
- ››加密文件看见“照妖镜” 还不显原型
- ››加密 Windows CE系统
- ››ASProtect的加密算法初步分析
更多精彩
赞助商链接