-
-
[求助]关于keyboard sniffer的一些问题....
-
发表于: 2009-7-20 12:14 3290
-
小弟最近在学习keyboard sniffer 试了2种方案 都没成功.... 望大牛赐教~
方案一
rootkit上面不是有段HOOK idt的键盘中断向量的源码么
我编译使用了以后发现不行,
WRITE_PORT_UCHAR(KEYBOARD_PORT_64, 0xD2); //command to echo back scancode
WaitForKeyboard();
WRITE_PORT_UCHAR(KEYBOARD_PORT_60, c); //write the scancode to echo back
这段代码会引发重入问题~
向0x64端口写0xD2命令的这个动作会引发一个键盘中断..... 然后系统又开始调用我的hook函数,然后我的函数内部发了0xD2命令,又会引发一个键盘中断.... 然后就死循环了~~
方案二
HOOK read_port_uchar
但是当我改hal!read_port_uchar函数数据的时候就悲剧了.... 直接调试器没响应,然后虚拟机也死了 但是没蓝,没法输出调试信息~~晕哦
WPOff(&attr) ;
for( i = 0 ; i < 7 ; i++ )
{
*Addr = EditCode[i] ;
Addr++ ;
}
WPOn(&attr) ;
悲剧就在在第一次执行*Addr = EditCode[i] ;时发生的~
HOOK代码在其它函数中运行就不会出错....郁闷了~~
方案一
rootkit上面不是有段HOOK idt的键盘中断向量的源码么
我编译使用了以后发现不行,
WRITE_PORT_UCHAR(KEYBOARD_PORT_64, 0xD2); //command to echo back scancode
WaitForKeyboard();
WRITE_PORT_UCHAR(KEYBOARD_PORT_60, c); //write the scancode to echo back
这段代码会引发重入问题~
向0x64端口写0xD2命令的这个动作会引发一个键盘中断..... 然后系统又开始调用我的hook函数,然后我的函数内部发了0xD2命令,又会引发一个键盘中断.... 然后就死循环了~~
方案二
HOOK read_port_uchar
但是当我改hal!read_port_uchar函数数据的时候就悲剧了.... 直接调试器没响应,然后虚拟机也死了 但是没蓝,没法输出调试信息~~晕哦
WPOff(&attr) ;
for( i = 0 ; i < 7 ; i++ )
{
*Addr = EditCode[i] ;
Addr++ ;
}
WPOn(&attr) ;
悲剧就在在第一次执行*Addr = EditCode[i] ;时发生的~
HOOK代码在其它函数中运行就不会出错....郁闷了~~
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
看原图
赞赏
雪币:
留言: