首页
社区
课程
招聘
[原创]外挂虚拟鼠标键盘驱动二合一
发表于: 2009-2-10 08:54 68846

[原创]外挂虚拟鼠标键盘驱动二合一

2009-2-10 08:54
68846

网络游戏出于对控制输入速度的和反外挂的目的,对于鼠标键盘的输入越过了消息传递等正常的途径层
次,所以一般的常用如下控制鼠标键盘的API函数
::SetCursorPos(pEvent->xPos, pEvent->yPos);
::SendInput(1, &Input, sizeof(INPUT));
::PostMessage(hwnd,WM_KEYDOWN, VK_ESC ,0L); //发送ESC按下的键盘消息

是无法实现目的的,解决问题的方法只有越过应用层面,从系统驱动层解决问题,目前的方法主要有
1.分别写个鼠标和键盘驱动设备,但在在系统设备管理器中出现一个鼠标和一个键盘设备
2.用winio软件包直接控制鼠标键盘硬件端口,这种方法要求本身的硬件鼠标不可以动,否则就鼠标满天
飞,只有重启电脑了
结合外挂的特点和以上方法优缺点,本人在底层修改window底层驱动,鼠标键盘驱动合二为一可以同时
控制鼠标键盘,可以打开和关闭屏蔽物理鼠标,可以过滤键盘信息,并且在系统设备管理器中也看不到
设备显示,即隐蔽又高效,有需要的朋友可以联系, qq76838567 (验证信息请注明”鼠标“)

该驱动为自己开发外挂而制作,当时也考虑购买但是没有人卖,无法买到,所以今天提供给大家,
该驱动完全为外挂的高要求而制作测试使用验证成熟,可以玩转鼠标键盘摆脱API函数的限制,做出
各种复杂的鼠标键盘动作,明白人一看下面的鼠标键盘控制数据结构就明白了。。总之windows
APi可以干的事情,它都可以干,它可以做的动作windows APi就不行了

我提供的鼠标键盘驱动最大的特点就是:

1.虚拟鼠标和虚拟键盘一个驱动里完成
2.在设备管理器里隐藏掉所虚拟的鼠标键盘设备
3.通过了NP和Xtrap测试


注意:本驱动只针对有实力的游戏外挂玩家,2000元一套,请其他无聊的、没有能力购买的、不懂的朋友不要联系了

最近很多找我购买的朋友老是和我说看雪论坛里有鼠标键盘驱动下载



对次我做如下说明:

1,这个所谓的驱动最早是在http://download.csdn.net/down/719428/ylwnet 贴出的,
看雪只是转帖。这个我也下载过,没有源码,我跟踪了他的api,他的鼠标控制结构不是标准的MOUSE_INPUT_DATA 数据结构,那么你以后的鼠标动作就受限制了,并且因为驱动的特点,一旦给了你演示测试程序,就等于给你了驱动,所以作者给的鼠标驱动测试程序,只有鼠标的点击动作,没有移动的动作,否则我跟踪了后就可以直接用了,他的利益就无法保障了,后来我找到这个人,他也是卖的
2,这个驱动不符合我的外挂的要求,所以我就自己写了一个,其实我是做外挂赚钱的,我天生就不是个勤快人,要是有的免费的午餐,我不吃我就是傻子,试想想如果这个驱动是好用、有源码、不要钱,那么那些和我说这个驱动的朋友们还会和我说这个东西吗,他们就会下载了自己用去了,那里会来和我浪费口水,其实大家都知道说这个是为了压价。
3,有些朋友反复和我强调,他自己完全有能力写这个驱动,都很傲慢的和我两句话就886,然后再换一个qq和我反复压价,理论上说一个人完全有能力可以自己种地、自己织布、自己盖房子住、自己打棺材(好像无法把自己埋了,哈哈)等等,但是没有必要也没有人这样什么都自己做的,现在是协作的社会,现在没有那个产品完全是自己的原创,都或多或少的使用了其他人的东西,我敢打赌如果那一天买不到windows盗版了,这些朋友会威胁microsoft“我完全有能力、有决心、有希望自己写个windows,你想好了,给个价把。。。。”,当然我毫不怀疑这些朋友可以自己写出这个驱动,我用我的一点愚钝的能力赚点小钱,而这些朋友是用他们无伦的聪明才智做成了威胁和尔虞我诈的武器使用,不知道是我还是这些朋友把脑子用歪了?我很郁闷、很彷徨
4,最近被各种砍价的,所谓讨教的朋友搞的头晕,我不是个做生意的材料,也不是个什么教师,所以没有诚信购买的朋友就不要找我了,拜托了

控制接口如下:

typedef struct MOUSE_INPUT_DATA {
USHORT UnitId;
USHORT Flags;
union {
ULONG Buttons;
struct {
USHORT ButtonFlags;
USHORT ButtonData;
};
};
ULONG RawButtons;
LONG LastX;
LONG LastY;
ULONG ExtraInformation;
} MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;

typedef struct _KEYBOARD_INPUT_DATA {
USHORT UnitId;
USHORT MakeCode;
USHORT Flags;
USHORT Reserved;
ULONG ExtraInformation;
} KEYBOARD_INPUT_DATA, *PKEYBOARD_INPUT_DATA;

long Move_Ext(long x, long y)
{
MOUSE_INPUT_DATA INPUT_DATA ;
UCHAR OutputBuffer[10];
DWORD dwOutput;
BOOL bRet;

if (hDevice == INVALID_HANDLE_VALUE) return 0;

memset(&INPUT_DATA,0,sizeof(MOUSE_INPUT_DATA));

INPUT_DATA.Flags=MOUSE_MOVE_RELATIVE;

INPUT_DATA.LastX=x;

INPUT_DATA.LastY=y;

bRet = DeviceIoControl(hDevice, IOCTL_Mouse, (char*)&INPUT_DATA, sizeof(MOUSE_INPUT_DATA), &OutputBuffer, 10, &dwOutput, NULL);

return bRet;

}
long Click_EXT(char Action)
{
MOUSE_INPUT_DATA INPUT_DATA ;
UCHAR OutputBuffer[10];
DWORD dwOutput;
BOOL bRet;

if (hDevice == INVALID_HANDLE_VALUE) return 0;

memset(&INPUT_DATA,0,sizeof(MOUSE_INPUT_DATA));

INPUT_DATA.Flags=MOUSE_MOVE_RELATIVE;

INPUT_DATA.ButtonFlags=Action;
bRet = DeviceIoControl(hDevice, IOCTL_Mouse, (char*)&INPUT_DATA, sizeof(MOUSE_INPUT_DATA), &OutputBuffer, 10, &dwOutput, NULL);

return bRet;
}

long KeyBoard(long MakeCode, long Flags)
{
KEYBOARD_INPUT_DATA INPUT_DATA ;
UCHAR OutputBuffer[10];
DWORD dwOutput;
BOOL bRet;

if (hDevice == INVALID_HANDLE_VALUE) return 0;

memset(&INPUT_DATA,0,sizeof(KEYBOARD_INPUT_DATA));

INPUT_DATA.Flags=Flags;

INPUT_DATA.MakeCode=MakeCode;

bRet = DeviceIoControl(hDevice, IOCTL_KeyBoard, (char*)&INPUT_DATA, sizeof(KEYBOARD_INPUT_DATA), &OutputBuffer, 10, &dwOutput, NULL);

return bRet;

}
// 扫描码
#define VKK_ESC 0x011b //ESC
#define VKK_F1 0x3b00 //F1
#define VKK_F2 0x3c00 //F2
#define VKK_F3 0x3d00 //F3
#define VKK_F4 0x3e00 //F4
#define VKK_F5 0x3f00 //F5
#define VKK_F6 0x4000 //F6
#define VKK_F7 0x4100 //F7
#define VKK_F8 0x4200 //F8
#define VKK_F9 0x4300 //F9
#define VKK_F10 0x4400 //F10
#define VKK_~ 0x2960 //~
#define VKK_1 0x0231 //1
#define VKK_2 0x0332 //2
#define VKK_3 0x0433 //3
#define VKK_4 0x0534 //4
#define VKK_5 0x0635 //5
#define VKK_6 0x0736 //6
#define VKK_7 0x0837 //7
#define VKK_8 0x0938 //8
#define VKK_9 0x0a39 //9
#define VKK_0 0x0b30 //0
#define VKK_- 0x0c2d //-
#define VKK_= 0x0d3d //=
#define VKK_\ 0x2b5c //\
#define VKK_BackSpace 0x0e08 //退格键
#define VKK_Tab 0x0f09 //Tab
#define VKK_q 0x1071 //q
#define VKK_w 0x1177 //w
#define VKK_e 0x1265 //e
#define VKK_r 0x1372 //r
#define VKK_t 0x1474 //t
#define VKK_y 0x1579 //y
#define VKK_u 0x1675 //u
#define VKK_i 0x1769 //i
#define VKK_o 0x186f //o
#define VKK_p 0x1970 //p
#define VKK_[ 0x1a5b //[
#define VKK_] 0x1b5d //]
#define VKK_a 0x1e61 //a
#define VKK_s 0x1f73 //s
#define VKK_d 0x2064 //d
#define VKK_f 0x2166 //f
#define VKK_g 0x2267 //g
#define VKK_h 0x2368 //h
#define VKK_j 0x246a //j
#define VKK_k 0x256b //k
#define VKK_l 0x266c //l
#define VKK_; 0x273b //;
#define VKK_' 0x2827 //'
#define VKK_Enter 0x1c0d //回车
#define VKK_z 0x2c7a //z
#define VKK_x 0x2d78 //x
#define VKK_c 0x2e63 //c
#define VKK_v 0x2f76 //v
#define VKK_b 0x3062 //b
#define VKK_n 0x316e //n
#define VKK_m 0x326d //m
#define VKK_ 0x332c //
#define VKK_. 0x342e //.
#define VKK_/ 0x352f ///
#define VKK_空格键 0x3920 //空格键
#define VKK_Insert 0x5200 //Insert
#define VKK_Home 0x4700 //Home
#define VKK_Page UP 0x4900 //Page UP
#define VKK_Delete 0x5300 //Delete
#define VKK_End 0x4f00 //End
#define VKK_PageDown 0x5100 //PageDown
#define VKK_上箭头 0x4800 //上箭头
#define VKK_左箭头 0x4b00 //左箭头
#define VKK_下箭头 0x5000 //下箭头
#define VKK_右箭头 0x4d00 //右箭头
#define VKK_/ 0x352f ///
#define VKK_* 0x372a //*
#define VKK_- (注意 0x4a2d //- (注意
#define VKK_7 0x4737 //7
#define VKK_8 0x4838 //8
#define VKK_9 0x4939 //9
#define VKK_4 0x4b34 //4
#define VKK_5 0x4c35 //5
#define VKK_6 0x4d36 //6
#define VKK_+ 0x4e2b //+
#define VKK_1 0x4f31 //1
#define VKK_2 0x5032 //2
#define VKK_3 0x5133 //3
#define VKK_0 0x5230 //0
#define VKK_Del 0x532e //Del


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

收藏
免费 7
支持
分享
最新回复 (50)
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
2
垃圾的东西,居然在“看雪”叫卖,不怕笑掉别人大牙。模拟鼠标键盘,一搜索一堆堆的,要多少有多少。 我敢肯定你这东西连xTrap都过不了。
2009-2-10 09:17
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
牛x,真想提供的话就直接传出来.谢谢合作
2009-2-10 09:32
0
雪    币: 224
活跃值: (15)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
写个这东西, 就当宝了, 呵呵, 看雪是崇尚开源的.不是旧货交易所.
2009-2-10 12:27
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
5
搞了半天原来是出来卖的,真垃圾~

模拟键盘鼠标,插queue什么的,太容易了
2009-2-10 12:30
0
雪    币: 371
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hyp
6
不知道我买了以后你要给我多少钱
2009-2-10 14:45
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
7
这玩意能只对指定进程发送鼠标键盘消息吗?我看你的接口好像是全局的吧。
2009-2-10 18:26
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我敢打赌你上网一搜,搜出来的全是那些最肤浅的mouse_event/sendinput/send or postmessage之类的~垃圾的前台鼠标简单模拟  -_-"

可惜lz的DD不是开源的  lol
2009-2-10 19:14
0
雪    币: 178
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
MJ不都说了,插queue什么的~~
2009-2-10 20:41
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
10
难度用上驱动就不肤浅?你GOOGLEBAIDU “模拟键盘鼠标 驱动” 看看高深到哪里。直接端口只需用10行左右汇编代码。
2009-2-10 21:02
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
11
USB和标准的操作不同,10行不行,要怎么也要写100行
2009-2-11 09:42
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
12
拿源码卖不仗义,这里又提供成品下载:
http://bbs.pediy.com/showthread.php?t=74327
2009-2-12 10:56
0
雪    币: 221
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
大家的批评很多,都是很好的意见,表示感谢,但是有些问题部分同志不了解,我还是要介绍一下。
1,首先这是个虚拟的鼠标驱动,就是在驱动层次给计算机一个设备,这个设备是虚拟的的也就是不是实际的物理鼠标键盘,如果有人说这是脱裤子放屁来怀疑和否定它的用途,那就是这位同志没有搞清虚拟鼠标的用途了,可以给电脑插个鼠标,这个鼠标肯定很好用,但是你就只有用手去控制这个鼠标键盘,虚拟鼠标键盘不是给手用的,他是给应用程序使用的,我们可以通过软件控制鼠标键盘,实现无人工的自动操作,这就是我们要虚拟鼠标键盘的用途和目的
2,有朋友批评“模拟鼠标键盘,一搜索一堆堆的,要多少有多少。”,是想我也不是傻子,我可以在网上简单百度到,我犯病了我去自己写一个,大家都听说过“按键精灵”,你用这个按键精灵软件去在网络游戏里去试试它对鼠标的控制,你就会发现它根本会令你失望,还有类似的autohotkey,vmouse等软件和工具,原因就是因为这些软件都是使用应用层的方法发消息和Api函数来做的,而游戏对鼠标键盘的控制输入都越过了这些传递层次,这是为了提高输入的速度,比如卡丁车,那里有需求那里才有用途,拿简单环境的使用用途,来否定虚拟鼠标键盘的用途存在的必要性,显然是荒唐的
3.有朋友说“你GOOGLEBAIDU “模拟键盘鼠标 驱动” 看看高深到哪里。直接端口只需用10行左右汇编代码”,可以肯定这位朋友自己都没有用过这种他自己说的方法,因为很显然他根本不知道也没有看到过这种方法的明显原理上的缺点,和实际使用上的麻烦,大家都知道直接去写端口,写入肯定是字节为单位的,比如你要移动鼠标要连续写入端口很多字节,若这时物理鼠标也在写这个端口,那就可以想象到后果是什么,那就是鼠标满天飞了,不要给我讲互斥的编程方法多么简单,你用汇编去和window内核好好去谈去,不要和我废话
4,虚拟鼠标键盘可以玩出很多特技,是应用层无法做到的,比如键盘而言,用应用API你无法做到
ctrl+alt+M+X这样的按键组合操作,而用驱动你可以完全摆脱Api的束缚,你可以为所欲为,然后哈哈哈的淫声大笑了。。。。。。
2009-2-19 15:31
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
14
先拿你的成品到有XTRAP保护的游戏试试,成功之后再来吹。
2009-2-19 16:45
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
15
过了NP和Xtrap再来卖吧。
2009-2-19 17:47
0
雪    币: 332
活跃值: (30)
能力值: ( LV12,RANK:460 )
在线值:
发帖
回帖
粉丝
16
全局模拟鼠标键盘,没有多大实际用处,还是做后台的比较使用
2009-2-19 18:39
0
雪    币: 135
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
走错地方了吧.这里是大家学习交流的地方.不是你做生意的地方.
2009-2-20 18:26
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
貌似这是『Win32/Win64编程』板块,莫非,楼主拉屎在饭厅,吃饭在茅坑?
2009-2-20 21:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
这里是"看雪",什么是"看雪",就是"看帖"的谐音,楼主还是多点"看雪"吧。
2009-2-21 00:47
0
雪    币: 221
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我伟大的天朝中华民族有着璀璨的文明,同时也有和这个文明相提并论的同样恶心的民族劣根性,看到不可以无偿得到占有的东西,就拼命的去诋毁它,侮辱它,NP和Xtrap当然过了,有这种劣根心里的都不要回复了,要知道你在发帖子的时候也同样浪费你的电费、网费和你的口水,也是在损失你的钱呀,骂我对这样的人而言就是在干损人不利己的事情,你们既然骂我为何不自己做个驱动,免费发给大家共享,这样就是完全和我这种坏人小人泾渭分明了,如果你不知道这样做是有利有大家的,那就是傻子,如果你知道有利于大家而不去做,你就是个彻头彻尾的比我还要小的小人,别和我打口水了,你就写个驱动发在这个人贴里,就是对大家最大的好,对我最大的打击和惩罚,我这里先代大家谢过了,期待你的大作。。。。。哈哈
2009-2-21 15:13
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
...... OOXX
2009-2-21 20:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
也不至于对楼主这么诋毁吧!看雪确实有很多N人,有些人觉得自己很N,有些人确实很N,俺是菜鸟,看帖的。
不过楼主还是最好把贴转到别的板块好点,呵呵。。
2009-2-21 23:10
0
雪    币: 357
活跃值: (3443)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
23
/*****************************************************************
文件名        : WssLockKey.c
描述          : 键盘过滤驱动
作者          : sinister
最后修改日期  : 2007-02-26
http://www.whitecell.org/code.php
*****************************************************************/

是这个吗?
2009-2-21 23:14
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
好像现在写挂都是直接该内存发包之类的,模拟键盘搞不出变态功能,外挂都不用了
2009-2-22 17:46
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
25
很可惜,不好用
2009-2-22 18:08
0
游客
登录 | 注册 方可回帖
返回
//