为了了解扣扣的ring3的密码保护技术,然后用于自己的产品之中,硬着头皮一边参考windbg使用手册,一边参看论坛上已有的关于扣扣登陆框的密码保护方面的帖子,在一边查找MSDN(希望自己有三只眼睛

),打开扣扣.exe.然后gu到程序入口点,发现了gdi的的异常不断,根据
8ebK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0K9r3W2F1j5i4g2F1K9i4S2Q4x3X3g2F1k6i4c8Q4x3V1k6#2i4K6u0r3z5o6j5^5x3g2)9J5c8Y4y4Z5L8%4N6S2M7Y4c8Q4y4h3j5I4z5e0V1&6x3e0l9H3i4K6u0W2K9s2c8E0L8l9`.`.这里的方法排除了,但是然后在NtUserInput函数下断,但是符号表里面找不到,然后去微软下载了完整的符号表
9d2K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3I4Q4x3X3g2E0K9h3y4J5L8%4y4G2k6Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5c8Y4y4&6L8h3u0G2L8s2y4Q4x3V1k6H3j5h3y4C8j5h3N6W2M7#2)9J5c8Y4N6A6L8X3c8G2N6%4y4^5M7q4)9J5c8W2N6A6L8X3c8G2N6%4y4j5f1q4)9J5k6p5E0n7z5e0x3$3z5e0t1&6i4K6u0V1f1#2l9K6i4K6u0V1P5o6R3$3i4K6u0V1M7%4W2E0j5X3!0D9M7#2)9J5k6r3k6#2L8r3I4Q4x3X3c8q4e0W2g2Q4x3X3g2W2P5r3f1`.,安装设置完成后任然找不到这个函数.
换OD上场,发现焦点在扣扣登陆的密码框的时候有三个地址被不停的读写中,地址分别为0x03e41001,0x03dc100a,0x03e1100a(可能不同的机器的地址不一样),估计这些地方可能是产生干扰按键消息的地方,然后回到windbg在这个三个地址下访问断点 ba w1 0x03e41001...发现任然断不下来,回到OD,让扣扣加载完所有的DLL,然后ctrl+n查看导出函数和导入函数,也找不到可疑的函数.
以上是我的调试过程.产生以下疑问

.
1._NtUserInput是什么函数,符号表中都找不到,看雪上说是这个函数发送的干扰按键消息.?
2.低级键盘钩子是最先拿到用户输入的(比GetRawInputData还早),但是获得的按键数据是只读的,没有修改权限,通过AKLT.exe发现键盘的按键都被重新映射了,然后我就去找ring3下修改键盘布局的函数,也没找到,扣扣是如何做到的?.
3.没有HOOK api 是如何不让GetKetState...等获取键盘状态的函数失效的?
4.安装的低级键盘钩子,当自己的输入框激活的时候进不了回调函数,但是切换到别的窗口的时候却能进入,我没有用dll,直接在自己的应用程序里面安装的.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课