某CATIA辅助软件的注册机开发

协议分析 · 17 天前 · 145 人浏览
某CATIA辅助软件的注册机开发

说明

0.png
测试可以直接改跳转能显示出来成功的操作。但由于是收费软件,不排除会有暗桩或者功能不全的情况。
所以本文的操作方式以追踪算法并编写注册机为主。

第一步:得到种子值

首先通过字符串,定位到“感谢注册”汇编处,此处便是相关的核心算法校验函数。
1.png
在函数开始之后,位置004153F6处,定义了一个常量,常量地址为:0x41A030,直接跳转过去。
22.png
前四个字节为:BD C3 0C 00,倒序排列为:00 0C C3 BD
那么十六进制转十得结果为:836541。此处需要记住。
4.png
已知得到了他的种子值为:11165081
我的软件中显示的机器码为:12001622,那么减去上面的常量:83654112001622-836541=11165081
此时,11165081,便是种子值。

算法

5.png
算法通过rtcSin确定,在求正弦值,他的公式为:
6.png
而C1与C2的值,则在地址:0x41A0340x41A044中。
7.png

0x41A034分析

二进制为:05 00 00 00 05 00 00 00 14 AE 47 E1 7A 14 F2 3F
分析为:
05 00 为 Double 双精度浮点数
00 00 05 00 00 00 为 填充废料
14 AE 47 E1 7A 14 F2 3F 为数据,倒序排列为:3F F2 14 7A E1 47 AE 14,将转换之后的数据进行IEEE 754 浮点数解码得到值为:1.13

0x41A044分析

8.png
二进制为:03 00 00 00 05 00 00 00 D1 B1 09 00
03 00 为 Long 长整数
00 00 00 00 00 00 为填充废料
D1 B1 09 00 为数据,倒序排列为:00 09 B1 D1,将00 09 B1 D1转换为十进制为635345

至此,C1、C2的变量值已全部得到。

计算方式为:rawCalc = 1110581 * (Math.Sin(1110581) + 1.13) - 635345
得到结果为:2237014.9486671104,转换为整数为:2237014
然后将2237014+836541=3073555‬,结果:3073555,便是最终的注册码。

为什么要添加836541呢?
9.png在开头时,他将用户输入的注册码相减了836541,并保存起来,为接下来的内部计算的hash做对比。
但算码的话,必然需要将他加过来,否则将无法匹配。

最后

在软件中,他还有一处的相同的注册方式,名称为:Reg.exe (普及版)
但他的C1与C2略有不同。
C1为:1.03
C2为:635125
算法,以及常量值,保持不变,即可出码。

本站不提供此类成品软件,分析仅供学习交流使用。

测试截图

2026-05-18_22-18-40.png