本次我为大家带来的是AI自动化逆向分析一款C++软件的思路教程。
采用工具:VSCODE,claud code,X64DBG等
首先我们看看软件目录
目录里包含目标EXE文件, 以及一个之前机器用过的授权码。
这里其实有个坑, 我们用AI让其追踪关键CALL位置耗时很久, 而且最后不一定是他找到的。 因为我提前在那个位置打过断点。 然后他说找到了。 如果我没提前打断点或许他更难完成。 但是AI让我惊喜的点实际上在后面。
这是关键解密函数, 提取C:\ProgramData\BStore\Licence.dat文件里的Data
其push了两个值, 一个是注册码,一个是注册码长度
主要有两个核心算法,shr,eax,04, and edx, 0x0F, 运算后然后在码表里面找对应的字符
一个是固定机器码,修改其机器码返回,让他每次返回的机器码是固定的。 对于本身已有的注册码, 让每台机器都能使用。 在这里我直接在获取机器码16进制数据的时候更改。 这样对本身程序伤害最小。
这个方法需要分析其16进制转换成真正机器码的算法, 其实比较简单! 第一次运算,顺着找。第二次倒着找。 一个16进制字符对应两个!然后编写个程序将文本机器码转换成16进制的。 在程序空白位置写入,然后替换上面四个地址即可!
第二个是直接写注册机,这里我是让AI自动分析的。 分析过程太长就没截图! 最终分析其算法采用的aes-cbc-256。
而AI最让我惊喜的就是在这里, 直接逆向了其算法。 如果换在之前你要分析其算法实际上太耗时而且还麻烦。