ntdll.dll是加载的第一个系统DLL,它的模块信息:
名称 | 基址 | 大小 | 入口点 |
E:WINDOWSsystem32ntdll.dll | 7c920000 | 00093000 | 7c932c28 |
对应的内存块:
基址 | 分配基址 | 分配保护 | 大小 | 状态 | 保护 | 类型 |
7c920000 | 7c920000 | 00000080 PAGE_EXECUTE_WRITECOPY | 00001000 | 00001000 MEM_COMMIT | 00000002 PAGE_READONLY | 01000000 MEM_IMAGE |
7c921000 | 7c920000 | 00000080 PAGE_EXECUTE_WRITECOPY | 0007a000 | 00001000 MEM_COMMIT | 00000020 PAGE_EXECUTE_READ | 01000000 MEM_IMAGE |
7c99b000 | 7c920000 | 00000080 PAGE_EXECUTE_WRITECOPY | 00003000 | 00001000 MEM_COMMIT | 00000004 PAGE_READWRITE | 01000000 MEM_IMAGE |
7c99e000 | 7c920000 | 00000080 PAGE_EXECUTE_WRITECOPY | 00001000 | 00001000 MEM_COMMIT | 00000008 PAGE_WRITECOPY | 01000000 MEM_IMAGE |
7c99f000 | 7c920000 | 00000080 PAGE_EXECUTE_WRITECOPY | 00001000 | 00001000 MEM_COMMIT | 00000004 PAGE_READWRITE | 01000000 MEM_IMAGE |
7c9a0000 | 7c920000 | 00000080 PAGE_EXECUTE_WRITECOPY | 00013000 | 00001000 MEM_COMMIT | 00000002 PAGE_READONLY | 01000000 MEM_IMAGE |
7c9b3000 | 00000000 | 00000000 | 00bdd000 | 00010000 MEM_FREE | 00000001 PAGE_NOACCESS | 00000000 |
和exe略微有所区别,还是用dumpbin把它的文件内容导出来进行比较。
1.1 文件头
DLL和EXE文件一样都是PE格式,因此它们的文件头的结构是一样的,看看从ntdll.dll中dump出来的信息:
14C machine (x86)
4 number of sections
4802BDC5 time date stamp Mon Apr 14 10:13:25 2008
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
210E characteristics
Executable
Line numbers stripped
Symbols stripped
32 bit word machine
DLL
Windows为其分配了一块空间:
基址 | < 分配基址 |