注册机完美破解新动力通用人事工资管理系统5.3
本帖最后由 cndml 于 2018-9-7 14:36 编辑求助区看到的,本以为很简单,没想到两天才基本搞定,开始感觉加密太复杂,似乎只能暴力破解。后来分析了一下算法,初步怀疑是rsa加密,软件虽然未加壳,加密有点特点,对新手有一定借鉴作用。
软件下载在这里:http://www.etosoft.com/down.htm
1、程序破解后运行如图:
软件注册后才有的导出,打印功能正常。
2、第一步寻找破解注册突破口。
先运行一下程序:
作者非常好心,在登录窗口有一句提示“注册后不显示密码,od加载程序,搜索字符串很容就找上述提示
在提示信息前面翻了翻,没有找到跳转可以跳过,注意看下面不远有个jnz,跳过的程序段是showwindows函数,很明显这个cmp地址是关键.
3、查找注册标志。
在关键地址上下硬件写入断点,重载运行,将内存地址强制改成2
运行起来,果然好像注册成功了。
注册标志找找对了,以为如此简单,那就大错特错,运行起来显示还是未注册。看来要跟踪注册流程。
4、查找注册关键call
想拦截注册事件,可是注册码窗口禁止输入,点击注册又需要输入注册码,知道肯定是程序运行改了窗口属性,搜索所有命令push 1;push 0xcf找到10几个全部下断点,重载运行。最终找到修改窗口属性的关键点,前后对程序进行跟踪分析一下算法,发现单位名称只能输入中文且必须大于4个汉字,授权码根据单位名称进行计算,规律是,以字节为单位取补码,然后乘以位数的平方,累加和转换成10进制,头部加上两个字符ac,输入正确的授权码后,注册码就可以输入了。
5、跟踪注册过程,发现会先检查软件安装目录下有无注册文件reg.hrc,对注册文件的检查,有两个关键call
第一个关键call对注册文件进行解码,就是简单的xor一下,然后在\init目下释放链接库read.dll,该文件只有两个函数一个注册HRKT,一个检查CHECKP
第二个关键call对注册码进行复杂计算,然而比较只用了一个strcmpA,算法再复杂也没啥用。
6、对两个关键call进行跟踪,找到两个关键点,注册不成功eax=1,都改成2就可以骗过。见下图:
7、以为到此破解成功,没想到运行起来,导出功能正常,打印功能直接没有。
研究半天也没找到问题在哪,跟踪了一下注册过程,发现对注册码长度有要求,位数不够生成的注册文件没有打印功能,20位的注册码才有打印功能,但是找不到哪里写的标志。有空再找!最终测试一切功能正常!另外,注册信息保存在access数据库里,没有也是不行的。
8、总结:软件注册加密详细分析:此软件注册验证过程全部放在一个临时释放dll中,其实就是软件目录下的mfcdb.dat文件,但是前200H个字符也就是文件头被简单异或加密了(xor H19),注册过程就是先计算出序列号,然后根据单位名称计算出授权码控制注册码输入,前面已经说过;注册码是对序列号进行加密,解密后与序列号进行串比较,相等则注册成功,软件目下写入一个reg.hrc文件,此文件有序列号以及解密过程中执行到不同步骤写入的标志,最后按字节异或文件长度,再异或 H19进行简单加密存盘。程序每次启动先检查是否存在reg.hrc文件,解密后读取hr.mdb中存储的单位名称以及注册码,并与reg.hrc保存的进行比对,然后解密注册码与序列号比较验证,成功则写入相应标志。至于注册机,经过对算法详细跟踪分析以及采用密钥替换测试,最终发现确实使用的是rsa加密,由于模数只有80位,大数分解基本上是秒破,唯一闹心的就是公钥E使用的是40位,而标准rsa加密使用的65537,只能自己改写程序计算私钥,rsa注册机网上不少模板,这里用vb改写的rsa注册机,测试成功,总算是完美破解!有图有真相!关于版本,标准版与网络版程序完全相同,只有一个字节的版本标志不同,0是标准版,1就是网络版。
9、补充:看跟帖及评分好多人要注册机,看来这个软件很受欢迎,作者已经升级到8.0版了,并且好像把注册功能都给阉割了,5.3版本的注册机还能用于注册,具体方法在回复贴里有说明。
总结了一下:
1.先下载Comctl32.ocx控件,再安装5.3
2.将你缺少的控件复制到注册机目录下,用注册机算出注册码。
3.安装8.0标准版,
00404F2E 89AE B0000000 mov dword ptr ds:,ebp
把这一句代码改成
incebp
mov dword ptr ds:,ebp
就变成网络版了!
把生成的【reg.hrc】文件复制到8.0版目录下。
4.用Access打开DATA文件夹中的hr.mbd文件,数据库密码:K9I8S7S6
5.hr.mdb数据库中【hrreg】相应字段【USERUNIT中输入授权码+单位名称,HRCODE输入注册码】,把setting表中的ac字段(单位名称生成的授权码)也复制到8.0的表中,其实就是把5.3数据库中存储的单位名称、授权码、注册码都原封不动的搬到8.0里来,也能注册成功! 最后的打印功能是最关键的,老师没有给出爆破方法啊 新人,虽然看不懂,但我知道楼一定很厉害 8.0按照方法可以注册成功 但是不能打印和导出了 楼主厉害,谢谢分享 有网友问关于新动力8.0能否注册,跟踪了一下,发现作者升级到8.0以后,直接把注册功能给阉割了,但是注册方式没变,用8.0的序列号在5.3版本正确注册后,把生成的reg.hrc文件复制到8.0版,然后把单位名称,注册码复制到8.0的hr.mdb数据库中hrreg表中相应字段,把setting表中的ac字段(单位名称生成的授权码)也复制到8.0的表中,其实就是把5.3数据库中存储的单位名称、授权码、注册码都原封不动的搬到8.0里来,也能注册成功! 没试过,先收藏了 软件在那下载?没有附件呀。。 没试过,先收藏了 学习了,谢谢分享经验 有软件吗? 谢谢分享 谢谢分享思路 ,学习 一下 楼主厉害,谢谢分享