某奥奇门遁甲追注册码第一处校验分析

查看 118|回复 10
作者:adld   
说明:本文无任何成品软件,仅供分析结果过程。
已知他的系列号为:889544539513
他的注册码为:15位,经过多次尝试,得到判断。
注册码:111112222233333,那么前五位,用于计算8895,中五位用于计算4453,后五位,用于计算9513,三次均匹配成功。才能进行完整的注册流程。
操作之前:
首先使用OD,搜索特征码:“三次“,将上面的JNZ改为JMP。因为进入到运算过程中,只有三次机会,将他给跳转过去。防止多次调试而造成的弹窗。


1.png (36.24 KB, 下载次数: 0)
下载附件
2025-2-12 12:01 上传

重新生成软件,便可以追码。
重新用OD打开软件,搜索字符:注册码.txt
如下图所示,咱们需要进入三个CALL,然后进行追出来他的计算过程。


2.png (37.56 KB, 下载次数: 0)
下载附件
2025-2-12 12:03 上传

[color=]第一次追码过程:
在下面输入15位的注册码,用于进行校验。比如我输入“123459876500000”


3.png (67.45 KB, 下载次数: 0)
下载附件
2025-2-12 13:08 上传

那么在第一次进行F7步入。
开始分析。


4.png (30.84 KB, 下载次数: 0)
下载附件
2025-2-12 12:08 上传

已知前五位为12345,那么十进制的12345的十六进制为:3039
接着往下步入。需要计算系列号的过程:
已知设备码为:889544539513,那么需要进行十六进制相乘汇总,得到的结果与上面的固定值进行相加。


6.png (29.62 KB, 下载次数: 0)
下载附件
2025-2-12 12:20 上传



7.png (37 KB, 下载次数: 0)
下载附件
2025-2-12 12:22 上传

以下均为十六进制
8*1 8
8*2 10
9*3 1B
5*4 14
4*5 14
4*6 18
5*7 23
3*8 18
9*9 51
5*A 32
1*B B
3*C 24=160 + 859(固定)= 09B9
得到结果:


8.png (47.29 KB, 下载次数: 0)
下载附件
2025-2-12 12:23 上传

移四位得到9B90,并进行异或得93C9。


9.png (46.13 KB, 下载次数: 0)
下载附件
2025-2-12 12:28 上传

93C9+固定值:79FC = 10DC5。
取低十六位,得到DC5。那么设备码:889544539513的运算结果为DC5。


10.png (40.46 KB, 下载次数: 0)
下载附件
2025-2-12 12:36 上传

已知CALL返回为:DC5,那么接着执行。
EAX:DC5
ESI:3039(结果为注册码前五位的十进制转十六进制)
首先进行异或操作得到结果为3DFC。
3DFC+固定值:859得:4655
然后接着往下走:
4655/3等于=1771。
1771减固定值859 = F18


11.png (45.46 KB, 下载次数: 0)
下载附件
2025-2-12 12:40 上传

十六进制F18转十进制为:3864


12.png (14.78 KB, 下载次数: 0)
下载附件
2025-2-12 12:41 上传

所以最终汇总结果为:3864
咱们来确定一下结果。
已知上面有三处校验判断,在跳转时会有判断结果。


13.png (48.76 KB, 下载次数: 0)
下载附件
2025-2-12 12:44 上传

那么第一次校验,就可以撸出来一个软了。进行爆破。
[Visual Basic .NET] 纯文本查看 复制代码Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim 设备码 As String = "889544539513"
        Dim 前4 As String = 设备码.Substring(0, 4)
        Dim 码1 As String = 校验(设备码, 前4)
        MsgBox(码1)
    End Sub
    Function 校验(ByVal 设备码 As String, ByVal 前四位 As String)
        For b = 1 To 99999
            Dim inputText1 As String = b.ToString("D5")
            Dim inputText As String = $"{inputText1}0000000000"
            If inputText.Length >= 12 Then
                Dim firstFiveDigits As String = inputText.Substring(0, 5)
                Dim decimalValue As Integer = Integer.Parse(firstFiveDigits)
                Dim hexValue As String = decimalValue.ToString("X")
                Dim 字符的值 As String = hexValue
                Dim 字符的值_hex As Integer = Convert.ToInt32(字符的值, 16)
                Dim deviceCode As String = 设备码
                Dim totalSum As Integer = 0
                For i As Integer = 0 To deviceCode.Length - 1
                    Dim currentChar As Char = deviceCode(i)
                    Dim hexValue1 As Integer = Convert.ToInt32(currentChar.ToString(), 16)
                    Dim multipliedValue As Integer = hexValue1 * (i + 1)
                    totalSum += multipliedValue
                Next
                Dim additionalValue As Integer = Convert.ToInt32("859", 16)
                totalSum += additionalValue
                totalSum
软件逻辑:从1开始运行99999,五位,一直执行到结果为我的系列号前四位:8895,并输出我运行的五位过程。
软件得到结果:


15.png (13.71 KB, 下载次数: 0)
下载附件
2025-2-12 12:51 上传

那么我的前五位为29994。拼接15位得:299940000000000
输入注册码进行校验。


16.png (44 KB, 下载次数: 0)
下载附件
2025-2-12 12:52 上传

那么第一次校验的过程就这样得到了。
[color=]后续校验:
接下来的两处校验,基本以这样的方式,都是可以追到的。
第二次校验,他的固定值为:0A3E
算法与上面,大同小异。追一下就能追出来了。
第三次校验,他的固定值为:02DD
第三次,正常追出来结果之后,最后需要注意一下,如DA98,那么需要循环四次。
需要循环四次。如D、A、9、8。
那么每一个需要
D + 2A - 30 得结果,然后进行相乘3E8=得结果记录。
A + 2A - 30 得结果,然后进行相乘64=得结果汇总。
9 + 2A - 30 得结果,然后进行相乘A=得结果汇总。
8 + 2A - 30 得结果,然后进行相乘1=得结果汇总。
最终的值才是结果。
收工结束,写不动了,有想研究的可以继续来研究研究。
他的每一个软件计算方式都不太相同,所以,此文还是以学习为主。

下载次数, 下载附件

20106   



QQ截图20250216174037.png (45.79 KB, 下载次数: 0)
下载附件
2025-2-16 17:41 上传

今天周末,无事,找了这个软件来玩玩,这个软件的算法,一个机器码对应多个注册码。还是有点费神的。

注册机,源码.zip
(339.25 KB, 下载次数: 45)
2025-2-16 17:41 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB

scncrenyong   

我最近就在跑这个,暴力行不通,年份限制了!正好可以好好学习学习!
adermoi77   


adermoi77 发表于 2025-2-12 16:39
我最近就在跑这个,暴力行不通,年份限制了!正好可以好好学习学习!

知道算法,在软件内跑个几万次,毫秒级出码的
adld
OP
  


adld 发表于 2025-2-12 16:41
知道算法,在软件内跑个几万次,毫秒级出码的

我现在玩的那个是最新版7.6.03,加密方式和这个好像还不一样,我在摸索摸索
adermoi77   


adermoi77 发表于 2025-2-12 17:05
我现在玩的那个是最新版7.6.03,加密方式和这个好像还不一样,我在摸索摸索

奇门  最新也不是7.6啊,你这是八字的吧
cndd   


adermoi77 发表于 2025-2-12 17:05
我现在玩的那个是最新版7.6.03,加密方式和这个好像还不一样,我在摸索摸索

应该都通用的
adermoi77   


adermoi77 发表于 2025-2-12 17:16
应该都通用的

你是说算法?现在是加密都是坑爹的,都不同。
cndd   


adermoi77 发表于 2025-2-12 17:05
我现在玩的那个是最新版7.6.03,加密方式和这个好像还不一样,我在摸索摸索

八字的吧,刚去看了下,和我帖子内的算法基本一致。唯一变化的就是固定值859还有79FC了。
adld
OP
  

感谢楼主分享,
您需要登录后才可以回帖 登录 | 立即注册

返回顶部