mikeyredmoon
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分271分
  • 威望55点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
阅读:1297回复:3

从驱动往应用程序传数据的问题

楼主#
更多 发布于:2007-07-31 16:44
我用DeviceIoControl里面定义的输出buffer的方法从驱动向应用传数据,直接
往输出buffer里面写入数据就没问题,要是从驱动一个变量里面strcpy就蓝屏重起,帮忙看看吧
ResultStatus = ObReferenceObjectByHandle(ProcessHandle,PROCESS_ALL_ACCESS,*PsProcessType,UserMode,(PVOID)&process,(PVOID)&info);

DBGPRINT(("%s"),process->ImageFileName ) 这个能打出来,这是个UCHAR[16]的变量
//strcpy(buff,"test")  这样就没问题 , buffer是外面传进来的buffer
strcpy(buff,process->ImageFileName);    这个就蓝屏,恨不得钻进去
把ImageFileName一个一个字符挖出来付给buff


已经蓝了无数次了,各位帮帮忙吧
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
沙发#
发布于:2007-07-31 16:52
1. process->ImageFileName是个什么类型的东东?
2. EPROCESS结构系统公开了吗?显然没有,那么不同的系统下使用该东东安全吗?
3. 如果你是为了获取进程对应的ImageFileName的话,那么为何不使用正常手段来获取?
人总在矛盾中徘徊。。。
mikeyredmoon
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分271分
  • 威望55点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-31 16:59
引用第1楼devia于2007-07-31 16:52发表的  :
1. process->ImageFileName是个什么类型的东东?
2. EPROCESS结构系统公开了吗?显然没有,那么不同的系统下使用该东东安全吗?
3. 如果你是为了获取进程对应的ImageFileName的话,那么为何不使用正常手段来获取?


process->ImageFileName是EPROCESS里面的东西,EPROCESS也确实没有标准,我只是随便找了一个,我也知道用PsSetCreateProcessNotifyRoutine什么的是正道,但是我现在的任务是实验所有
监视进程启动(包括这个hook服务表)的方法,我就觉得奇怪,为啥能打印出来,就不能复制到buffer里面去哪。
mikeyredmoon
驱动牛犊
驱动牛犊
  • 注册日期2007-07-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分271分
  • 威望55点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-31 17:25
又试了一下,发现不只是往外面的buffer传数据,任何读process->ImageFileName的操作都会蓝屏,只有定义一个char*的指针指向这个变量才能打印出来,这是什么原理阿,小弟初学
乍连,各位老大帮帮忙看看阿
游客

返回顶部