• 标 题:如何破解金蝶财务软件行政事业版V6.2!发表在我论坛的文章!讲的是彩虹圣天诺的狗的破解方法思路不错! (2千字)
  • 作 者:大老
  • 时 间:2002-7-5 10:00:56
  • 链 接:http://bbs.pediy.com

软件名:金蝶财务软件行政事业版V6.2
作者:qdbenben
转载:大老
原贴:http://dalao2002.yeah.net
欢迎转载!但要保留完整谢谢!
加密狗类型:彩虹圣天诺狗
加密方法:API方式。
解密方法:带狗解狗。
使用工具:TRW2000,W32DASM,Delphi5.0
相当长一段时间之前做过金蝶标准版7.0的解密,当时因为时间紧,只好对软件进行暴力破解,由于暴破时对软件主文件进行了多处更改,破解后又没有时间去进行验证,不知道对软件功能有没有损害。此次破解行政事业版,时间上没有要求,所以笨笨便回避了上次的作法,转而从狗和软件之间去寻找突破口。于是便有了以下的破解思路及过程。
破解基本思路:
采用API方式加密的圣天诺狗需要使用一个名为sx32w.dll的动态链接库,金蝶软件也不例外,只是行政事业版的开发者将其改名为kdsx32w.dll,文件存放于\Windows\system目录下。
Sx32w.dll中包含了软件读取圣天诺狗所使用的所有过程和函数,所以可以这样讲,sx32w.dll是软件与狗之间的一座桥,软件就是通过这座桥与狗进行的数据交换。
笨笨这次就是要从这座桥上做做文章,所以本次破解的目标也就是——kdsx32w.dll。
破解过程:
1、使用TRW2000载入软件的主文件kdwin.exe.
下断点bpx deviceiocontrol,很快就会发现已经进入kdsx32w.dll的空间,并且,软件在kdwin.exe和kdsx32w.dll之间有一个多次的反复判断、执行过程。最后,软件启动登录界面或出现错误提示信息。
2、用W32DASM反汇编kdsx32w.dll,查看其内部的过程并区分各过程。
3、再次用TRW载入kdwin.exe,跟踪至kdsx32w.dll入仔细查看,发现kdsx32w.dll中过程的调用次序如下:
a) RNBOsproFORMatPacket 出错时-->Error
b) RNBOsproInitialize   出错时-->Error
c) RNBOsproGetVersion   出错时-->提示:驱动版本低-->Error
e) RNBOsproFindFirstUnit出错时-->Error
f) RNBOsproRead
出错后转向:RNBOsproFindNextUnit -->Error
正确时:反复执行多次RNBOsproRead,然后转向g)
g) RNBOsproQuery
出错后转向:RNBOsproFindNextUnit -->Error
正确时:
Pass!!
分析以上流程发现,软件开发者将密码的查询串写入了狗中,先通过f)处Read过程依字节读出,然后再将读出的字节合并后进入g)处Query过程进行变换,再取出变换值与密码的验证串进行比较,一致后便通过。
4)仔细阅读kdsx32w.dll中的函数汇编代码,明确其使用的参量及返回值后,用delphi重新构造了一个kdsx32w.dll,调试通过后用其替换原来的kdsx32w.dll。运行软件,通过。