전산쟁이의 카피질
뒤로
검색
글목록
댓글
트랙백
방명록
메모리 주소만으로 Heap에서 해당 타입의 크기와 배열 인자의 개수를 알아내는 방법
2009/03/04 20:01
#include <Tlhelp32.h> int GetVoidPointerSize(void *nPoint) { int pid = (int)GetCurrentProcessId(); HANDLE hSnap; HEAPLIST32 hl; HEAPENTRY32 he; hSnap = CreateToolhelp32Snapshot( TH32CS_SNAPHEAPLIST, pid ); if( hSnap == (HANDLE)-1 ){ return 0; } hl.dwSize=sizeof(HEAPLIST32); if (Heap32ListFirst(hSnap,&hl)) { do { he.dwSize=sizeof(HEAPENTRY32); if (Heap32First(&he,pid,hl.th32HeapID)) { do { if( he.dwAddress == (DWORD)nPoint ) { // get kernel heap allocation chunk size char *t = (char*)(((unsigned char*)he.dwAddress) - 2); return he.dwBlockSize - *(t); } } while (Heap32Next(&he)); } } while (Heap32ListNext(hSnap,&hl)); } CloseHandle(hSnap); return 0; }
이전 페이지
댓글 보기 (0)
트랙백 보기 (0)
다음 페이지
이 페이지는 Textcube 1.10.0 : beta 1 로 구동됩니다
데스크탑 화면