在半年前的暑假,刚刚接触到了Hook,就想试试用Hook能不能获取到QQ的密码,但是得到的是一堆乱码,所以也就没再继续了,因为当时我只是只菜鸟;半年后,我成了大一点的菜鸟,但我又来挑战QQ的密码框,因为我知道我并不比TX 菜到哪里去,事实上,经过一阵子的摸索,发现TX的防盗确实很菜。
首先重现一下当年的情形,用MFC写了个演示程序,初始化的时候装一个全局低级键盘钩子
m_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, ::GetModuleHandle(NULL), 0);
由于这种低级钩子不需要写在dll中,所以Module就是自身,操作系统会在每次收到键盘消息是先切换到你的钩子线程,执行完后再把消息往下传。
LowLevelKeyboardProc内容如下
一个很普通的键盘记录过程,但当我把焦点对准QQ的密码框时,就开始乱弹信息了(图中所有数字按键均为自动产生的信息),我尝试输入
aabbccdd,但是从图中可以看到,出来的却是 kkggyyhh 四个按键,由此,可以得到以下三点结论
1、Q