본문 바로가기

전체 글

(270)
Hardware Breakpoint 까지 이론, 함수 정리 하드웨어 브레이크 포인트는 CPU 디버그 레지스터의 특정 비트 값을 이용한다.하드웨어 브레이크 포인트를 구현 할 때 가장 중요한 점은네 개의 디버그 레지스터 중에서 어느 레지스터가 사용중이고 어느 레지스터가 사용 가능한 상태인지 항상 알고 있어야 한다는 것이다.--> 항상 사용 가능한 디버그 레지스터를 이용해 하드웨어 브레이크 포인트를 설정하는지 확인 해야 함--> 사용 중인 레지스터를 사용할 경우 디버거가 엉킬 수 있음 1. 프로세스 내의 모든 쓰레드 리스트를 구한다.2. 각 쓰레드의 CPU 컨텍스트 레코드를 구한다.3. 구한 쓰레드의 모든 context 레코드의 디버그 레지스터 중 하나 (DR0 ~ DR3 중 사용 가능한 디버그 레지스터) 에 원하는 브레이크 포인트 주소 설정4. DR7 레지스터의 비..
Soft Breakpoint 까지의 이론 정리 소프트 브레이크 포인트를 설정하려면 프로세스의 메모리를 읽고 쓸 수 있어야 하는데, 이를 위해 ReadProcessMemory() 함수와 WriteProcessMemory() 함수를 이용한다.아래는 두 함수의 프로토 타입이다. BOOL WINAPI ReadProcessMemory( HANDLE hProcess , LPCVOID lpBaseAddress, LPVOID lpBuffer‘, SIZE_T nSize, SIZE_T* lpNumber‘OfBytesRead ); BOOL WINAPI riteProcessMemory( HANDLE hProcess , LPCVOID lpBaseAddress , LPCVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumber OfBytes itten..
14.9 ~ 15.1 모두 수고하셨습니다. 영재원을 처음 갔을 때 인성교육부터라온에서 실시한 방학 집중 교육 까지입학할 때는 그저 설레기만 했는데 지금은 수료하고 나니 뿌듯합니다. 서울여대 정보보호 영재교육원 1기 고등 전문 1반 모두 수고하셨습니다 :)
Memory Breakpoint 까지의 소스 파이썬 해킹 프로그래밍 3장 최종 소스.참 여러 삽질 끝에 도달했다. my_debugger.py # -*- coding: cp949 -*- from ctypes import * from my_debugger_defines import * kernel32 = windll.kernel32 class debugger(): def __init__(self): self.h_process = None self.pid = None self.debugger_active = False self.h_thread = None self.context = None self.exception = None self.exception_address = None self.breakpoints = {} self.first_breakpo..
Hardware Breakpoint 까지 소스 이 이외의 소스는 변경되지 않았기에, 업로드 하지 않았다. (my_debugger_defines.py , printf_loop 등) my_debugger.py # -*- coding: cp949 -*- from ctypes import * from my_debugger_defines import * kernel32 = windll.kernel32 class debugger(): def __init__(self): self.h_process = None self.pid = None self.debugger_active = False self.h_thread = None self.context = None self.exception = None self.exception_address = None self...
Soft Breakpoint 까지의 소스들 my_debugger.py # -*- coding: cp949 -*- from ctypes import * from my_debugger_defines import * kernel32 = windll.kernel32 class debugger(): def __init__(self): self.h_process = None self.pid = None self.debugger_active = False self.h_thread = None self.context = None self.exception = None self.exception_address = None self.breakpoints = {} self.first_breakpoint = True # Here let's determine and s..
파이썬 해킹 프로그래밍 서적 오류 수정 다음은 Fandu 형이 정리하신"파이썬 해킹 프로그래밍" 서적에 대한 오류 정리 글을 퍼온 것이다.출처 : http://fandu.tistory.com/entry/Gray-Hat-Python%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%95%B4%ED%82%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B1%85%EC%97%90-%EC%9E%88%EB%8A%94-%EC%98%A4%EB%A5%98-%EB%B0%8F-%ED%95%B4%EA%B2%B0%EB%B2%95%EB%B2%95-%EC%A0%95%EB%A6%AC 절대 내가 쓴것이 아님을 다시 한번 밝힌다. 출처출처출처출처출처출처출처출처출처출처출처출처 Grat Hat Python을 공부해 보신 분이..
메타스플로잇 익스플로잇 추가 방법(raon00) 보호되어 있는 글입니다.