[转贴]深思3乱弹(二)——数据 (1千字)
深思3乱弹(二)——数据在深思3乱弹(一)——口令中,我们已经谈了深思3的应用口令,可以并且只能在程序中得到。在这里,我们谈一下深思3的数据单元的问题。
深思3的标准版,提供了128个字节的数据区。除了极个别的软件狗,大多数软件狗都有数据区,如金天地的各种狗,都有100字节的数据区,有人可能会问,为什么是100字节,应该是64、128、256字节才对呀。存储器本身的容量,确实应该是64、128、256等,那么,金天地提供100字节的数据区,少了28个字节,这少的28个字节,被用来做系统数据区了,用来保存序列号、口令之类的东西了。那么深思3为什么没有占用数据区?深思3还有48字节的代码区,与64相比,少了16字节,这就是他存放口令等系统数据的所在了。
对于狗中的数据,在被加密程序中的使用,各种狗的情况基本上是相同的。一是,读出数据,简单的比较;二是,读出数据,不做比较,而是作为参数或地址,供程序下一步使用。如果被加密程序,处理狗内的数据是前一种情况,则在无狗的情况下,我们从程序中即可得到数据了。对于后一种情况,则必须在有狗的情况下,才可以得到数据,即无狗是无法破解的。
如果有狗,要复制的话,在知道了“应用口令”后,读出狗中的全部数据,不是很难的事了。
深思3的狗,读写数据的指令,和打开锁的指令是相同的,只是数据接口的具体参数不同而已。
深思3狗,打开锁的指令格式是:
PUSH 地址1
CALL 地址2
这里,地址1,是深思3数据接口的首地址(即程序设计中的数据接口的指针),地址2,是深思3狗驱动程序的调用地址。读写数据的指令与此完全相同,所以,找到了一处,就不难找到其他的了。
这里说明一下,深思3狗的数据接口(前文“深思3乱弹(一)——口令”中的叙述有误,以此为准)
2字节返回标志,2字节功能代码,6字节应用口令,2字节输出记数,8字节输出内容,2字节接受记数,8字节接受内容,2字节备用输入,64字节系统保留。
这样,4-9字节为应用口令,20-21为读狗数据的字数,22-29为读狗的数据。
--撰写:紫竹
