吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8703|回复: 135
收起左侧

[原创] AIDA64 8.25.8200 Business 逆向工程与Keygen实战

    [复制链接]
hitachimako 发表于 2026-3-16 02:32
本帖最后由 hitachimako 于 2026-3-16 02:41 编辑

AIDA64 8.25.8200 Business 逆向工程与Keygen实战

0. 引言

作为一个大二大学牲,最近给PC升级了散热,就想监控一下温度,但是在网上翻来覆去扒了好多论坛都没没有找到AIDA64今年2月24日最新版本Business的Keygen,只有一些固定分享的Key容易被AIDA64标记,那么能不能做到使用Keygen实现Business自由呢?下载了几个老版本,进去还有Illegal Copy牛皮癣警告膈应人。那么新版本AIDA64对安全性做了什么升级呢?

1. 初步分析

  1. 解包:AIDA64一如既往的使用标准UPX打包,直接使用upx -d aida64.exe即可将其解包为正常exe,接着放入IDA进行分析。
  2. 寻找序列号校验代码:我使用的是AIDA64 Portable版本,可以看到程序相同目录有一个Language目录,找到ulang_cn.txt并搜索序列号,这里会发现序列号的本地化对应为Product Key
    1.png
  3. 在IDA中搜索Product Key出现的全部位置。搜索到了这些字符串:
    2.png
    其中我们一眼看到The entered product key is invalid,这样我们就定位到了序列号校验窗口的代码,可以反编译并研究检查逻辑了。

2. 校验位分析

首先,按F5进行反编译,往下稍微翻一点可以看到这样的逻辑:
3.png
可以看到,如果vars113是1,就说明序列号是无效的。而往上一看,(__int64)&vars113作为sub_108B440的out参数,说明这个函数进行了关键的校验逻辑,第一个参数应该就是序列号了。点开这个函数进行分析:
4.png
首先执行了v112 = a1,接着后面的一大串处理函数将字符串分别去除-_和空格、0x00AD0x00C2这几种符号,仅保留25字节,然后进一步规范化为全大写,最终到这个位置:
5.png
sub_4166D0(&varsB0, vars120, 1, 24); 把序列号的前24字节提取了出来,紧接着的v17 = sub_108B370(_0, varsB0);计算了一个变种CRC16,具体逻辑详见keygen(可以靠AI逆一下)。比较重要的是,sub_108B0B0(_0, &varsB8, v17 % 0x9987u)为什么是0x9987这个数字?是因为其将CRC结果变成了34进制的3位数来处理,0x9987-1是3位34进制数能表达的最大数,而字母表是一个常量DY14UF3RHWCXLQB6IKJT9N5AGS2PM8VZ7E
6.png
后面的

sub_4166D0(&varsC0, varsB8, 2, 1);
sub_4166D0(&varsA8, vars120, 25, 1);
v18 = sub_416680(varsC0, varsA8);
*a8 = v18 == 0;

则是将这3字符中的第2个字符作为校验字符提取了出来,与序列号的最后一位对比。

3. 序列号如何保存信息

在校验位后面,程序对输入的序列号搞了一大堆blacklist校验,我们先不看这一段(反正也不会用公开key了)
我们主要看这一段:
7.png
sub_108B270主要还是用刚才那个字母表把序列号以34进制转换成整数,其逻辑为:

result = Σ digit[i] * 34^(len-1-i)

sub_4166D0(&vars70, vars120, 1, 2); 的后两个参数则是从第几位取几位数字,例如第一行是从23位取2个数字(也就是最后俩数),因为后面的时间运算需要seed,所以这里要先取出来。
具体定义表:

Key 位置 结果
1 - 2 Product ID (也就是判断Business/Expert等)
3 - 4, 5 - 6, 7- 8 不知道是什么,但是影响不大,通过校验即可
9 - 12 序列号
13 - 16 基准日期
17 - 19 到期偏移
20 - 22 版本支持偏移
23 - 24 种子

基准日期算法

先获取13 - 16 这一段

sub_4166D0(&vars48, vars120, 13, 4);
v31 = sub_108B270(_0, vars48);
vars138 = vars144 ^ v31 ^ 0x7CC1;

然后拆出来年月日:

year  = ((vars138 >> 9) & 0x1F) + 2003;
month = (vars138 >> 5) & 0x0F;
day   = vars138 & 0x1F;

到期偏移算法

IDA里看起来是这样:

sub_4166D0(&vars40, vars120, 17, 3);
v32 = sub_108B270(_0, vars40);
*a6 = (unsigned __int8)vars144 ^ v32 ^ 0x3FD;

可以比较明显的看出来,逻辑是:

expire_delta = (seed & 0xFF) ^ dec34(key[17..19]) ^ 0x3FD

版本支持偏移算法

可见:

sub_4166D0(&vars38, vars120, 20, 3);
v33 = sub_108B270(_0, vars38);
*a7 = (unsigned __int8)vars144 ^ v33 ^ 0x935;

也就是:

version_delta = (seed & 0xFF) ^ dec34(key[20..22]) ^ 0x935

那么另外那些字段有什么用呢?后面可以看到一段校验:

if (*v114 != 999
 && vars142 <= 0x64
 && vars146 <= 0x64
 && *v115 != 0xFFFF
 && *a6 < 3653
 && *a7 < 3653)
{
// 错误处理
}

所以我们构造的时候要让:

  • 3..4 != 999
  • 5..6 <= 100
  • 7..8 <= 100
  • 序列号 != 0xFFFF
  • 到期偏移 < 3653
  • 版本支持偏移 < 3653

4. 程序版本校验

核对过前面的序列号后,因为我现在用的是Business,所以程序最后的校验就像这样:
8.png

  1. 要求产品ID是1,也就是Business
  2. 要求(unsigned __int8)sub_107FEC0((unsigned int)*v113, (unsigned int)*v114),看起来比较奇怪。前面已经写死了3..4是999,怎么这里还要做校验?其实大概率是为了给版本划区分,如图:
    9.png
    当产品ID是4的时候(不知道4是什么版本),要求3..4不能小于320,然后给了很大一坨候选,比较闲的人可以魔改keygen后自己试一试都有什么区别(
  3. 要求sub_1080250(*v113, *v115),这个函数比较小:

    bool __fastcall sub_1080250(int a1, int a2)
    {
    int v2; // ecx
    
    v2 = a1 - 1;
    if ( v2 && v2 != 3 )
    return a2 > 0 && a2 < 777;
    else
    return a2 > 0 && a2 < 65534;
    }

    也就是说如果产品ID是1或4,必须 1 <= 序列号 <= 65534,其他ID则必须 1 <= 序列号 < 777

  4. 要求sub_1080290(vars142) && sub_10802C0(vars146),这两个函数我就不贴了,其要求1 <= 5..6, 7..8 <= 15,所以这两个数字在1-15之间就可以。

后面还比对了一大堆Blacklist序列号,以及ROG水冷、ROG主板专用序列号的检测,包含CROSSHAIR / MAXIMUS / RAMPAGE / ZENITH的视为ROG主板,所以看到了吗,STRIX最终还是不配了

5. 实现一个Keygen

完整实现的Keygen已经上传至附件。经测试,在联网状态下使用Keygen生成的序列号不会触发盗版检测。

AIDA64_8.25.8200_Portable网盘链接: https://www.123865.com/s/EfqLVv-B9ZVh?pwd=52pj#
Keygen: aida64_8.25.8200_keygen.zip (3.49 KB, 下载次数: 1077)

尾声

感谢您能够阅读到这里。在AI时代,阅读并理解伪代码更多成为了一种兴趣,虽然各路Agent能够轻松秒杀这类较为简单的验证逻辑,但我仍希望Reverse初学者(包括作者自己)能够在静态分析中重拾代码分析的乐趣,也能使我们更好的理解Agent的工作原理、调试与优化,更得心应手地分析逆向工程难题。同时也希望各路大佬进行指点纠错!

免费评分

参与人数 48吾爱币 +44 热心值 +48 收起 理由
12328233 + 1 + 1 我很赞同!
zzy123123123 + 1 + 1 我很赞同!
xycsoft + 1 + 1 我很赞同!
andy_wang425 + 1 + 1 我很赞同!
wakawaka1024 + 1 + 1 谢谢@Thanks!
jjkl + 1 + 1 谢谢@Thanks!
MMiao79 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
xbcst + 1 + 1 我很赞同!
TobiasCN + 1 + 1 我很赞同!
muzi5pd + 1 谢谢@Thanks!
qyc0 + 1 + 1 谢谢@Thanks!
JonesDean + 1 + 1 谢谢@Thanks!
MGHT + 1 + 1 用心讨论,共获提升!
zongcheqi1 + 1 + 1 我很赞同!
hj_cdx + 1 + 1 谢谢@Thanks!
zshlbl + 1 我很赞同!
yyds6191 + 1 + 1 我很赞同!
eden_xudy + 1 + 1 谢谢@Thanks!
52pojieplayer + 1 谢谢@Thanks!
beatone + 1 用心讨论,共获提升!
uestcrd + 1 + 1 谢谢@Thanks!
3y3s + 1 + 1 谢谢@Thanks!
ECATYF + 1 + 1 我很赞同!
P2Baby + 1 + 1 谢谢@Thanks!
风清雲散 + 1 + 1 用心讨论,共获提升!
神奇的人鱼 + 1 + 1 我很赞同!
springlu + 1 我很赞同!
Weirdo + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Morty. + 1 + 1 谢谢@Thanks!
redyan9985 + 1 + 1 用心讨论,共获提升!
allspark + 1 + 1 我很赞同!
q25l + 1 + 1 谢谢@Thanks!
21725800 + 1 + 1 用心讨论,共获提升!
voodoosys + 1 + 1 谢谢@Thanks!
lsbdx + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Atnil + 1 + 1 谢谢@Thanks!
hongge + 1 + 1 我很赞同!
xingba2457 + 1 用心讨论,共获提升!
chengdragon + 1 + 1 感谢分享
jiba448 + 1 + 1 不是keygen.exe,而是keygen.py,不知道怎么用
dglaobing + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
雾落尘 + 1 + 1 我很赞同!
伤心的笔 + 1 + 1 厉害了!
芽衣 + 3 + 1 用心讨论,共获提升!
Yao2903 + 1 + 1 谢谢@Thanks!
go4399 + 1 + 1 我很赞同!
Y130346987 + 1 + 1 我很赞同!
doglove + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

秋海棠地图 发表于 2026-3-26 12:27
GUI版本来了
我用夸克网盘给你分享了「AIDA64_Keygen.rar」,点击链接或复制整段内容,打开「夸克APP」即可获取。
/~1b4e3XsM1T~:/
链接:https://pan.quark.cn/s/628660f55704?pwd=tCvN
提取码:tCvN

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ddv33 + 1 + 1 谢谢@Thanks!

查看全部评分

gxr2010 发表于 2026-3-17 10:51
本帖最后由 gxr2010 于 2026-3-17 11:08 编辑

之前的注册机都失效了,这个不错,已成功激活了AIDA64Extreme8.25 8200
本人激活码:FVRBD-UFYD6-3GDKV-F4YMY-JMJKV
go4399 发表于 2026-3-16 20:30
本帖最后由 go4399 于 2026-3-16 21:21 编辑

产品ID=2是Extreme版,只要求5..6 <= 100, 7..8 <= 100,9 - 12 在Extreme版中是授权数,不是序列号
产品ID=3是Engineer版,要求1<= 5..6, 7..8 <=15

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
610100 + 3 + 1 用心讨论,共获提升!

查看全部评分

ABTH85 发表于 2026-3-16 18:25
有用,谢谢分享
ph783 发表于 2026-3-16 19:15
我很赞同!!!
doglove 发表于 2026-3-16 20:08
好帖子,支持。
深海诱月 发表于 2026-3-16 20:22
看完了,不会用
Y130346987 发表于 2026-3-16 20:59
嘎嘎好使
cr7890 发表于 2026-3-16 21:19
感谢分享,实测之前的辣椒版还能用呀
weiweiguanggao 发表于 2026-3-16 21:40
反编译大学也学过一点,看了这个过程收益良多。
freecat 发表于 2026-3-16 22:59
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-5-5 17:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表