둘둘리둘둘리둘둘리둘둘리둘둘리둘
@디버깅 이벤트(Debugging Events) Event Code Event Code Value Union u Value 0x01 EXCEPTION_DEBUG_EVENT u.Exception 0x02 CREATE_THREAD_DEBUG_EVENT u.CreateThread 0x03 CREATE_PROCESS_DEBUG_EVENT u.CreateProcessInfo 0x04 EXIT_THREAD_DEBUG_EVENT u.ExitThread 0x05 EXIT_PROCESS_DEBUG_EVENT u.ExitProcess 0x06 LOAD_DLL_DEBUG_EVENT u.LoadDll 0x07 UNLOAD_DLL_DEBUG_EVENT u.UnloadDll 0x08 OUTPUT_DEBUG_STRING_EVENT..
@메모리 브레이크 포인트(Memory Breakpoints) 메모리 브레이크 포인트는 실제로 전혀 브레이크포인트가 아니다. 메모리 브레이크 포인트를 설정할때 디버거는 메모리의 영역(또는 page)의 권한을 변경한다. 메모리 페이지(Memory page)는 OS에서 처리하는 메모리의 가장 작은 단위이다. 메모리 페이지가 할당되면 할당된 메모리 페이지는 특정 접근권한이 세트된다. 메모리 페이지 권한(Memory page permissions) - Page execution실행가능권한, 만약 프로세스가 페이지에 읽거나 쓰려고하면 Access violation을 발생시킨다. - Page read프로세스가 페이지에서 읽어오기만 가능하게한다. 읽거나 실행시키려하면 Access violation. - Page wri..
@하드웨어 브레이크 포인트(Hardware Breakpoints) Debuggee 프로세스를 수정할 수 없을경우(Software breakpoints를 사용할수 없을경우) instruction의 수정 없이 사용할 수 있는 하드웨어 브레이크 포인트가 유용하다. 하드웨어 브레이크 포인트는 debug registers 라는 특수한 레지스터에 CPU레벨에서 셋트되며, 하드웨어 브레이크 포인트를 셋트하고 관리하는 debug registers는 DR0에서 DR7까지가 있다. DR0~DR3 : 브레이크 포인트 주소를 위해 예약됨DR4, DR5 : ReservedDR6 : Status register, 하드웨어 브레이크 포인트에의해 디버깅 이벤트 발생시 셋팅됨DR7 : 다른 브레이크 포인트의 상태를 저장 (하드웨어 브..
@C - Python - ctype 데이터 타입 C Type Python Type ctypes Type char 1-character string c_char wchar_t 1-character Unicode string c_wchar char int/long c_byte char int/long c_ubyte short int/long c_short unsigend short int/long c_ushort int int/long c_int unsigned int int/long c_uint long int/long c_long unsigned long int/long c_ulong long long int/long c_longlong unsigned long long int/long c_ulonglo..
ROPeMe (ROP Exploit Made Easy) ropshell.py를 이용하여 ROP 구성시 필요한 가젯을 쉽게 찾을수있도록 해줌exploit생성시 유용한 모듈들도 있는것같음 설치 1. 아래 파일 다운로드 후 압축해제(tar -xvf) 2. ropeme-bhus10 디렉토리 내부 distorm-1.7.30.tar.gz 압축해제(tar -xvf) 3. distorm-1.7.30의 setup.py #./setup.py build#./setup.py install 이후 /ropeme-bhus10/ropeme/ropshell.py 사용하면됨 공식 다운로드 링크http://ropshell.com/ropeme/ 사용법 링크http://ropshell.com/howto