|
[求助]WDM驱动处理IRP_MN_REMOVE_DEVICE意外IRQL_NOT_LESS_OR_EQUAL
谢谢大家,最后发现是下层驱动对象弄错了……应该IoCallDriver下层驱动而不是目标驱动(我想要过滤的驱动)…… |
|
|
|
[求助]WDM驱动处理IRP_MN_REMOVE_DEVICE意外IRQL_NOT_LESS_OR_EQUAL
status = WKC_ForwardIrpSynchronous(DeviceObject, Irp); 这是用来下发IRP然后等待返回的……应该是发出去了 |
|
[求助]WDM驱动处理IRP_MN_REMOVE_DEVICE意外IRQL_NOT_LESS_OR_EQUAL
另外重新跟踪了一下,应该是 IoDeleteDevice(pDeviceObject); 这一句出错,Windbg识别错位了一行…… |
|
[求助]WDM驱动处理IRP_MN_REMOVE_DEVICE意外IRQL_NOT_LESS_OR_EQUAL
肯定不是空指针了……如果是空指针的话怎么可能纠结那么长时间呢…… kd> DT devExtension Local var @ 0xf8af5b5c Type _WKC_DEVICE_EXTENTION* 0x820ab368 +0x000 ulSize : 0x28 +0x004 pFilterDeviceObject : 0x820ab2b0 _DEVICE_OBJECT +0x008 IoRequestsSpinLock : 0 +0x00c IoInProgressEvent : _KEVENT +0x01c DeviceType : 0x32 +0x020 pTargetDeviceObject : 0x824f53d8 _DEVICE_OBJECT +0x024 pLowerDeviceObject : 0x824f53d8 _DEVICE_OBJECT devExtension是没有问题的 |
|
[求助]Hook ZwQueryDirectoryFile时遇到的问题……
刚才忘记贴了 DWORD FileHide::GetNextEntryOffset(IN PVOID pData,IN FILE_INFORMATION_CLASS FileInfo) { DWORD result = 0; switch(FileInfo){ case FileDirectoryInformation: result = ((PFILE_DIRECTORY_INFORMATION)pData)->NextEntryOffset; break; case FileFullDirectoryInformation: result = ((PFILE_FULL_DIR_INFORMATION)pData)->NextEntryOffset; break; case FileIdFullDirectoryInformation: result = ((PFILE_ID_FULL_DIR_INFORMATION)pData)->NextEntryOffset; break; case FileBothDirectoryInformation: result = ((PFILE_BOTH_DIR_INFORMATION)pData)->NextEntryOffset; break; case FileIdBothDirectoryInformation: result = ((PFILE_ID_BOTH_DIR_INFORMATION)pData)->NextEntryOffset; break; case FileNamesInformation: result = ((PFILE_NAMES_INFORMATION)pData)->NextEntryOffset; break; } return result; } |
|
[求助]获取EProcess中的Peb结构出错
谢谢大家,KeAttachProcess(EProc);KeDetachProcess(); 就没问题了。 |
|
[求助]获取EProcess中的Peb结构出错
好的 这是全部代码 我挂靠到进程上依然有问题额。。。。 PEPROCESS peProcess; ULONG ulTeb; ULONG ulPeb; ULONG ulParameters; KAPC_STATE pProcessApc; __try { peProcess = *(PEPROCESS*)((ULONG)peThread+0x220); ulPeb = *(DWORD*)((DWORD)peProcess+0x1b0); KeStackAttachProcess(peProcess,&pProcessApc); if(!ulPeb) { return -1; } if(!MmIsAddressValid((PVOID)ulPeb)) { return -1; } ulParameters = *(PULONG)((ULONG)ulPeb+0x010); ptInfo->dwProcessID = *(PULONG)((ULONG)peProcess+0x084); ptInfo->uFilePathLength = *(PUSHORT)(ulParameters+0x038); ptInfo->uCommandLineLength = *(PUSHORT)(ulParameters+0x040); RtlCopyMemory(&ptInfo->wFilePath, (void *)((ULONG)(*(PULONG)(ulParameters+0x038))+0x004), ptInfo->uFilePathLength*); RtlCopyMemory(&ptInfo->wCommandLine, (void *)((ULONG)(*(PULONG)(ulParameters+0x040))+0x004), ptInfo->uCommandLineLength); RtlCopyMemory(&ptInfo->szImageName, (void *)((ULONG)peProcess+0x174),16); KeUnstackDetachProcess(&pProcessApc); return 1; } __except(EXCEPTION_EXECUTE_HANDLER) { KdPrint(("peb errorr\r\n")); } return 0; } |
|
[求助]获取EProcess中的Peb结构出错
试了下楼上的代码 好像还是不行 |
|
[求助]获取EProcess中的Peb结构出错
呃。。小弟不才,_leave是什么意思啊?是不是__asm leave?用了貌似也没效果啊。。。。 |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值