• 标 题:什么是狗驱动?
  • 作 者:yaoyuan[CCG]
  • 时 间:2005-01-10,00:31
  • 链 接:http://bbs.pediy.com

有感于坛子上诸多兄弟纷纷重写驱动成功,小第不才,想请教一下什么叫狗驱动? 
    R4狗的RYDLL32.DLL,微狗的WIN32DLL.DLL,S3狗的SENSE3.DLL是狗的驱动程序吗?
    非也非也,那不过是狗的用户接口而已,真正驱动这些狗的是Rockey9X.vxd、Rockey4.sys、Rockey4usb.sys、sense3.vxd、sense3.sys、host95.vxd、rcmhdog.sys、rcusbwdm.sys等等VXD或SYS文件。
    正是这几个文件完成对端口等资源的访问,完成狗与用户的数据交换。简单举个例子来说,比如我有一只R4的狗,因为特殊的原因(比如提供给人做破解被软件公司发现),然后这只狗的硬件流水号被封杀了,可加密程序跟本没有通过
RYDLL32.DLL来读狗(再假设这个软件有一个疯狂的外壳或者有频繁的升级),我们应怎么处理?
 
    答案就是真正地改写驱动!

    以下部分只会用OD的请略过,因为ring3的调试器是根本跟踪不到0级的!

    用Sost-ice通过跟踪狗的真正的驱动程序,通常是在deviceiocontrol后用f8细跟,我们会断在VXD或SYS文件中,查找真正读写狗的调用吧。R4狗的读写调用是一个多功能函数,一个函数完成所有功能,大大方便了我们的调试。
   跟踪到读狗的CALL(怎么跟踪到就是功力所在了,嘿嘿),我们可以在堆栈中发现R4的数据接口原来正裸露在我们的面前!

     Rockey(WORD function, WORD* handle, DWORD* lp1,  DWORD* lp2, WORD* p1, WORD* p2, WORD* p3, WORD* p4, BYTE* buffer)

    当查狗时,查找锁
    输入参数:
    function = 1
    *p1 = pass1
    *p2 = pass2
    *p3 = pass3
    *p4 = pass4
    返回:
    *lp1 为锁的硬件 ID
    返回为 0 表示成功, 其它为错误码
    我们在*p1、*p2可以看到读狗的一级口令,读完狗后*lp1会返回当前狗的硬件ID,也就是流水号了。
    开锁时是这样的:
    打开锁
    输入参数:
    function = 3
    *p1 = pass1
    *p2 = pass2
    *p3 = pass3
    *p4 = pass4
    *lp1 = 硬件 ID
    返回:
    *handle 为锁的句柄
    返回为 0 表示成功, 其它为错误码
    通过开锁操作,我们得到了锁的句柄,以后对锁的操作都将是对这个句柄的操作了。
    比如我们看看怎么读锁的吧:
    读锁
    输入参数:
    function = 5
    *handle = 锁的句柄
    *p1 = pos
    *p2 = length
    buffer = 缓冲区的指针
    返回:
    buffer 中添入读入的内容
    返回为 0 表示成功, 其它为错误码
    
   再看看R4引以为傲的种子码:
   种子码
    function = 8
    *handle = 锁的句柄
    *lp2 = 种子码
    返回:
    *p1 = 返回码1
    *p2 = 返回码2
    *p3 = 返回码3
    *p4 = 返回码4
    返回为 0 表示成功, 其它为错误码
    读锁前的*lp2中就是种子,读完锁*p1 *p2 *p3 *p4分别就是得到的四个种子码了!

    当一切数据尽览无余时,我们还需要什么?回到刚刚的问题,我们想要修改流水号去欺骗软件,那在查狗或开狗后将我们伪造的流水传递回去不就OK?不过新的问题好象出来了,如果查狗时改了流水,开狗时会找不到狗的,因为我们的狗本来就不是这个流水,那么在开狗前显然要把这个假流水改回来!这样就真正解决了我们刚刚的问题!
    写这个短文不过有感而发,其实上面的一切在用户程序中也是基本一样的,不过如果用户程序有很难处理的壳或者升级频繁时,我们才有必要改写驱动。
   当驱动在你手中控制自如,用户程序与狗的数据交换透明在你眼前时,狗不再那么可怕了。(修改驱动造成的蓝屏死机以及进一步的CPU烧毁等概与本文无关,请勿来信问为什么)

    顺便做个小广告(看雪别封我ID哈,呵呵):双星五年磨砺,综合目前所有加密狗优缺点,打造出基于单片机加密的第四代狗中最强悍一款USB加密狗,年后即将推出,欢迎搞开发有用狗需求的朋友与我们联系!