能力值:
( LV8,RANK:130 )
|
-
-
2 楼
从PEB里应该可以找到一点东西吧。
lkd> dt_LDR_DATA_TABLE_ENTRY
nt!_LDR_DATA_TABLE_ENTRY
+0x000 InLoadOrderLinks : _LIST_ENTRY
+0x008 InMemoryOrderLinks : _LIST_ENTRY
+0x010 InInitializationOrderLinks : _LIST_ENTRY
+0x018 DllBase : Ptr32 Void
+0x01c EntryPoint : Ptr32 Void
+0x020 SizeOfImage : Uint4B
+0x024 FullDllName : _UNICODE_STRING
+0x02c BaseDllName : _UNICODE_STRING
+0x034 Flags : Uint4B
+0x038 LoadCount : Uint2B
+0x03a TlsIndex : Uint2B
+0x03c HashLinks : _LIST_ENTRY
+0x03c SectionPointer : Ptr32 Void
+0x040 CheckSum : Uint4B
+0x044 TimeDateStamp : Uint4B
+0x044 LoadedImports : Ptr32 Void
+0x048 EntryPointActivationContext : Ptr32 Void
+0x04c PatchInformation : Ptr32 Void
DllBase和SizeOfImage应该就是你要的。
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
感谢xPLK
我找了PEB的资料 写代码测试了一下 DllBase和SizeOfImage这个不是我想要的
这两个值CreateToolhelp32Snapshot遍历进程模块可以得到
我要的是进程中某个模块的代码段基址及大小
例如顶楼截图中的0x01001000和0x00008000
|
能力值:
( LV13,RANK:1664 )
|
-
-
4 楼
根据DllBase以及各个节的属性及其地址和大小就可以判断了吧
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
感谢xym
另外我还有个问题不太确定
可能有这种情况.
PE文件是加了壳的.在装载到内存中后,区块信息被恢复到未加壳前的状态.那么通过文件得到的区块信息就不可用.
我的问题是在pe文件装载进内存后,其pe文件头是不是总在固定的位置,如基址到基址+0x1000的位置,还是会有特殊情况,特殊情况下如何定位PE文件头..
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
用 VirtualQueryEx 就行了
|
|
|