阅读:2650回复:15
如何用ZwOpenFile运行程序?
sys里如何调用ZwOpenFile运行一个程序呢?
BOOLEAN OpenTheFile () { HANDLE hFile; OBJECT_ATTRIBUTES oaFile; ANSI_STRING FileNameAnsi; UNICODE_STRING FileNameUnicode; IO_STATUS_BLOCK iosb; NTSTATUS nts; // Open the file RtlInitAnsiString (&FileNameAnsi, "\\??\\c:\\tmp.exe"); RtlAnsiStringToUnicodeString (&FileNameUnicode, &FileNameAnsi, TRUE); InitializeObjectAttributes (&oaFile, &FileNameUnicode,OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE, NULL, NULL); nts = ZwOpenFile(&hFile, GENERIC_READ|GENERIC_EXECUTE,&oaFile, &iosb, 0,FILE_NON_DIRECTORY_FILE); if (!NT_SUCCESS (nts)) { RtlFreeUnicodeString (&FileNameUnicode); //DbgPrint(("Open failed with status %x\n", nts)); return FALSE; }else{ DbgPrint(("Open success\n")); return TRUE; } } NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) { OpenTheFile(); return STATUS_SUCCESS; } 这样写为何不行呀。 |
|
|
沙发#
发布于:2007-04-10 20:50
dddddddddddddddd
|
|
|
板凳#
发布于:2007-04-11 10:30
哪位老爷行行好,心情好点,救个急啊~
|
|
|
地板#
发布于:2007-04-11 13:02
引用第5楼killvxk于2007-04-11 12:16发表的“”: zwopenfile zwcreatesection zwcreateprocess zwallocatevirtualmemory。。。 我是想在hook 进zwcreatsection之后,当检测到执行特定程序的时候,调用zwopenfile打开另一个文件,把handle传给zwcreateion,重定向让它执行另一个文件,但用ZwOpenFile(&hFile, GENERIC_READ|GENERIC_EXECUTE,&oaFile, &iosb, 0,FILE_NON_DIRECTORY_FILE);传下去,文件被执行不了... |
|
|
地下室#
发布于:2007-04-12 08:17
引用第10楼killvxk于2007-04-11 16:22发表的“”: 参考的就是他的文章~~有些不同,它的方法同时hook 了zwopenfile 和zwcreatesection的,他改handle是在zwopenfile 中。。 |
|
|
5楼#
发布于:2007-04-12 13:22
解决了,呵呵,多谢各位,
|
|
|