C 4

IAT Hiding

IAT(Import Address Table) 이란, 사용된 함수와 이를 내보내는 DLL과 같은 PE 파일에 관한 정보가 포합되어 있는 표입니다.이러한 정보는 signature가 될수 있고, 또한 detect될 수 있기 때문에 IAT 에서 사용된 함수를 숨기는 작업을 해보겠습니다.IATPE(Portable Excutable)헤더란, 32-bit, 64-bit windows 운영체제에서 사용되는 file format의 헤더를 의미합니다.ex) .exe, .dll이 PE 헤더에는 IAT라는 table이 있는데 이 table에 앞서 설명드린 프로그램에서 사용되는 함수의 목록과 DLL의 정보가 있습니다.PeParser로 뜯어본 IAT입니다. GetProcAddress 같은 함수들이 보입니다.EDR은 이 IAT를..

IT 2026.05.30

Classic APC Injection

APC(Asynchronous Procedure Call) 이란, Windows Thread 가 대기 상태에서 사용자 정의 함수를 실행할 수 있는 메커니즘 입니다.이 기능을 이용해 타겟 스레드 컨텍스트에서 쉘코드를 실행시키는 기법이 APC Injection 입니다.APC(Asynchronous Procedure Call)모든 Thread가 APC function을 실행할 수 있는 것은 아닙니다.Alertable state에 있는 Thread만 APC function을 실행할 수 있습니다.Alertable state thread 는 대기 상태의 Thread를 의미합니다. Thread가 alertable state에 들어가면 Alertable thread queue에 들어가고, queue된 APC funct..

IT 2026.05.25

API Hooking with Custom structure

API Hooking 을 진행하는데 있어 여러가지 methods 가 있지만, 오늘은 Custom Structure를 이용해 API hooking을 해보겠습니다.Custom Structuretypedef struct _HookSt { PVOID pFunctionToHook; PVOID pFunctionToRun; BYTE pOriginalBytes[TRAMPOLINE_SIZE]; DWORD dwOldProtection;} HookSt, *PHookSt;우선, 보다 쉽게 구현하기 위해 structure를 만들어 줍니다.PVOID pFunctionToHook - hooking할 function의 주소입니다.PVOID pFunctionToRun - 실행할 function의 주소입니다.BYTE OriginalBy..

IT 2026.05.24