본문 바로가기

PEB에서 로딩된 DLL 정보 찾기 악성코드에 포함된 Shellcode를 보면 원하는 DLL를 로딩하기 위해 PEB(Process Environment Blcok)에서 DLL의 Base Address를 가져온다. 이 과정을 윈도우 XP와 7으로 나누어 살펴보자. [윈도우 XP]먼저 PEB의 구조를 그림으로 나타내면 아래와 같다. PEB 구조체의 LDR 멤버는 _PEB_LDR_DATA 구조체의 포인터이다. 그리고 _PEB_LDR_DATA 구조체에는 양방향 연결 리스트인 _LIST_ENTRY 타입의 InLoadOrderMoudleList, InMemoryOrderModuleList, InInitializationOrderModuleList라는 세 가지 멤버를 가지고 있다. 이 멈버들은 각각 _LDR_DATA_TABLE_ENTRY 구조체의 In.. 더보기
그림으로 살펴 보는 PE File Format(IAT, EAT) 실습환경 : Windows 7 SP 1 실습대상 : notepad.exe PE File Format 중 PE Header와 IAT, EAT를 그림과 구조체로 설명하겠습니다. 구조체에 대한 설명은 중요한 구조체의 멤버 위주로 설명하겠습니다. (다르게 이야기하면 OS의 PE 로더에 따라 다르지만 일반적인 PE 로더에서는 필요가 없는 구조체 멤버입니다. 즉 해당 공간에 다른 Code 등이 존재해도 정상적으로 실행이될 수 있습니다. 이 부분은 PE 구조를 좀 더 공부하면 자세히 알 수 있습니다.) PE 관련 Tool이 많지만 공부하는 입장으로써 본 글에서는 Hex Editor(HxD)를 사용하여 Virtual Address가 아닌 File offset 위주로 살펴보겠습니다. (기본적인 PE File Format.. 더보기
[LOB] darkknight :: Return-To-Libc (RTL) User : darkknight문제 : bugbear bugbear.c의 소스코드는 다음과 같습니다. 12345678910111213141516171819202122232425262728/* The Lord of the BOF : The Fellowship of the BOF - bugbear - RTL1*/ #include #include main(int argc, char *argv[]){ char buffer[40]; int i; if(argc 더보기