邪恶八进制信息安全团队技术讨论组's Archiver

domind 2007-7-29 16:19

[讨论]关于键盘中断读取数据输入失去焦点的问题

议题作者:domind
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])


小弟想尝试通过读取键盘缓冲区的方式读取qq密码输入的内容。
当然不知道这是否可行。
就找本书输了代码 当次程序窗口获得焦点时,能正确读取。可打开一个记事本输入时,
由于失去焦点,程序就不能读键盘输入了。
我想让他能一直记录键盘输入,不管是否获得焦点。
请教各位高人如何解决这个问题

我的代码如下
用tc2.0编译成功
/* Note:Your choice is C IDE */

#include "stdio.h"
#include "graphics.h"
#include "io.h"
#include "dos.h"
#include "conio.h"
#define MOUSE_ID 0x33
main()
{
  int ma,mb,mc,md,mmb,mmc,mmd,flag,m;
  mosdrv(0,0,0,0);
  clrscr();
  gotoxy(25,6);
  textcolor(11);
  cprintf("******KEY BUFFER *********");
  
  gotoxy(50,23);
  textcolor(11);
  cprintf("******CONDITION OF MOUSE *****");
  
  while(1)
  {
    mmb = mb;
    mmc = mc;
    mmd = md;
   
    mosdrv(3,&mb,&mc,&md);
    if(mb == 1)
     {
       mosdrv(1,0,0,0);
       m = peek(0x40,0x1c);
       poke(0x40,0x1a,m);
     }
    if(mb == 2)
     {
      flag = 1;
      gotoxy(1,1);
      printf("\n\n");
        
     }
   
    else if(flag == 1)
     {
       flag = 0;
       gotoxy(1,1);
       printf("\n\n");
     }
     
    if (mb == 3)
     {
       mosdrv(2,0,0,0);
       exit(1);
     }   
   
    if((mc!=mmc)||(md!=mmd)||(mb!=mb))
    {
      gotoxy(50,25);
      printf("x:%3d,y:%3d,1/r button:%4d",mc/8,md/8,mb);
    }
    dpkeybf(0,8);
  }
}


dpkeybf(int x,int y)
{
  unsigned char i,p;
  textcolor(7);
  gotoxy(x+1,y+2);
  cprintf("0040:001e(L)");
  gotoxy(x+1,y+3);
  cprintf("0040:001e(H)");
  
  for (i=0;i<32;i=i+2)
  {
    gotoxy(x+16+((4*i)>>1),y);
    cprintf("%3d",i);
  }
  
  for (i=0x1e;i<0x3e;i++)
  {
    textcolor(7);
    gotoxy(x+16+4*((i-0x1e)>>1),y+2+(((i-0x1e))&0x01));
    p = peekb(0x40,i);
    cprintf("%3hx",p);
   
    textcolor(14);
    gotoxy(x+16+2*(peekb(0x40,0x1a)-0x1e),y+2);
    cprintf(">");
   
    textcolor(15);
    gotoxy(x+16+2*(peekb(0x40,0x1c)-0x1e),y+2);
    cprintf("<");
  }
}

mosdrv(int functno,int *mb,int *mc,int *md)
{
  union REGS regs;
  regs.h.ax = functno;
  regs.h.bx=&mb;
  regs.h.cx=&mc;
  regs.h.dx=&md;
  int86(MOUSE_ID,

页: [1]
© 1999-2008 EvilOctal Security Team