欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

windbg查看E.KTHREAD,E.KPROCESS

windbg查看E.KTHREAD,E.KPROCESS

一个进程创建了5个线程。。。
DWORD threadID;
  for (int i=0;i<5;i++)
  {
    CreateThread(0,0,(LPTHREAD_START_ROUTINE)thread,0,0,&threadID);
  
    char strBuffer[100];
    sprintf(strBuffer,"%d",threadID);
          OutputDebugString(strBuffer);
  //  OutputDebugString("%d",threadID);
    printf("%d\n",threadID);
  }
  return 0;
PROCESS 89c70da0  SessionId: 0  Cid: 0648    Peb: 7ffdb000  ParentCid: 05cc
    DirBase: 0c800300  ObjectTable: e10905c8  HandleCount:  48.
    Image: multhread.exe

kd> dt !_KPROCESS 89c70da0  
ntdll!_KPROCESS
   +0x000 Header           : _DISPATCHER_HEADER
   +0x010 ProfileListHead  : _LIST_ENTRY [ 0x89c70db0 - 0x89c70db0 ]
   +0x018 DirectoryTableBase : [2] 0xc800300
   +0x020 LdtDescriptor    : _KGDTENTRY
   +0x028 Int21Descriptor  : _KIDTENTRY
   +0x030 IopmOffset       : 0x20ac
   +0x032 Iopl             : 0 ''
   +0x033 Unused           : 0 ''
   +0x034 ActiveProcessors : 0
   +0x038 KernelTime       : 0xd
   +0x03c UserTime         : 5
   +0x040 ReadyListHead    : _LIST_ENTRY [ 0x89c70de0 - 0x89c70de0 ]
   +0x048 SwapListEntry    : _SINGLE_LIST_ENTRY
   +0x04c VdmTrapcHandler  : (null) 
   +0x050 ThreadListHead   : _LIST_ENTRY [ 0x89e6c798 - 0x89de7700 ]
ThreadListHead进程中线程链表头
 每一个结构都是_LIST_ENTRY
kd> dd 0x89e6c798 
89e6c798  89de0550 89c70df0 00000000 00000000
kd> dd 89de0550 
89de0550  89c71a60 89e6c798 00000000 00000000
kd> dd 89c71a60 
89c71a60  89e5fe00 89de0550 00000000 00000000
kd> dd 89e5fe00 
89e5fe00  89e6c4c0 89c71a60 00000000 00000000
kd> dd 89e6c4c0 
89e6c4c0  89de7700 89e5fe00 00000000 00000000
kd> dd 89de7700 
89de7700  89c70df0 89e6c4c0 00000000 00000000
kd> dd 89c70df0 
89c70df0  89e6c798 89de7700 00000000 00000001
主线程加5个线程正好6个线程对应6个线程循环
这里是KTHREAD里面的ThreadListHead   
ETHREAD里面也有一个,同样的方式就能看到其实都是一一对应的
EPROCESS的0x190对应了ETHREAD链
+0x190 ThreadListHead   : _LIST_ENTRY [ 0x89e6c814 - 0x89de777c ]

kd> dd 0x89e6c814 
89e6c814  89de05cc 89c70f30 00000000 00000000
89e6c824  00000000 00000007 001f03ff 00000000
89e6c834  00000000 00000000 00000000 0a08004f
89e6c844  7266744e 89e8a060 89dea0b8 00000000
89e6c854  00000000 00000000 00000000 00000000
89e6c864  00000000 00000000 00000000 00000000
89e6c874  00000000 00000000 00000000 0a080008
89e6c884  7266744e 89e6edf8 89e89100 00000000
kd> dd 89de05cc 
89de05cc  89c71adc 89e6c814 00000000 00000000
89de05dc  00000000 00000007 001f03ff 00000000
89de05ec  00000000 00000000 00000000 0a07004f
89de05fc  64536d4d 89e65968 00000060 00000100
89de060c  00000100 e25a6000 00000100 00000100
89de061c  00000000 00000000 8a1d0df8 00000002
89de062c  00000003 00010007 63426343 0a0d0001
89de063c  61436d4d e259eb88 00000000 00000000
kd> dd 89c71adc 
89c71adc  89e5fe7c 89de05cc 00000000 00000000
89c71aec  00000000 00000007 001f03ff 00000000
89c71afc  00000000 00000000 00000000 0a27004f
89c71b0c  63536343 013002ff 00000001 00006c00
89c71b1c  00000000 89c71b20 89c71b20 00100000
89c71b2c  00000000 00006c00 00000000 00006c00
89c71b3c  00000000 8a270948 00000000 00000000
89c71b4c  00000000 89c71b40 89e60630 00000000
kd> dd 89e5fe7c 
89e5fe7c  89e6c53c 89c71adc 00000000 00000000
89e5fe8c  00000000 00000007 001f03ff 00000000
89e5fe9c  00000000 00000000 00000000 0001004f
89e5feac  74696157 0a050001 6e66744e 001c0707
89e5febc  00000000 00000000 89de6500 89de1ed0
89e5fecc  00000000 89d86420 89e2a330 00250005
89e5fedc  70627375 89dc7e48 89e65ee0 0000011c
89e5feec  00000100 00000001 00000000 02210004
kd> dd 89e6c53c 
89e6c53c  89de777c 89e5fe7c 00000000 00000000
89e6c54c  00000000 00000007 001f03ff 00000000
89e6c55c  00000000 00000000 00000000 0a05004f
89e6c56c  7346744e 00000001 b12435b8 00000000
89e6c57c  ba047001 00000000 89e6c584 89e6c584
89e6c58c  81f03400 0a060005 20646156 00003b20
89e6c59c  00003b9f 89e88c48 00000000 00000000
89e6c5ac  04000000 89e83a20 e2580c00 e2580ff8
kd> dd 89de777c 
89de777c  89c70f30 89e6c53c 00000000 00000000
89de778c  00000000 00000007 001f03ff 00000000
89de779c  00000000 00000000 00000000 0a05004f
89de77ac  6d665346 00000001 b124325c 00000000
89de77bc  00040001 00000000 89de77c4 89de77c4
89de77cc  0000003d 0a040005 70566343 8a2703a8
89de77dc  8a270420 8a270438 8a2703f0 8a2703d8
89de77ec  8a2703c0 0a270004 63536343 013002ff
kd> dd 89c70f30 
89c70f30  89e6c814 89de777c 00000000 bac8b300
89c70f40  00000006 001f0fff 00008000 00000000
89c70f50  7ffdb000 00000000 00000006 00000000
89c70f60  00000006 00000000 00000088 00000000
89c70f70  00000198 00000000 000001b0 00000000
89c70f80  00000998 00000000 00000000 00000137
89c70f90  00000000 89e38b30 d4d9d8b4 01cd2b29
89c70fa0  00010000 00000394 0000036f 0000036f
而且两者对应的差都是7C,符合EPROCESS中的偏移差
0x89e6c814  - 0x89e6c798   =  7C
89de05cc   -  89de0550  7C
完全符合,学习了wrk中可是知道具体这些东西是怎么操作,对应的进程也是这样的。所以普通的隐藏进程EPROCESS中的链去除掉就可以了。。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功