|
|
|
|
|
|
|
Windows内核调试
帖子发起人: 堕落的神曲 发起时间: 2008-09-26 22:09 下午 回复: 0
|
帖子排序:
|
|
|
|
2008-09-26, 22:09 下午
|
堕落的神曲
注册: 2008-09-26
发 贴: 1
|
求助:KeAttachProcess后无法访问进程内存
|
|
|
|
void EnumUserModules(PEPROCESS pEprocess,PPEB pPeb) { PLIST_ENTRY pUserModuleListHead=NULL, pUserModuleListPtr=NULL; PPEB_LDR_DATA pLdrData; PUNICODE_STRING pImageName; PLDR_MODULE pLdrModule;
//KeStackAttachProcess((ULONG)pEprocess,&kaps); KeAttachProcess((ULONG)pEprocess); if(KeGetCurrentIrql()!=PASSIVE_LEVEL){ DbgPrint("irql error"); return; } pLdrData=(PPEB_LDR_DATA)((ULONG)pPeb+PEB_LDR_DATA_OFFSET); DbgPrint("pLdrData:%x",(ULONG)pLdrData); //pUserModuleListHead=(PLIST_ENTRY)(&(pLdrData->InLoadOrderModuleList)); pUserModuleListHead=(PLIST_ENTRY)((ULONG)pLdrData+0xc); pUserModuleListPtr=pUserModuleListHead; do{ try{ //DbgPrint("pUserModuleListPtr:%x Flink:%x",pUserModuleListPtr,pUserModuleListPtr->Flink); ProbeForRead ( pUserModuleListPtr, sizeof(LDR_MODULE), sizeof(ULONG) ); // pLdrModule=(PLDR_MODULE)pUserModuleListPtr; pUserModuleListPtr=pUserModuleListPtr->Flink; } except( EXCEPTION_EXECUTE_HANDLER ) { DbgPrint("an error occured:%0x",GetExceptionCode());//得到的错误总是0xc0000005,即内存访问错误 break; } } while(pUserModuleListPtr->Flink!=pUserModuleListHead); KeDetachProcess(); }
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » 求助:KeAttachProcess后无法访问进程内存
|
|
|
|
|
|