如何在idapython中提取一个字节的输入文件偏移量?

逆向工程 艾达 蟒蛇
2021-06-24 10:27:46

对于每个选定的字节,Ida Pro 会在输入文件中显示可以找到该字节偏移量(显示在 Ida-View 和 Hex-View 的底部栏中)。使用 idapython API 时如何检索此信息?

1个回答

在查找函数时,您应该始终检查 SDK 标头。这两个列在loader.hpp

// Get offset in the input file which corresponds to the given ea
// If the specified ea can't be mapped into the input file offset,
// return -1.    
idaman int32 ida_export get_fileregion_offset(ea_t ea);    

// Get linear address which corresponds to the specified input file offset.
// If can't be found, then return BADADDR    
idaman ea_t ida_export get_fileregion_ea(int32 offset);

所以你可以像这样从 IDAPython 使用它们:

offset = idaapi.get_fileregion_offset(ea)
ea = idaapi.get_fileregion_ea(offset)

注意:并非所有 SDK 功能都在 Python 中公开。如果您绝对需要仅在 C API 中可用的东西,您可以使用ctypes调用它