首页
社区
课程
招聘
[讨论]绕过NP保护, 实现鼠标键盘模拟的方法
发表于: 2008-4-28 19:22 27241

[讨论]绕过NP保护, 实现鼠标键盘模拟的方法

2008-4-28 19:22
27241
我想在NP运行前 ,保存 SendInput()函数对应在SSDT中的 NtUserSendInput()函数;
然后,等NP运行后,我通过 DeviceIoControl()函数控制驱动调用原始的函数副本。(这个副本因为是在NP运行前保存的,所以不会被NP HOOK)   然后将调用结果返回至用户态的程序。

    不知这个思路是否可行?
    当然,也许我们不仅仅要HOOK  NtUserSendInput();包括 NtUserSendInput()调用的子函数,也有可能会被NP HOOK,所以也要保存。或者自己实现一个。还有,我们保存的函数副本,也要将里面JMP ,CALL的地址重定位。如何重定位,也是个话题。
    请大家讨论。
    关于键盘模拟,直接使用 IN ,OUT指令IO 端口的方法,对USB键盘无效。而且也无法模拟鼠标。
故不感兴趣。
    请大家发表高论,别客气啊。

   

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

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

太失望了,怎么连个人影都没有啊,是不是这个问题很没水平?
2008-4-28 22:17
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
3
这两句的问题,见我另一帖的回帖……

绕过inline hook不是这样子的,保存函数所有内容反而会弄巧成拙。
应该保存的是被NP在inline hook时改掉的前几个字节内容,然后在自己的函数里,执行完这前几个字节,然后跳到原函数这几个字节之后的位置执行。
2008-4-28 22:30
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢楼上,我一定要增加你的声望。

有这方面的代码或文章吗
2008-4-29 09:06
0
雪    币: 108
活跃值: (141)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
5
Filter driver
2008-4-29 16:01
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
能多提示几个字吗?楼上的的意思是说 ,NP 使用了Filter driver,还是要让我写个Filter driver 呢
2008-4-29 16:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
关于键盘模拟,直接使用 IN ,OUT指令IO 端口的方法,对USB键盘无效。而且也无法模拟鼠标。
故不感兴趣。

貌似直接读写IO端口可以模拟鼠标吧,不过也不能是USB鼠标罢了.
我也没研究过USB键盘鼠标的硬件模拟,但NP下实现模拟貌似挺容易.
你重新构造SendInput有点麻烦,NP太针对SendInput了,具体未研究.
2008-5-1 23:29
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
8
完全模拟这个函数应该是可以的。。
np比较厉害 hook监控多 恢复比较容易bsod
2008-5-2 06:18
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
对,NP重点照顾的函数还有 attachprocess(), 要使用这个函数,最好的办法也是自己实现。
NP对该函数进行了 deep inline hook
2008-5-2 11:19
0
雪    币: 134
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
关注,GS楼之
2008-5-5 11:26
0
雪    币: 134
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
LZ,应该可以吧?
2008-5-5 11:28
0
雪    币: 287
活跃值: (102)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
12
在哪里有??
2008-5-5 16:19
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
要绕过NP很简单的,只要你有点驱动的基础。。。。。
就算挂调试器都没问题

而要模拟键盘和鼠标更是有N种办法,写个虚拟键盘的drver就可以了。。。。(99.9%的成功率)
2008-5-5 16:33
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我倒是有驱动的基础,但是NP进行了太多的deep inline hook ,挺头疼的。
写虚拟键盘的驱动倒是可以,不过应该挺麻烦的。

看来最彻底的解决办法就是直接对NP本身下手,哎,头疼
2008-5-5 20:06
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
传说R3就能过NP进行键盘模拟,内存读写。。。。。。。。。

据说
据说注入到NP保护的游戏进程,就可以使用 sendinput了。。。。。。。

又据说全局钩子能by pass NP的进程保护,这样的话。。。。。。
2008-5-5 20:11
0
雪    币: 202
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
传说中

有没有人实现啊,

关注 中
2008-5-5 22:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
确实,ring3就能实现NP下模拟的操作,NP下不让加载驱动,用驱动也很容易被发现.
ring3下的模拟只用了一个NT函数,我这只有DLL,具体源代码需要的话我可以帮你介绍.
QQ413338488
2008-5-6 06:29
0
游客
登录 | 注册 方可回帖
返回
//