본문 바로가기

reversing

(86)
Debug Principle[디버거 구조와 원리] : 디버그 이벤트 디버그 이벤트의 종류에 대해서 검색하다가 알게 되었다.수많은 악성코드가 존재 한다.행위를 분석 할 때, 원본 바이너리를 얻기 힘든경우가 다수 있다.위와 같은 이벤트를 이용한 bp를 잘 걸고 분석하면 좀 더 수월하게 할 수있을것 같다.EX) 새로운 DLL이 로드 될 때, Injection 탐지 유용? 통신을 위한 Thread를 생성 되었을 때 언패킹 할 때, 메모리에 풀리는 데이터를 감지 할 때는 메모리 bpetc ... 1. CREATE_PROCESS_DEBUG_EVENT : 프로세스가 생성되었을 때 발생 2. EXIT_PROCESS_DEBUG_EVENT : 프로세스가 종료되었을 때 발생 3. CREATE_THREAD_DEBUG_EVENT : 스레드가 생성되었을 때 발생 4. EXIT_THREAD_DEB..
요구 페이지 처리[Demanding Page] 앞서 페이징에 관해서 알아 보았다.그러면 이런 페이지가 어떻게 처리 되는지에 대해서 알아보고자 한다.먼저 A라는 Process가 존재 한다. 이 프로세스가 동작하기 위해서는 메모리에 실행되어지는 부분의 페이지 조각이 올라 와있고, 이를 참조하여서 CPU가 연산을 할 것이다. 만약에 정말 만약에. 필요한 자원을 모두 메모리에 올리고 내리고 한다면 Context Swithcing이 발생 할때마다 어마 어마하게 많은 메모리가 IN-OUT을 해야한다.그러면.... OverHead는 이루 말할 수 없을 것이다.여기서 알 수 있는 것은 당시에 사용될 페이지 조각만 메모리에 올라 와있으면 대는 것이다. 이러한 개념이 요구 페이징[Demand Paging] 개념이다.그러면 필요한 페이지 조각만 딲딲 메모리에 올라와 있..
함수 프롤로그 보호되어 있는 글입니다.
main CRT Setup함수 보호되어 있는 글입니다.
stdin, stdout 보호되어 있는 글입니다.
windbg 보호되어 있는 글입니다.