紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3275|回复: 2

WIN 64 Driver 傳PROCESS NAME問題

[复制链接]

7

主题

421

帖子

1

精华

铂金会员

Rank: 5

积分
2173
发表于 2013-8-30 16:12:05 | 显示全部楼层 |阅读模式
以下為DRIVER程式

NTKERNELAPI
UCHAR *
PsGetProcessImageFileName(PEPROCESS Process);
ULONG dwInputPid;
PEPROCESS eProcess=NULL;
UCHAR *processname;

memcpy(&dwInputPid,pIoBuffer,4);
status=PsLookupProcessByProcessId(dwInputPid,&eProcess);
if(NT_SUCCESS(status))
   {
      processname = PsGetProcessImageFileName(eProcess);
      memcpy(pIoBuffer,&processname,8);
   }


以下為EXE檔程式
IoControl(hSSDTDrv ,CTL_CODE_GEN(0x805), &dwInputPid,4,&processname,8);

在傳回processname時會出現只有SIZE 1,PROCESS NAME傳不回來的問題,不知有沒有哪位高手知道問題點~~

851

主题

3477

帖子

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
37093
发表于 2013-8-30 17:07:51 | 显示全部楼层
status=PsLookupProcessByProcessId(dwInputPid,&eProcess);
改为:
status=PsLookupProcessByProcessId((HANDLE)dwInputPid,&eProcess);

memcpy(pIoBuffer,&processname,8);
改为:
memcpy(pIoBuffer,processname,15);

7

主题

421

帖子

1

精华

铂金会员

Rank: 5

积分
2173
 楼主| 发表于 2013-8-31 13:25:32 | 显示全部楼层
Tesla.Angela 发表于 2013-8-30 17:07
status=PsLookupProcessByProcessId(dwInputPid,&eProcess);
改为:
status=PsLookupProcessByProcessId((H ...

問題一樣,而且在執行完IoControl後dwInputPid的值會被改掉,
不過沒關係了。我又別的方法做了!

謝謝版大~~~
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-3-29 15:14 , Processed in 0.024289 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表