首页
社区
课程
招聘
[旧帖] [原创]实现按键盒子 大放血求注册码 0.00雪花
发表于: 2012-7-5 09:30 1882

[旧帖] [原创]实现按键盒子 大放血求注册码 0.00雪花

2012-7-5 09:30
1882
说道按键盒子,就要从外挂说起了
    如今外挂分为4大类 1.系统模拟挂 2.内存挂 3.分包挂 4.硬件挂
    1 系统模拟挂 对于消息函数的利用,基本都在SSDT SHADOW里,游戏保护也基本钩了消息类函数
    2 内存挂 无非就是找CALL,并内联汇编调用之,注重点就是过保护,找CALL,与对战平衡了
    3 分包挂 解析分包函数,有的游戏是明文的,这样的话直接用参照发就可断定数据结构
  上面所说 三类都是在系统之上实现的,前提都少不了要过游戏的保护,虽然现在出来各种HOOK框架基本实现通杀所有游戏,如kifastcallentry通杀ssdt与shadow,绕过法通杀所有没有自校验的hook 与inline ,OB等,但是通用性还是不好保证,因此有了硬件挂的出世
    4 硬件挂 其实也是一种模拟挂了,主要负责模拟鼠标键盘的操作,当然要做更加智能的还是需要自写驱动与下位机通信,不过也可以以硬件代替,与智能小车的识别算法比起来就太过复杂了,这里不多加讨论

好了,下面说道重点 ,按键盒子的原理,利用与USB通信芯片,按照USB协议与操作系统本身的人体学输入设备驱动进行通信,从而从硬件上控制操作系统鼠标与键盘,这种意义上的硬件挂是绝对无法查出的
    本人本身准备的硬件设备有1 89C52   2 最小系统  3  PDIUSBD12芯片 4 USB口,串口
难点在于以下几个地方
    1 当操作系统受到USB口的D+ D-电平信号时会像0地址发送复位信号,这里需要初始化本身设备。
    2 之后就需要根据操作系统返回的各种信息发送回各种描述符,5大类描述符,若干小描述符,还有HID描述符,这一步之后就告诉系统本设备需要加载什么驱动
    3 之后就可以根据报告描述符与操作系统本身驱动进行交互,来控制鼠标,键盘的操作
部分源码如下
  
#pragma OPTIMIZE(9,speed)
void CMD(uint8 ControlCode,uint8 movesize)
{                 uint8  sendBuf[4]={0,0,0,0}         ;
                switch(ControlCode)
                {
                  case left:{sendBuf[1]=-movesize;break;}
                  case right:{sendBuf[1]=movesize;break;}
                  case up:{sendBuf[2]=-movesize;break;}
                  case down:{sendBuf[2]=movesize;break;}
                  case leftclick:{sendBuf[0]=0x01;break;}
                  case rightclick:{sendBuf[0]=0x02;break;}
                }
            D12WriteEndpointBuffer(3,4,sendBuf);
         Ep1InIsBusy=1;  
                  KeyUp=0;
        KeyDown=0;       
           //#pragma asm
            //fast funciotn call
           //#pragma endasm
}

#pragma  OPTIMIZE(0,size)
注意点:为什么按键官方说按键挂不会被封,从严格意义上来讲,不实现图色功能的话只用到了操作系统本身的驱动,也就是微软的官方驱动,这样的话,本设备只算是一个鼠标或者键盘,也就有了那句话,除非游戏封鼠标,否则检测不出,当然要使用了更加智能的功能,就必须借助驱动或者应用层软件,这样还是给游戏厂商提供了检测的机会

至于按键盒子扩展的地方,就是它本身实现了一套驱动,进行了快速图像识别,进而向下位机发送坐标偏移,这样更加智能化的实现了硬件挂,,至于本身的写入程序也不需要我的从串口写入,应该是他们本身带了一个存储设备,里面存放了按键脚本,之后插入电脑之后自动解释执行,也就省去了擦写芯片的麻烦,因为大家都知道,一个单片机擦写寿命大概是上千次,而按键官方则声明没有限制。

说了那么多,下面提供代码吧,开发环境是 keil 4 .另外以前一直手懒没有注册论坛,最近才发现不能回帖,希望论坛管理人员可以给个注册码

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就封你的驱动,你要是一点自己的驱动程序都不用,那么只能当个鼠标,没法扩展功能
2012-10-15 10:53
0
游客
登录 | 注册 方可回帖
返回
//