逆向一个易语言DLL的加密算法。关键算法逆出来了,但是没有看懂属于什么算法。
前言
这个DLL是一个授权的,填入激活码之后会访问自己的后台验证。
我也是闲来无事,拿来学习学习。如果作者看到了,并非恶意。
先来说下我如何进行逆向算法的。
因为易语言的DLL脱离不了核心支持库。核心支持库是有特征码的,不管程序怎么加密,核心支持库是加密不了的。我们可以用核心支持库的特征 来进行逆向算法。
程序和DLL的核心支持库都是独立存在的。
DLL用的是DLL编译时的核心支持库。
过程
其中的链接 我就拿 http://www.baidu.com 为例
前面的加密算法 是通过核心支持库逆出来的。
程序启动后是不会直接加载DLL的。
需要使用过DLL的函数后 才会加载。
等加载完DLL之后 我们进入DLL层
双击这个DLL 就可以进入DLL层了。
然后就是通过特征码来在DLL层下断点。这里我用的的工具 知道edebug找到核心支持库的地址。
再通过这个特征 查找特征的位置的位置。
在这里下断。
RC4和DES加密处也要下断,为了就是看看 没有没有使用易语言自带的加密
为了就是看看有没有使用核心支持库里的加密算法。
做的动作有,先获取13位时间戳 然后把最后3位改成000
解密出来的是我填入进去的激活码。
继续运行。运行几次之后 会出来二次解密。
我写着写着 居然忘了二次解密的密码是怎么找到的了。。。
密码是 sdvscv;lwe,r[xc/bvfsd/w
再用自己的激活码进行二次解密。
密文|密文的MD5|X 分割 取密文再将解密出来的密文 进行MD5和程序计算的MD5是否一致,
关键 关键来了。
密文的长度位128位
其实这个密文是16进制的,
转到字节集后 进行倒序。
1a2b3c4d5f -> 5f4d3c2b1a
然后就是进行3次解密,
因为解密出来的是128位
就是 moc.udiab.www//:ptth +字节 {0}+ 后面的107长度字节集 (后面107位不知道是做什么用的。)
关键解密 的特征码为↓↓↓
55 8B EC 81 EC 24 00 00 00 C7 45 FC 00 00 00 00 C7 45 F8 00 00 00 00 68 05 00 00 80 6A 00 8B 5D
0C 8B 03 85 C0
最后再将倒序的链接 矫正之后 就是真正的后台授权地址。(http://www.baidu.com)
参考文献
逆向一个易语言DLL的加密算法。关键算法逆出来了,但是没有看懂属于什么算法。
https://www.52pojie.cn/thread-886009-1-1.html
(出处: 吾爱破解论坛)
相关下载
链接: Desktop.rar https://pan.baidu.com/s/1RjcYrrmNnXyY0zsR9ml_Gw 提取码: 4n7g