能力值:
( LV15,RANK:310 )
|
-
-
2 楼
***********************************************
Enumerate process modules
These function return the module base address
long GetFirstModule(void);
long GetNextModule(long base);
***********************************************
Get process module name
base - the base address of the module
returns: required info or 0
string GetModuleName(long base);
***********************************************
Get process module size
base - the base address of the module
returns: required info or -1
long GetModuleSize(long base);
|
能力值:
( LV8,RANK:120 )
|
-
-
3 楼
楼上正解。
|
能力值:
( LV8,RANK:120 )
|
-
-
4 楼
PE文件获取内存中获取(加载后会保存的FS:0翻翻资料有几个月忘了应该是这个位置然后向下一点点)还有API获取?
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
多谢,但是我使用GetFirstModule怎么得到是FFFFFFFF,IDC代码如下:
auto base;
base = GetFirstModule();
Message("base = %08X\n", base);
输出:
base = FFFFFFFF
我现在是静态分析,并没有动态调试,是不是因为这个原因呢?
难道还需要先Enumerate process modules,然后再调用GetFirstModule ?
PS:我现在反汇编的是固件中非标准ELF结构二进制文件。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我在使用IDA pro动态调试一个x86程序时,执行上述脚本,结果就对了,结果如下:
base = 00400000
我现在并没有动态调试,仅仅是想在静态反汇编时获得基址。请问大家怎么写脚本?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
知道答案了,多谢大家。
使用IDAPython函数 idaapi.get_imagebase()
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
FirstSeg(); 回复时间有误?
|
|
|