windows null page allocation

개발새발 2011.05.17 22:30 posted by jz-


#include 

typedef DWORD (__stdcall *NTALLOCATEVIRTUALMEMORY)( DWORD handle,
											IN OUT PVOID baseaddr,
											DWORD zerobits,
											IN OUT PULONG size,
											DWORD type,
											DWORD protect ); 

void main()
{
	NTALLOCATEVIRTUALMEMORY NtAllocateVirtualMemory;
	
	NtAllocateVirtualMemory = (NTALLOCATEVIRTUALMEMORY)GetProcAddress( 
		GetModuleHandle( "ntdll.dll" ),
		"NtAllocateVirtualMemory" );
	
	DWORD addr = 1;
	DWORD size = 0x1000;
	DWORD stat = 0;
	
	stat = NtAllocateVirtualMemory( (DWORD)0xffffffff, 
		&addr, 
		0, 
		&size, 
		MEM_COMMIT | MEM_RESERVE, 
		PAGE_EXECUTE_READWRITE );
	
	DWORD *ptr = NULL;

	// ptr is null page memory

	*ptr = 10;
	*((BYTE*)NULL) = 'a';

}









여행가고 싶네요





  1. Commented by chpie at 2011.05.21 18:07 신고

    오 신기하네요 ㅎㅎㅎ

  2. Commented by vbdream at 2011.05.26 01:21 신고

    와... 신기하네요~~ ㅋㅋ

    오래간만이십니다~ 잘 지내시죠? ^^;;

  3. Commented by kkamagui at 2011.08.14 12:59 신고

    엇.... 잠시 마지막 줄의 코드를 보고 고민하다가 갑자기 깜짝 놀랐습니다. @0@

    이런 방법이 있다니... 완전 신기하군요. @0@)-b

    좋은 글 잘 보고 갑니다. ^^

  4. Commented by fullc0de at 2011.09.19 22:26 신고

    내눈에 띄는건..
    </windows.h>

    close tag가..

    • Commented by jz at 2011.09.20 23:48 신고

      ㅋㅋ 저 플러그인이 달아주는듯...
      요샌 많이 바쁘냐
      내사촌도 그회사 갔다 ㅋㅋ