x64dbg에 있는 여러 가지 기능들을 편하게 쓰기 위해서는 단축키를 외우는 것이 중요하다. > 1. F2 소프트웨어 브레이크 포인트를 걸 때 사용하는 단축키, 이미 브레이크 포인트가 걸려있는 주소에서 누를 경우 브레이크 포인트를 삭제합니다. F7 어셈블리 코드를

출처 - TCPSCHOOL.commain 함수가 호출되어 main 함수의 스택 프레임이 스택에 저장된다.func1 함수를 호출하면서 func1 함수의 스택 프레임이 스택에 저장된다.func2 함수를 호출하면서 func2 함수의 스택 프레임이 스택에 저장된다.스택의 특성

Portable Executable File로 Windows 운영체제에서 사용되는 실행 파일OBJ를 제외한 모든 파일은 실행 가능1\. Dos Header ~ Section Header : PE Header2\. Section + NULL : PE Body --> 여기

Import Address Table의 약자로 Windows 운영체제의 핵심 개념인 DLL, memory, process 구조 등에 대한 내용이 함축 --> 어떤 라이브러리에서 어떤 함수를 사용하고 있는지 기술한 테이블프로그램에 라이브러리를 포함시키지 말고 별도의 파일

구조체의 크기 : 40h 1\. e_magic : Dos Signature로 "MZ"가 나옴2\. e_lfanew : NT header의 offset으로 가변적1\. 필수적인 헤더는 아니고 옵션으로 DOS 환경에서 실행하면 빨간 줄인 "This program canno

📌 UPX 패킹 전과 후의 PE Format 비교 비교점 PE header의 크기는 동일 섹션 이름 변경 (".upx0",".upx1") ".upx0"의 RawDataSize=0 EP는 ".upx1"에 위치 .rsrc는 거의 변하지 않음 압축해제 압축된 코드를

PE 파일이 ImageBase에 로딩되지 못하고 다른 주소에 로딩될 때 수행되는 일련의 과정프로그램에서 하드코딩된 주소 위치를 찾는다.하드코딩된 주소들의 offset을 모아놓은 Base Relocation Table을 확인한다.Base Relocation Table =

실행 압축기 종류 중 하나로 PE 헤더를 독특하게 변형하는 기법으로 많은 PE 유틸리티들이 정상적으로 작동하지 못하게 한 이력이 있음.e_magic : 4D5A("MZ")로 정상적e_lfanew : 보통 DOS Header 크기 + DOS Stub 크기 = E0가 되는

Windows 운영체제는 GUI를 제공하고, Event Driven 방식으로 동작한다. 이런 이벤트가 발생할 때, OS는 메세지를 응용 프로그램으로 보낸다. 이런 메세지를 중간에서 엿보는 것을 Message Hooking이라고 한다.키보드 입력 이벤트가 발생하면 WM_

실행 중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입하는 것= 다른 프로세스에 LoadLibrary() API를 스스로 호출하도록 명령하여 원하는 DLL을 로딩하도록 하는 것참고사항프로세스에 DLL이 로딩되면 자동으로 DllMain() 함수가 실행된다. 그래서 D
DLL Injection의 반대로 프로세스에 강제로 삽입한 DLL을 빼내는 기법이다.CreateRemoteThread() API를 이용한 DLL Injection의 원리와 같다.1\. 대상 프로세스로 하여금 LoadLibrary() API를 호출하도록 한다.2\. 대상
상대방 프로세스에 독립 실행 코드를 삽입한 후 실행하는 기법 --> Thread Injection이라고도 얘기함DLL InjectionDLL을 통째로 상대방 프로세스에 삽입하면, 코드와 데이터가 같이 메모리에 존재하기 때문에 코드가 정상적으로 실행가능Code Injec

해당 코드는 ThreadProc() 함수를 어셈블리어에서 작성한 것이다. C언어로 작성된 것과 비교하고 싶으면 아래 링크로 가서 비교하면 된다. Code Injection스택 프레임 생성 --> 스택에 문자열들을 넣어서 ThreadProc() 함수가 종료될 때 스택을

📌 API Hooking이란? > Win32 API를 후킹하는 기술을 API 후킹이라고 한다. = Win32 API 호출을 중간에서 가로채서 제어권을 획득하는 것 📢 API이란? > 사용자 애플리케이션이 시스템 커널에 접근을 요청하기 위한 방법, Windows에서

디버그 이벤트의 종류이 중 디버깅에 관련된 이벤트는 EXCEPTION_DEBUG_EVENT이다. 이와 관련된 이벤트의 종류는 아래와 같다.각종 예외에서 디버거가 반드시 처리해야 하는 예외는 EXCEPTION_BREAKPOINT이다. BP를 구현하는 방법은 설치하는 코드

SetWindowTextW API와 SetDlgItemTextW API를 후킹하면 될 것이라고 가정한다.SetWindowTextW API의 정의를 보면 위와 같다. 해당 API는 창의 문자열을 변경하는 API로, 파라미터로 창 핸들(hWnd)와 문자열 포인터(lpStr

IAT Hookin : 프로세스의 특정 IAT 값을 조작하여 후킹하는 방식Code Patch : 실제 API 코드 시작 5바이트 값을 'JMP XXXXXXXX' 명령어로 패치하는 방식00422CF7에서 IAT의 주소인 48C69C에서 가리키는 값인 7C93D92E로 간
현재 실행 중인 모든 프로세스에 대해 API 후킹앞으로 실행될 모든 프로세스에 대해 API 후킹kernel32.CreateProcess(): 새로운 프로세스를 생성할 때 사용되는 API이 때 CreateProcessA는 ASCII 버전, CreateProcessW는 유