本帖最后由 xiaolei0517 于 2017-10-9 15:35 编辑
工作需要给别人安装石油大典,网上随便下载一个,看了下是内存注册机。最近闲着没事手痒,把软件放在OD上跑了几次,大概清楚了软件注册算法过程。分析如下:
字符串搜索,真有这样的字样,直接在入口处添加上断点。
运行后,在注册界面随便输入几个字符串。
一路F8过去在这发现明码字符串。综合网上内存注册机,可以断定上面的call里面就是算法部分。加上断点!
E8 E2FCFFFF 处F7步入后,往下走了几步,发现软件把两个字符串合并了。
继续向下,发现一个循环。几次跟踪发现这个循环完成就生成注册码。
算法写的很简单,见注释内容。
写成python代码如下
[Python] 纯文本查看 复制代码 seek1 = 0x06B0
USERNAME = input("product ID:\n")
USERID = input("User identification number:\n")
seek2 = USERNAME+USERID
value = ""
for i in range(0, len(seek2)):
F = seek1 >> 8
temp = (ord(seek2) ^ F)
value = value+hex(temp)[2:].zfill(2)
seek1 = int("0x"+hex((seek1+temp) * 0xCE6D + 0x58BF)[-4:], 16)
print("Registration code:\n" + value.upper())
input("\npress Enter key to end!")
算法过程确实很简单,想练手的可以试试。。
后记:用户标记码实际上是电脑c盘的卷标序列号,以下两张图可以做伪证。
国庆休假没碰电脑,就一直没上传,各位需要的软件介质与算号器下载地址: https://pan.baidu.com/s/1gfOqhKf 密码: 8cn5
注意算号器需要手动输入产品序列号与用户识别号来生成注册码(注意别随意打空格。。),python生成的算号器确实很大哈。。
|