拆解二进制文件时,IDA反编译器会将调用反编译为mmap(0x80000000, 4096, 7, 50, -1, 0);。反编译本身没有什么问题,但将flags值解码为已知助记符的OR-ed表达式(例如MAP_SHARED|MAP_PRIVATE(如mmap的手册页中所述)。可以做些什么来帮助IDA进行显示吗(当然,除了自己写一个插件)?

#1 楼

在IDA中,您可以通过枚举视图(shift + F10)定义枚举。枚举设置了“位域”位(可以在枚举编辑和创建对话框中找到具有相同名称的复选框)。无法为具有重叠成员位的枚举设置此位。

一旦枚举是位域枚举,则在反汇编视图中将任何操作数设置为该枚举都会显示立即数中设置的所有枚举成员

如果函数原型对变量类型使用枚举名称,IDA会尝试自动将使用它的操作数设置为相同的枚举,尽管这种情况并非总是如此。 > IIRC MAP枚举已经映射到IDA的已知枚举中,因此添加它应该很容易,并且无需手动定义。

评论


这些标志在预处理器#define中定义。因此,必须使用枚举创建头文件。

– Biswapriyo
18年7月8日在14:04

我将在IIRC中编辑该枚举,该枚举专门在IDA的类型库中定义。

– NirIzr
18年7月8日在14:05