最近使用的一个软件过期了,需要注册,没事就研究了一下。打开软件界面是这样的
某车软件的注册

1.png


初次打开这里的当前密码是没有的,我这里是注册过的,然后还要选择一下区域,我选的是欧洲区
某车软件的注册

1-1.png


随便输入一个码,然后下个断点,找到调用函数sub_41D500
某车软件的注册

2.png


发现需要长度是46,后10位是时间,由年月日时分组成,然后前面年份添加20开头,后面秒用01
某车软件的注册

3.png

某车软件的注册

3-1.png


接着往下走可以看到46位密码由前32位 + 4位的订阅时间 + 10位的时间 组成
某车软件的注册

4.png


前面是对密码的组成部分判断,sub_420D80函数就是具体处理的。
某车软件的注册

5.png


进入函数先截取了软件版本部分
某车软件的注册

6.png


然后用软件标识和软件版本调用TisServiceRegistration函数得到一个32位的码,这个码需要和输入的一致
某车软件的注册

7.png


第一次调用TisServiceRegistration后还需要调用一次,一个参数是上面的32位码,一个参数其中一部分是sub_425100而来,用他返回的结果+4位的订阅时间 + 10位的时间
某车软件的注册

8.png


这个函数里面用到了DecryptByRotatShiftVariable函数
某车软件的注册

9.png


DecryptByRotatShiftVariable需要的参数是前面Lookup调用的结果,我们通过aSharedseuKbc9x找一下就发现了
某车软件的注册

10.png


这样欧洲区域注册码的基本流程就完了,其他区域类似,有兴趣的小伙伴可以试试。
TisServiceRegistration和DecryptByRotatShiftVariable函数可以直接通过他的函数地址直接调用就懒得扣出来了
写代码试一下,注册码更改成新的了
某车软件的注册

11.png

某车软件的注册

12.png

某车软件的注册

13.png

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!