둘둘리둘둘리둘둘리둘둘리둘둘리둘
Load된 dll에서 함수주소까지(TEB->DLL) 본문
FS:[18] |
|
*TEB |
TEB |
+0x30 |
*PEB (FS:[30]) |
PEB |
+0x0C |
*LDR |
LDR |
+0x14 |
*InMemoryOrderModuleList |
+0x1c | *InInitializationOrderModuleList | |
InMemoryOrderModuleList |
|
NextEntryLink |
|
+0x10 |
ImageBaseAddress |
|
+0x28 |
*BaseDllName |
InInitializationOrderModuleList | NextEntryLink | |
+0x08 | ImageBaseAddress | |
+0x20 | *BaseDllName | |
IMAGE_DOS_HEADER |
+0x3C |
Offset to IMAGE_NT_HEADERS |
IMAGE_NT_HEADERS |
+0x78 |
Export Table RVA |
IMAGE_EXPORT_DIRECTORY |
+0x1C |
Address Table RVA |
+0x20 | Name Pointer Table RVA | |
+0x24 | Ordinal Table RVA |
IMAGE_EXPORT_DIRECTORY를 베이스로 Name pointer table에서 찾는 함수이름 offset 카운트
->Ordinal Table에서 카운트*2(Ordinal Number크기가 2byte)
-> Address Table에서 Ordinal Number * 4(Address RVA크기가 4byte)
-> ImageBaseAddress + RVA = 원하는 함수!
'Windows' 카테고리의 다른 글
TEB에서 Heap영역 찾아가기 (0) | 2015.10.30 |
---|---|
PE header관련 구조체 (0) | 2015.10.17 |
PE 파일 구조 - 2 (0) | 2015.10.13 |
PE 파일 구조 - 1 (0) | 2015.10.13 |
FAT32의 저장방식 (0) | 2014.06.25 |
Comments