| 
																		
 来由是这样的,我怀疑目标进程有可能有内存泄露,但不允许调试,我就用vmmap来看进程地址空间,每隔2小时看一次,隔一阵,发现多了一些private空间,如下 
6B040000   Private    21,600   44        28         28     22      Read/Write              6B040000 Private    4           4           4           4                 Read/Write              6B041000 Reserved   3,276                      
................. 
................ 
然后我自己写了一个程序用ReadProcessMemory把    6B040000 的头4k字节抓出来,初步分析,有如下 
6b040000  08 00 00 00 00 01 00 0c-ee  ff  ee  ff   00 00 00 00 
6b040010  00 00 2a 00 00 a0 37 00-00 00 04 6b 18 15 00 00  
开始怀疑ffeeffee是HEAP_SEGMENT,再看到后面字节002a0000就证实怀疑了, 
002A0000   Heap (Private) 64        64         64        64             1       Read/Write   Heap ID:    4                                                 
我用userdump抓了目标进程的内存映像,然后分析下面这个内存,果然如此 
    Heap entries for Segment12 in Heap 002a0000         6b040000: 00000 . 00040 [01] - busy (40)         6b040040: 00040 . 00fc0 [10] 
现在我非常想知道的是哪个线程在使用这个heap,我该如何查找?目标进程线程100多个,我不可能每个堆栈里面去搜索吧,还有我该搜索哪个dword,是6b040000?还是6b040040?还是002a0000? 
另外,目标进程知道是用c++写的,调用了new来分配,没有直接调用Heap相关api,只是没有目标进程的代码,请指点哈 
																		 
																	 |