반응형

공부해요 108

31. 디버거 이야기

OllyDbg http://www.ollydbg.de OllyDbg v1.10www.ollydbg.de편리하고 가볍고 빠르고 무료임 근데 32비트에서만 됨 IDA Pro http://www.hex-rays.com/idapro ida-proDiscover IDA Pro, the industry standard for code analysis and vulnerability research. Powerful disassembler, debugger, and decompiler in one tool. Get started now!hex-rays.com현재 최고의 디스어셈블러 디버건데 비쌈 복잡함 초기 로딩 시간도 많이걸림 WinDbg https://learn.microsoft.com/ko-kr/windows-..

30. 메모장 WriteFile() 후킹

디버거(Debugger) - 디버깅 프로그램 디버기(Debuggee) - 디버깅 당하는 프로그램 디버거 기능 디버기가 올바르게 실행되는지 확인하고 예상치 못한 프로그램의 오류를 발견하는 것 디버거의 동작 원리 디버거 프로세스로 등록되면 운영체제는 디버기에서 디버그 이벤트가 발생할 때 디버기의 실행을 멈추고 해당 이벤트를 디버거에게 통보 exception도 디버그 이벤트에 해당된다. 만약에 디버깅 중 아니였으면 그냥 자체예외처리 아니면 OS의 예외 처리 루틴이 됨. 디버그 이벤트 종류 • EXCEPTION_DEBUG_EVENT: 요게 디버깅 관련 이벤트.. • CREATE_THREAD_DEBUG_EVENT • CREATE_PROCESS_DEBUG_EVENT • EXIT_THREAD_DEBUG_EVENT •..

29. API 후킹: 리버싱의 '꽃'

후킹? 정보 가로채기, 실행 흐름 변경하기 -> 원래와는 다른 기능을 제공함 후킹의 과정 - 디스어셈블러/디버거를 이용해 프로그램의 구조와 동작 원리를 파악 - 버그 수정 또는 기능 개선에 필요한 훅(Hook) 코드를 개발 - 실행 파일과 프로세슷 메모리를 자유롭게 조작해 훅 코드 설치 Win32 API를 후킹하는걸 API 후킹이라 함. 메시지 후킹이랑 같이 젤 많이 사용된다. API란? 애플리케이션이 시스템 자원을 쓰려면 시스템 커널에 요청해야됨. 이 때 Win32 API를 이용한다. 실제 애플리케이션 코드 실행하려면 DLL 로딩되는데 모든 프로세스에는 기본적으로 kernel32.dll이 로딩되고 이거는 ntdll.dll을 로딩시킨다. API 후킹 Win32 API 호출을 중간에서 가로채서 제어권을 얻..

가상메모리 퀴즈

1. 페이지 폴트가 계속 발생하여 메모리 프레임에 페이지가 반복적으로 교체되고 디스크 입출력이 증가해 CPU 활용률이 떨어지는 것을 무엇이라 하는가?더보기스래싱 2. 페이지 폴트가 일어나는 이유가 무엇인가?더보기CPU가 액세스 하려는 페이지가 물리 메모리에 없어서 3. LRU를 구현하는 방식에 대한 설명으로 올바르지 않은 것은?① 페이지 번호를 스택에 넣어서 순서를 결정한다.② 카운터를 통해 각 페이지 항목에 사용 시간 레지스터를 붙이고 프로세스의 클록을 기준으로 사용 시간 레지스터를 업데이트해 가장 오래된 페이지를 찾는다③ 페이지마다 참조비트를 사용해 왼쪽으로 쉬프트하여 최근의 페이지를 찾는다.④ MFU는 가장 많이 사용한 페이지를 대치한다.⑤ 하드웨어적으로 구현이 어려운 경우, 모든 페이지에대해 참조..

가상메모리

가상 메모리 개념주소 공간과 물리 메모리 크기의 한계.. 큰 프로그램의 실행시 문제점?- 큰 프로세스가 물리 메모리 보다 큰 경우에..- 여러 프로세스들을 합친 크기가 물리 메모리보다 큰 경우에.. 가삼 메모리 개요가상 메모리가 왜 필요한가? 물리 메모리 한계를 극복하는 해결책이 됨가상 메모리 기법 핵심- 물리 메모리를 디스크 공간으로 확장: 프로세ㅐ스를 물리 메모리랑 보조기억장치에 나눠서함. 프로세스한테 큰 공간있는것처럼 착각 시킴- 스와핑: 물리 메모리가 부족할 대 실행에 필요하지 않은 부분은 디스크로 이동시킴, 실행 필요할때만 메모리로 이동 복습은 여까지만.. 가상 메모리 어떻게 구현하는가 -요구 페이징(demand paging)페이징 기법 토대로 프로세스의 일부 페이지들만 물리 메모리에 할당하고,..

28. 어셈블리 언어를 이용한 Code 인젝션

어셈블리 프로그래밍올리디버거에서 지원하는 assenble 기능을 이용해서 프로그래밍.. OllyDbg의 Assemble 명령asmtest.txt를 올리디버거로 열어서 코드 섹션의 맨 윗부분(401000) 봄여기 주소에 커서 올리고 마우스 우클릭해서 'New origin here[Ctrl+Gray]항목 누르면 EIP가 해당 주소로 변함 여기서 스페이스 누르면 어셈블 입력창 떠서 간단한 어셈블리 프로그래밍 할 수 있음  ThreadProc() 작성C로만든 ThreadProc()함수와의 차이점은 Code 사이에 필요한 Data를 포함하는 것CALL 명령어 넣고.. ASCII 항목에는 ReverseCore 문자열 넣음 이때 문자열은 반드시 NULL로 끝나야하 하니 hex 에서 00을 추가함..이 명령 하면 코드..

27. Code 인젝션

Code 인젝션상대방 프로세스에 독립 실행 코드를 삽입한 후 실행하는 기법일반적으로CreateRemoteThread() API를 이용해 원격 스레드의 형태로 실행하므로 Thread 인젝션이라도고 함. DLL 인젝션 vs Code 인젝션DWORD WINAPI ThreadProc(LPVOID lParam){ MessageBoxAa(NULL, "www.reversecore,com", "ReverseCore", MB_OK); return 0;}windows 메시지 박스 출력하는 코드 DLL인젝션이면 위에 코드를 DLL 파일 형태로 만들고 다른 프로세스에 인젝션하면됨 디버거로 열면 이렇게 나온다. 10009290, 1000929C 주소의 문자열을 확인하면 DLL의 데이터 섹션에 위치한 문자열을 가르키..

메모리 관리 퀴즈

1. 주소 공간을 랜덤 배치하도록하는 것은 무엇인가?더보기ASLR 2. 프로세스는 쪼개서 메모리에 떨어뜨려서 두어도 운영체제에서 변환하므로 분할하여도 상관없다. (참/거짓)더보기거짓하드웨어인 MMU가 변환함 3. 단편화로 인한 공간을 업애는 과정은 메모리 압축이라한다. 메모리압축의 문제 점 한가지를 서술하시오더보기축하는 동안 시스템은 모든일을 중지해야됨. 이때 대화형 사용자는 응답시간이 일정하지 않아서 실시간 시스템은 문제 발생할 수 있음. 메모리에 있는 작업들을 이동해야되니까 프로그램적재할 때 제거되는 대치 관련 정보를 액세스 가능한 형태로 보관해야됨.압축 작업을 자주 요구하니까 시스템 자원 소모가 크다..

메모리 관리

지역성의 원칙(principle of Locality)프로그램은 어떤 특정 시간에는 주소 공간 내의 비교적 작은 부분만을 접근시간적 지역성(Temporal Locality)한번 참조된 항목은 곧바로 다시 참조되는 경향공간적 지역성(Spatial Locality)어떤 항목이 참조되면 그 근처에 있는 다른 항목들이 곧바로 참조될 가능성 높음 컴구 복습 내용은 패스..   메모리 관리 메모리의 역할메모리는 실행하고자 하는 프로그램 코드와 데이터에 적재CPU는 메모리에 적재된 코드와 데이터를 처리실행시키려면 반드시 하드디스크에 있는거를 메모리로 가져와야한다. 운영체제에 의해 메모리 관리가 필요한 이유메모리는 공유 자원이기때문에 여러 프로세스 사이에 메모리 공유하고 각 프로세스에게 물리 메모리 할당아니까메모리는 ..

26. PE Tools

프로세스 메모리 덤프, PE 헤더 Editing, PE Rebuilding 기능 가짐 홈페이지: http://petools.org.ru다운경로: http://petools.org.ru/updates/pt_update_08_rc7.zip이라는데.. 사이트가 없어진듯 https://petoolse.github.io/petools/ PE ToolsPortable executable (PE) manipulation toolkitpetoolse.github.io 이걸로 받음 PE Tools 주된 목적은 프로세스 메모리 덤프   프로세스 메모리 덤프덤프란 메모리의 내용을 그대로 파일로 저장시킨다는 뜻주로 실행 중인 프로세스의 메모리 내용을 확인할 때 자주사용한다..실행 압축 파일의 경우 메모리에서는 압축 해제된 상..

반응형