Windows
Load된 dll에서 함수주소까지(TEB->DLL)
dool2ly
2015. 10. 25. 17:45
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 = 원하는 함수!