HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPHEAPLIST, 3264);
if (hSnap == INVALID_HANDLE_VALUE)
{
printf("Error Snap\n");
return 0;
}
HEAPLIST32 heap;
HEAPENTRY32 HeapEntry;
HeapEntry.dwSize = sizeof(HeapEntry);
heap.dwSize = sizeof(heap);
BOOL bResultFlg = Heap32ListFirst(hSnap, &heap);
BOOL bHeapFlg;
if (bResultFlg)
{
do
{
bHeapFlg = Heap32First(&HeapEntry, heap.th32ProcessID, heap.th32HeapID);
if (bHeapFlg)
{
do
{
printf("Address = %X, size = %d\n", HeapEntry.dwAddress, HeapEntry.dwBlockSize);
bHeapFlg = Heap32Next(&HeapEntry);
} while(bHeapFlg);
printf("\n\n");
}
bResultFlg = Heap32ListNext(hSnap, &heap);
} while(bResultFlg);
}
CloseHandle(hSnap);
WINDOWS进程堆枚举
最新推荐文章于 2019-06-11 11:09:32 发布