본문 바로가기

리버싱3

Debug 디버거: 디버깅 프로그램 디버기: 디버깅 당하는 프로그램 디버거 기능 - 디버기가 올바르게 실행되는지 확인하고 프로그램의 오류를 발견하는것디버거는 디버기의 명령어를 하나씩 실행할수 있으며, 레지스터와 메모리에 대한 모든 접근권한을 가짐 디버거 동작 원리디버거 프로세스로 등록되면 OS는 디버기에서 디버그 이벤트가 발생할때, 디버기의 실행을 멈추고 해당 이벤트를 디버거에게 통보한다. 디버거는 해당 이벤트에 대해 적절한 처리후 디버기의 실행을 재개할수 있다. 일반적인 예외도 디버그 이벤트에 해당해당 프로세스가 디버깅 중이 아니었다면 디버그 이벤트는 자체 예외 처리 혹은 OS의 예외 처리 루틴에서 처리 디버거는 디버그 이벤트중에서 처리할수 없거나 관심없는 이벤트들은 OS가 처리하도록 만들어줌 디버그 이벤트 중에.. 2020. 3. 22.
API 후킹 방식 Where? IAT (Import Address Table ): IAT에 있는 API 주소를 후킹 함수 주소로 변경하는 방법 장점 - 가장 단순함, 구현방법이 가장 쉬움단점 - IAT에 없는데 프로그램에서 사용되는 API의 경우 후킹불가능 (예 - DLL을 동적으로 로딩해서 사용하는 경우 ) code : 프로세스 메모리에 매핑된 시스템 라이브러리 (DLL)에서 API의 실제 주소를 찾아가 코드를 직접 수정해버리는 방법 * 가장 널리 사용되는 방법 구현에 있어서 다양한 옵션이 존재 - 시작 코드를 JMP명령어로 패치하는 방법- 함수 일부를 덮어쓰는 방법- 필요한 부분만 일부 변경하는 방법 EAT: DLL 의 EAT ( Export Address T.. 2020. 3. 22.
후킹이란? 후킹이란? 정보를 가로채고, 실행흐름을 변경하고, 원래와는 다른 기능을 제공하게 하는 기술 디스어셈블러/디버거를 이용하여 프로그램의 구조와 동작원리를 파악버그수정 또는 기능 개선에 필요한 훅(Hook) 코드를 개발실행파일과 프로세스 메모리를 자유롭게 조작하여 훅 코드 설치 Win32 를 후킹 하는 기술 = API 후킹( User 모드 후킹 중 , 메시지 후킹과 함께 가장 널리 사용되는 기술) API 란?windows OS 는 사용자 애플리케이션이 시스템 자원(메모리, 파일, 네트워크 ,비디오, 사운드, 기타) 을 사용하고 싶을때직접 접근할 수 있는 권한이 없다.=> OS가 직접관리 함 = 안정성, 보안, 효율 기타 문제로 사용자 직접 접근 권한을 막아놨음이럴때, 사용자는 시스템.. 2020. 3. 22.