0x00
最近在检查公司Client的时候发现句柄表中存在 Process <Non-existence Process>(9516)
与Thread <Non-existence Process>(9615): 17060
。
很明显,问题应该是CreateProcess之后没有将 PPROCESS_INFORMATION 相关的句柄关闭。于是搜索了下代码,发现至少对 Thread 句柄的处理十分干净。所以只能DUMP了进程,拉进Windbg分析。
0x01
使用 s –d 命令搜索了下内存,发现了一处可疑之处。
010f900c 00000838 00000d58 0000252c 000042a4
!handle 838 显示的是进程
!handle d58 显示的是线程
252c = 9516
42a4 = 17060
基本可以肯定是这里。
使用 !address 010f900c 分析下内存,发现是Heap。
继续 !heap -x 0x10f900C,得到以下输出:
0:000> !heap -x 0x10f900C
Failed to read heap keySEGMENT HEAP ERROR: failed to initialize the extention Entry User Heap Segment Size PrevSize Unused Flags
010f8f28 010f8f30 01050000 01050000 1d0 10 8 busy
可以看出010f8f30对应大小是1d0,使用dds命令检查 010f8f30,果然发现了点东西:
010f8f30 744a1c84 windows_s