首页
社区
课程
招聘
[求助]IDA 脚本获取设置image base?
发表于: 2015-3-9 15:52 8707

[求助]IDA 脚本获取设置image base?

2015-3-9 15:52
8707
请教大家怎么使用IDC 或者 IDAPython获得当前加载文件的Image base?
我知道菜单Edit -> Segment -> Rebase program中可以看到当前基址。

Thanks in advance!

PS:
有一个IDC 函数:
long RebaseProgram(long delta, long flags);
RebaseProgram可以设置新的基址,参数是相对位置,比如设置了delta为0x10,原来的基址为0x1000,则是新的基址为0x1010.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 363
活跃值: (338)
能力值: ( 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);
2015-3-9 16:26
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
楼上正解。
2015-3-10 00:39
0
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
PE文件获取内存中获取(加载后会保存的FS:0翻翻资料有几个月忘了应该是这个位置然后向下一点点)还有API获取?
2015-3-10 00:40
0
雪    币: 5459
活跃值: (2507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢,但是我使用GetFirstModule怎么得到是FFFFFFFF,IDC代码如下:
        auto base;
        base = GetFirstModule();
        Message("base = %08X\n", base);

输出:
base =  FFFFFFFF

我现在是静态分析,并没有动态调试,是不是因为这个原因呢?
难道还需要先Enumerate process modules,然后再调用GetFirstModule ?
PS:我现在反汇编的是固件中非标准ELF结构二进制文件。
2015-3-10 10:08
0
雪    币: 5459
活跃值: (2507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我在使用IDA pro动态调试一个x86程序时,执行上述脚本,结果就对了,结果如下:
base = 00400000

我现在并没有动态调试,仅仅是想在静态反汇编时获得基址。请问大家怎么写脚本?
2015-3-18 17:02
0
雪    币: 5459
活跃值: (2507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
知道答案了,多谢大家。
使用IDAPython函数 idaapi.get_imagebase()
2015-3-18 19:22
0
雪    币: 2
活跃值: (455)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
FirstSeg();
回复时间有误?
2020-5-27 22:27
0
游客
登录 | 注册 方可回帖
返回
//