首页
社区
课程
招聘
[转帖]简单过QQ的nProtect键盘驱动加密保护
发表于: 2008-4-25 18:10 8521

[转帖]简单过QQ的nProtect键盘驱动加密保护

2008-4-25 18:10
8521
谁都知道nProtect是驱动层的键盘加密保护,
但是这个nProtect也不是时刻接管着我们的键盘,仅仅在用户输入密码的时候才真正启动,
而程序是如何获知用户开始输入密码了呢?
用简单的windows编程方法就能想到,就是处理WM_SETFOCUS消息,
一旦某控件获得焦点windows就会发送WM_SETFOCUS到那个hwnd,
而一旦那个控件失去焦点的时候,nProtect需要关闭,否则就影响到用户的其他输入动作了,很明显这就是处理WM_KILLFOCUS消息。

所以,当你发现某控件获得焦点的时候,你可以无耻的冒充windows发送WM_KILLFOCUS消息,这样nProtect就自动退出保护啦~~~
当然会有其他问题,就是那个Edit控件接收到WM_KILLFOCUS后一闪一闪的光标也停掉了,这个问题有兴趣的自行解决~~~~~

或者用其他的思路,比如你的程序直接冒充qq向它的驱动发送退出保护的消息?这需要调试他的程序来了解是发送什么消息,
我曾把他的内存中的那个消息的值给patch了然后发送个WM_KILLFOCUS叫它退出保护,然后再发送个WM_SETFOCUS,让那个控件又呈现正常的输入状态。
可是它获得WM_SETFOCUS消息后想向驱动发送开启保护的消息已经让我patch了,于是保护一直没启动。

以上是很早前我测试过的,

写这个代码的时候还记得个有趣的猫腻~~~~
郁闷我获得的密码框控件句柄总是不正确,可明明就一个可视的具有密码风格的edit控件啊~~~~~
原来,还有个透明的。何苦呢~~~

在获得正确的密码控件句柄后下面这点代码读取密码效果还不错
asterisk = (char)SendMessage(hPassWindow, EM_GETPASSWORDCHAR, 0, 0);

PostMessage(hPassWindow, EM_SETPASSWORDCHAR, 0, 0);
SendMessage(hPassWindow, WM_GETTEXT, sizeof(szPass), (LPARAM)szPass);
PostMessage(hPassWindow, EM_SETPASSWORDCHAR, asterisk, 0);

由于计算机速度太快了,人眼发现不到异常

......

在qq2007刚出来时我又好奇的测试了下,发现patch掉开启保护的消息后仍然还捕捉不到正常的按键信息,我高兴的以为是加强了nProtect了呢,

其实不是,可能他是觉得应该再保险点,再加个WH_KEYBOARD_LL钩子,这个是windows的低级键盘钩子,
当QQ的密码框获得焦点的时候nProtect如果没启动的话,那么按键的消息就会给钩子拦截,
貌似qq获得正确按键信息后就用sendinput模拟下按键事件,而这个按键的代码是假的,专门糊弄别的应用程序。

知道这个之后还不简单?
我们给SetWindowsHookEx也Hook一个就行啦。

而且这个Hook还真好hook,这API M$就是准备给人hook的,
大概就是 hotpatch吧,只是win2000下SetWindowsHookEx的首条指令却没有像mov edi,edi的,
但是SetWindowsHookExA和SetWindowsHookExW最终调用的那个内部函数却有,虽不是mov edi,edi,但mov eax,eax也一样~~~
而且定位这个函数还很容易呢~~~

就这样,驱动层的保护在应用层就完全搞定了,

如果用户电脑没安装那些较合格的主动防御软件的话,那么qq这个国际领先的密码保护就似乎形同虚设了~~~

ps: 据说beta3不是那么回事了~~~

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
PON
2
鸡蛋壳始终洁身自好,始终保持精华为鸭蛋的记录。
如果我是版主,这次就不放过它。除非。。。。
2008-4-25 18:33
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
佩服写文章的人..对消息机制真熟..
2008-4-25 18:35
0
雪    币: 299
活跃值: (25)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
4
人家都没用了你才贴出来。
2008-4-25 21:08
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
5
用的时候当然不能贴了
2008-4-26 00:21
0
雪    币: 154
活跃值: (216)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
鸡蛋壳,他功力高,却从不张扬;他热情如火,却从不强人所难;他为民服务,却从不想要回报;他发贴近3K,却从来不得精华;他就是鸡蛋壳,独一无二的鸡蛋壳。他是偶像,他是导师,他是我们的好榜样。
2008-4-26 11:04
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
难怪你会留校任教,人才。
2008-4-26 18:42
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼上的楼上,真是搞笑死了,
是不是在发帖的一刹那 ,被周星驰给灵魂附体了
2008-4-26 21:48
0
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
PON
9
冬天到了,好冷。
2008-4-26 22:22
0
游客
登录 | 注册 方可回帖
返回
//