前言
记录一些有用的ida配置,下面提到的配置以如下版本为例(更多配置参考.cfg文件)
版本:Version 9.0.241217 Windows x64
IDA 官方博客:https://hex-rays.com/blog
文件位置
基本IDA配置 .\IDA Professional 9.0\cfg\ida.cfg
GUI配置 .\IDA Professional 9.0\cfg\idagui.cfg
反编译配置 .\IDA Professional 9.0\cfg\hexrays.cfg
ida.cfg
当前的用户自定义配置可以在cfg目录或ida根目录下创建idauser.cfg文件实现覆盖,不必直接修改ida.cfg。
| 配置 | 解释 |
|---|---|
SHOW_AUTOCOMMENTS = YES |
自动注释,添加助记符含义 |
OPCODE_BYTES = 4 |
显示指令/数据的原始字节(操作码),显示4字节,超出部分换行。(负值则是超出部分截断) |
SHOW_SP = YES |
显示行首的堆栈指针信息 |
MAX_ITEM_LINES = 25000 |
限制单个反汇编项(指令/数据)的最大显示行数,巨型数据块(如数组)可能导致界面卡顿 |
SHOW_XREFS = 4 |
显示 4 个交叉引用(其余按 Ctrl+X 展开) |
GRAPH_SHOW_LINEPREFIXES = YES |
启用流程图模式下的行前缀 |
GRAPH_SHOW_XREFS = 2 |
流程图模式下显示2个交叉引用 |
GRAPH_OPCODE_BYTES = 4 |
流程图模式下显示指令/数据的原始字节(操作码),显示4字节 |
STRLIT_PREFIX = "" |
IDA生成新名称时使用此前缀,这里置空即不要前缀 |
MAX_AUTONAME_LEN = 15 |
自动生成的名称的最大长度,最大511(有些汇编器无法处理长命名) |
PE_LOAD_RESOURCES = YES |
启用PE 文件资源段(.rsrc)的加载 |
ARM_NO_ARM_THUMB_SWITCH = NO |
不禁用ARM和THUMB的自动指令集切换 |
NameChars |
选择可用于命名的字符串,其中将Block_CJK_Unified_Ideographs的注释打开可以开启中文命名 |
DemangleNames = 1 |
显示命名修饰前的名字 |
上述配置创建为单独的idauser.cfg内容如下
SHOW_AUTOCOMMENTS = YES
OPCODE_BYTES = 4
SHOW_SP = YES
SHOW_XREFS = 4
MAX_ITEM_LINES = 25000
GRAPH_SHOW_LINEPREFIXES = YES
GRAPH_SHOW_XREFS = 2
GRAPH_OPCODE_BYTES = 4
STRLIT_PREFIX = ""
MAX_AUTONAME_LEN = 15
#ifdef __PC__
PE_LOAD_RESOURCES = YES
#endif
#ifdef __ARM__
ARM_NO_ARM_THUMB_SWITCH = NO
#endif
NameChars =
"$?@" // asm specific character
"_0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz",
// This would enable common Chinese characters in identifiers:
Block_CJK_Unified_Ideographs,
CURRENT_CULTURE;
DemangleNames = 1
idagui.cfg
同样的,这部分配置可以通过在cfg目录或ida根目录下创建一个idauserg.cfg文件来实现配置覆盖
| 配置 | 解释 |
|---|---|
AUTOSAVE = 20 |
当用户有20个动作后自动保存( 默认为100,数据库过大可能降低性能) |
ASK_EXIT_UNPACKED = NO |
不询问用户是否推出但是不打包数据库 |
ASK_EXIT = NO |
不询问用户是否退出,设定为NO后关闭后会直接保存 |
HISTORY_LENGTH = 15 |
File > Recent projects 列表中保留最近 15 个打开的数据库记录,最多100 |
上述配置创建为单独的idauserg.cfg内容如下
AUTOSAVE = 20
ASK_EXIT_UNPACKED = NO
ASK_EXIT = NO
HISTORY_LENGTH = 50
hexrays.cfg
这部分不存在用户配置,但是可以在cfg文件的最后一行添加#softinclude <hexraysuser.cfg>,即可实现加载hexraysuser.cfg用户配置。
官方文档:https://docs.hex-rays.com/9.0sp1/user-guide/decompiler/config
| 配置 | 解释 |
|---|---|
PSEUDOCODE_SYNCED = NO |
新建伪代码视图不与反汇编同步。如果开启同步,有时候返回的时候会因为和汇编的位置同步而导致返回的位置不在上一次点进去的位置 |
MAX_NCOMMAS = 0 |
允许复杂表达式包含任意数量的逗号(如 a = b, c = d, e = f),减少goto。默认值 8,超限会拆分代码为 goto 语句。 |
MAX_STRLIT_LENGTH = 8192 |
超过8KB的字符串显示为引用(如 &s_1234),默认 4096(4KB)。 |
MAX_FUNCSIZE = 8192 |
反编译函数最大尺寸限制,反编译小于8MB的函数,使其支持大函数反编译,但是会很慢。默认 64(64KB) |
COLLAPSE_LVARS = YES |
默认折叠局部变量声明块,隐藏变量定义,简化视图,按+可以打开。设为 NO 则始终显示完整声明。 |
AUTO_UNHIDE = YES |
跳转到隐藏代码块(如 [+ Hidden code])时自动展开内容 |
GENERATE_EMPTY_LINES = YES |
在代码块间生成空行, 提升 if/for 块和标签的可读性(类似代码格式化)。 |
PSEUDOCODE_SYNCED = NO
MAX_NCOMMAS = 0
MAX_STRLIT_LENGTH = 8192
MAX_FUNCSIZE = 8192
COLLAPSE_LVARS = YES
AUTO_UNHIDE = YES
GENERATE_EMPTY_LINES = YES



