본문 바로가기

reversing55

DLL 이젝션이란 DLL 이젝션 (DLL Ejection)은 프로세스에 강제로 삽입한 DLL을 빼네는 기법입니다. 기본 동작원리는 CreateRemoteThread API를 이용한 DLL 인젝션(Injection)의 동작 원리와 같습니다. DLL 이젝션의 동작원리 CreateRemoteThread() API를 이용한 DLL인젝션의 동작원리는 아래와 같습니다 대상 프로세스로 하여금 LoadLibraray() API를 호출하도록 만드는 것 마찬가지로 DLL 이젝션의 동작원리도 아래와 같이 간단합니다. 대상프로세스로 하여금 FreeLibrary() API를 호출하도록 만드는 것 즉 CreateRemoteThread() 의 lpStartAddress 파라미터에 FreeLibrary() API주소를 넘겨주고, lpParameter.. 2022. 6. 13.
DLL 인젝션이란 DLL 인젝션이란 실행중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입하는 것입니다. 조금더 기술적으로 표현하자면 다른 프로세스에게 LoadLibrary() API를 스스로 호출하도록 명령하여 사용자가 원하는 DLL을 로딩(Loading)하는 것입니다. DLL인젝션이 일반적인 DLL로딩과 다른점은 로딩 대상이 되는 프로세스가 내 자신이냐 아니면 다른 프로세스냐 하는 것입니다. DLL인젝션 활용 예 LoadLibrary() API를 이용해서 어떤 DLL을 로딩하면 해당 DLL의 DllMain() 함수가 실행됩니다. DLL인젝션의 동작 원리는 외부에서 다른 프로세스로 하여금 Loadlibrary() API를 호출 하도록 만드는 것이기 때문에 (일반적인 DLL로딩과 마찬가지로) 강제 삽입된 DLL의 Dll.. 2022. 6. 13.
테크 맵 API 후킹의 모든 기술적 범주를 포함하는 테크 맵 Method Object Location Technique API static File 1) IAT 2) Code 3) EAT X X dynamic Process Memory 00000000 ~ 7FFFFFFF A) Debug (Interactive) DebugActiveProcess GetThreadContext SetThreadContext B) Injection (stand alone) B-1) Independant Code CreateRemoteThread B-2) DLL file Registry(AppInit_DLLs) BHO(IE only) SetWindowsHookEx CreateremoteThread 2022. 5. 26.
API 후킹 API 후킹이란 Win32 API 호출을 중간에서 가로채서 제어권을 얻어 내는것. API후킹의 이점 - API 호출 전/후에 사용자의 훅 코드를(Hook Code) 실행 시킬 수 있음 - API에 넘어온 파라미터 혹은 API 함수의 리턴 값을 엿보거나 조작 할 수 있음 - API 호출 자체를 취소시키거나 사용자 코드로 실행 흐름을 변경 시킬수 있음 후킹 목적에 따라서 원본 함수 호출 전/후에 사용자 코드를 실행 시키거나 원본 함수를 아예 호출하지 않는 등의 여러 가지 변형이 가능 합니다. 따라서 후킹 목적과 상황에 따라서 적절히 사용하면됨 이것이 바로 API후킹의 개본 개념. 2022. 5. 26.
NT header NT header NT header 구조체 IMAGE_NT_HEADER typedef struct _IMAGE_NT_HEADERS{ DWORD Signature; // PE signature : 50450000 ("PE"00) IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; 위 구조체는 32bit 용, 64bit용은 세번째 멤버가 IMAGE_OPTIONAL_HEADER64 임 IMAGE_NT_HEADER 구조체는 3개의 멤버로 되어있음 제일 첫 멤버는 Signature로서 50450000h ("PE"00) 값을 가집니다. (변경불가) 그리고 Fileh.. 2022. 5. 13.
PE DOS Header DOS Header typedef struct _IMAGE_DOS_HEADER{ WORD e_magic; // DOS signature : 4D5A ("MZ") WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e_minalloc; WORD e_maxalloc; WORD e_ss; WORD e_sp; WORD e_csum; WORD e_ip; WORD e_cs; WORD e_lfarlc; WORD e_ovno; WORD e_res[4]; WORD e_oemid; WORD e_oeminfo; WORD e_res2[10]; LONG e_lfanew; // offset to NT header } IMAGE_DOS_HEADER 구조체의 크기는 40h 임 여기.. 2022. 5. 12.
반응형