codelive 发表于 2014-5-20 16:26

FileSplit 2.34获取正确的注册码

本帖最后由 codelive 于 2014-5-20 16:24 编辑





在群 BRET Team 有网友对FileSplit进行分析,自己也试了一下,还真分析出了正确的注册码,自己对算法不熟悉,只介绍从内存中取出正确的注册码.
软件下载 http://www.partridgesoft.com/filesplit/运行界面:注册界面:


先随便输入用户名:abc,序列号:12345678,一般获取Editbox输入都是GetDlgItemTextA/W,下断点发现是调用GetDlgItemTextA
通过调用GetDlgItemTextA分别获取输入的用户名和序列号

获取到输入的用户名和序列号,就调用一个函数进行验证(如果验证成功会保存到注册表)
F7进入后,又把用户名和序列号压栈,调用验证函数,先F8不进入,检测al是否为0如果是0则验证失败:
好了,这次F7进入FSplit.00411C70跟踪,这里判断输入的序列号是否为%d-%d-%d-%d格式,也就是用”-”去分隔,如果分隔的部分小于4则错误:
知道了序列号规则重新输入:1-2-3-4, 这次通过了,继续跟踪:

跟踪这到里有一个比较,先比较输入序列号的第1部分是否为0x270F(9999): 如果不同则失败,判断失败都是走到这里,通过异或把al为0:
所以通过上面的比较,我们知道了第1部分的序列号应该是9999, 重新输入: 9999-2-3-4这样第1部分的判断验证就通过了:


继续跟踪,开始比较第3部分,EAX的值为0x34F6,所以第3部分应该是0x34F6也就是13558:
好了,重新输入: 9999-2-13558-4开始比较序列号的第4部分,通过计算EDX是0x09,所以第4部分应该是9:

好了,重新输入: 9999-2-13558-9, 好了,注册成功了!

同样可以可以获得另一个注册码:codelive,   1313-2-28170-5

通过上面的跟踪得到正确的序列号,没有分析具体算法,本文完。

小彡哥 发表于 2014-5-20 16:33

支持个。不懂用

酒醒黄昏 发表于 2014-5-20 16:43

要学的还有很多啊现在还不知道F7怎么用的呢目前的水平 只能用 F9F8 和F4惭愧啊

宿命棋局 发表于 2014-5-20 16:59

不错,很详细,谢谢分享

manbajie 发表于 2014-5-20 17:23

学习了   很好 很详细

大全 发表于 2014-5-20 21:02

谢谢楼主详细的分析

cxj98 发表于 2014-5-20 21:07

跟算法接轨了。

ningzhonghui 发表于 2014-5-21 09:08

学习了,分析很到位

ningzhonghui 发表于 2014-5-21 09:13

学习了,分析很到位

shenzh19 发表于 2014-5-23 17:38

谢谢,学习了,谢谢分享
页: [1] 2
查看完整版本: FileSplit 2.34获取正确的注册码