PETHREAD NTAPI GetNextProcessThread(
IN PEPROCESS Process,
IN PETHREAD Thread OPTIONAL
)
{
PETHREAD FoundThread = NULL;
PLIST_ENTRY ListHead, Entry;
if (Thread)
{
Entry = (PLIST_ENTRY)((ULONG)(Thread)+uThreadListEntryOffset);
Entry=Entry->Flink;
}
else
{
Entry = (PLIST_ENTRY)((ULONG)(Process)+uThreadListHeadOffset);
Entry = Entry->Flink;
}
ListHead = (PLIST_ENTRY)((ULONG)Process + uThreadListHeadOffset);
while (ListHead != Entry)
{
FoundThread = (PETHREAD)((ULONG)Entry - uThreadListEntryOffset);
if (ObReferenceObject(FoundThread))
break;
FoundThread = NULL;
Entry = Entry->Flink;
}
if (Thread) ObDereferenceObject(Thread);
return FoundThread;
}
我的一个函数枚举进程的所有线程 然后杀掉 在测试记事本的时候没有问题 但是杀电驴和DbgView都会蓝屏 我单步调试是执行家黑的那个语句的时候蓝的 下面附蓝屏信息 请教各位
STACK_TEXT:
80e12fd4 83cec6d5 00000003 8d0fbbc1 00000065 nt!RtlpBreakWithStatusInstruction
80e13024 83ced1d1 00000003 80e13a74 8fe3b138 nt!KiBugCheckDebugBreak+0x1c
80e133e8 83cec574 000000f7 0682561c 8fe3d929 nt!KeBugCheck2+0x68b
80e1340c 8fe3a683 000000f7 0682561c 8fe3d929 nt!KeBugCheckEx+0x1e
80e1342c 8fe3a6e9 00000000 00000000 00000000 HelloDDK!__report_gsfailure+0x25 [d:\w7rtm\minkernel\tools\gs_support\kmode\gs_report.c @ 46]
80e13454 83c70c62 80e13968 80e13a64 80e13540 HelloDDK!_except_handler4+0x49 [d:\winmain\minkernel\crts\crtw32\misc\i386\chandler4.c @ 321]
80e13478 83c70c34 80e13968 80e13a64 80e13540 nt!ExecuteHandler2+0x26
80e13530 83cc28b9 80e13968 80e13540 0001003f nt!ExecuteHandler+0x24
80e1394c 83c51386 80e13968 00000000 80e139bc nt!KiDispatchException+0x17c
80e139b4 83c5133a 80e13a44 83e49424 badb0d00 nt!CommonDispatchException+0x4a
80e139dc 83cbeed4 83d3cd20 00000000 00000000 nt!KiExceptionExit+0x192
80e13a44 8fe3a227 00000000 00000000 00000000 nt!KeInsertQueueApc+0xb9
80e13a74 8fe3a2eb 8660bac8 0f02e3ed 8576a000 HelloDDK!PspTerminateThread+0x87 [f:\linklist\nt_driver\2\process.cpp @ 257]
80e13ac4 8fe3e09f 00000550 00000000 00000000 HelloDDK!KillProcess+0x7b [f:\linklist\nt_driver\2\process.cpp @ 289]
80e13ad8 83dd3f93 85770178 8576a000 00000000 HelloDDK!DriverEntry+0x8f [f:\linklist\nt_driver\2\driver.cpp @ 224]
80e13cbc 83dbc344 00000001 00000000 80e13ce4 nt!IopLoadDriver+0x7ed
80e13d00 83c76043 8f3b7cd0 00000000 856e34c0 nt!IopLoadUnloadDriver+0x70
80e13d50 83e02d16 00000001 8d0fb675 00000000 nt!ExpWorkerThread+0x10d
80e13d90 83ca4159 83c75f36 00000001 00000000 nt!PspSystemThreadStartup+0x9e
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19
STACK_COMMAND: kb
FOLLOWUP_IP:
HelloDDK!__report_gsfailure+25 [d:\w7rtm\minkernel\tools\gs_support\kmode\gs_report.c @ 46]
8fe3a683 cc int 3
FAULTING_SOURCE_CODE:
No source found for 'd:\w7rtm\minkernel\tools\gs_support\kmode\gs_report.c'
SYMBOL_STACK_INDEX: 4
SYMBOL_NAME: HelloDDK!__report_gsfailure+25
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: HelloDDK
IMAGE_NAME: HelloDDK.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4c77aa2f
FAILURE_BUCKET_ID: 0xF7_MISSING_GSFRAME_HelloDDK!__report_gsfailure+25
BUCKET_ID: 0xF7_MISSING_GSFRAME_HelloDDK!__report_gsfailure+25
Followup: MachineOwner
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法