我先做了几次试验,先将自己测试的一个ACD程序文件进行源保护配置,如下图
然后提示
生成个sk.dat文件,这个文件是用来存储密码的,我做了多次试验,ACD程序块设置的密码都存在这个文件里,而且可以用记事本查看sk.dat这个文件,里面肯定有一组密码和刚才设置的密码一样。程序块密码设置好后,如果这个文件丢失,或者这个文件里面没有了原来的密码,这程序块显示灰色无法打开。
经以上实验分析:rs5000软件打开项目时先检查密码保护文件sk.dat,然后结合已打开的ACD程序项目进行校验,如果sk.dat里面有已打开项目的密码,则显示加密程序块,如果没有,则加密块变灰色无法查看。
这个实验说明密码关键sk.dat文件里,咱们如果没有sk.dat文件或者不知道密码怎样解密呢?
我自己设想了几个方法:
1、既然密码也存在ACD项目里,咱用文件比较器查看一个项目加密前后的区别,看是否能找出规律,实验证明,RS5000的项目文件是不行的,以前早期产品可以用此方法,现在早已被和谐。
2、修改rs5000软件,用反汇编加动态跟踪找出rs5000软件在运行项目以后如何比较密码,然后进行显示或者不显示加密块,咱来个强制JMP到显示程序块,这不就OK了吗,咱汇编功底不行,用OD加载rs5000,设置断点,跟踪半天也找不到关键汇编指令位置,干脆放弃,这方法还是留给大牛吧。
3、自己做个sk.dat的字典用文件,用黑客字典生成器生成一个,然后看看能不能暴力破解出来。实验证明我成功了!
下面就介绍一下成功的方法:
sk.dat 文件可以更改,但是必须关闭rs5000
还是用自己做测试的ACD程序,第一步,配置文件源保护,设置好sk.dat的路径,我给它设为C:sk.dat 然后对程序段进行加密,密码自己设定为12345 然后关闭rs5000 ,
第二步,用记事本打开sk.dat文件,将12345删除,重新打开测试的ACD程序,此时程序块也显示灰色,关闭rs5000。
第三步,用黑客字典生成个sk.dat文件,选择数字纯数字模式,位数选择1-5位,然后点击生成字典,提示密码总数111110个,大小747K,然后把这个文件替换原来的sk.dat。
第四步,重新打开测试的ACD程序,经过几秒钟,项目顺利打开,加密的程序块已经可以看到。
到此破解实验成果。
然后我用此办法解密单位的斗轮机ACD程序,先生成纯数字的1-6位字典sk.dat,运行项目没有成果,显示
我又生成纯小写字母的1-4位字典文件sk.dat,运行项目,此时加载时间稍长,请耐心等待,等加载成功后显示
证明密码已经破解,再查看文件源保护配置
看到密码原来是ab
兴奋中.......
愿此方法能够帮助朋友们解决项目加密问题。