-
-
[旧帖]
[求助][求助]应用层向驱动层 字符串转换的一个问题
0.00雪花
-
发表于:
2009-11-18 14:15
4169
-
[旧帖] [求助][求助]应用层向驱动层 字符串转换的一个问题
0.00雪花
我在驱动里查找 一个进程的PID
函数的原型是 在驱动里设置好进程的名称 如:
//===========================通过进程名获取进程PID并且关掉进程==================
VOID FindProcessesClose()
{
ULONG size = 65535, i;
PUCHAR SystemInfo;
PSYSTEM_PROCESSES pSystemProcess;
NTSTATUS ntStatus;
OBJECT_ATTRIBUTES ObjectAttr;
CLIENT_ID ClientId;
HANDLE hProcess1 = NULL;
HANDLE PID = (HANDLE)0; //进程PID
PCWSTR ProcessName[] = {
L"notepad.exe", //卡巴杀软
//L"Rav.exe", //瑞星杀软
//L"360tray.exe",
//L"360Safe.exe", //360安全卫士
//L"safeboxTray.exe",
//L"360safebox.exe",
//L"RavMonD.exe",
//L"CCenter.exe", //瑞星杀软
//L"icesword.exe",//冰刃工具
//L"gameclient.exe",
NULL };
UNICODE_STRING usProcessName[sizeof(ProcessName)];
SystemInfo = ExAllocatePool( PagedPool, size );
if (SystemInfo == NULL)
return;
这样有局限性 我就想 把进程名通过应用层传递到 驱动里这样就方便了,
我IRP接收是这样写的
PVOID InputBuffer;
PVOID OutputBuffer;
InputBuffer = IrpStack->Parameters.DeviceIoControl.Type3InputBuffer;
case IO_PROTECT3:
RtlInitAnsiString(&ppa,InputBuffer);
RtlAnsiStringToUnicodeString(&ProcessName,&ppa,TRUE);
DbgPrint("ANSI-InputBuffer: %Z\n",&ppa);
DbgPrint("InputBuffer: %s\n",(char*)InputBuffer);
break;
传递倒是传递进来了 ,打印也都正确
我想把 传递进来的字符串 赋值给 上面的PCWSTR ProcessName[] = {
L"notepad.exe", NULL};
应该怎么转换到 PCWSTR ProcessName
我用了好多方法 都不行 高手帮忙。
[课程]Linux pwn 探索篇!