IDA Pro配置与笔记
自存一些设置,应该大概还会更新
更新了一些诊断技巧
设置
字体字号
窗口字体
点options-font,字体设置consolas,字号14
其他字号
在IDA目录里找到\themes,这下面是各个主题文件夹,按需修改,我这就改base了,打开_base里的theme.css,编辑设置
两个字体里都只有颜色设置,加上字号设置font-size: 14px;
,字号自己调
保存后重启IDA,嗯不行
IDA 的皮肤主题虽然是 Qt QSS (CSS),但 theme.css 并不会全局覆盖所有字体,因为 IDA 在启动时还会强制加载默认字体配置。QWidget { font-size: … } 在某些地方有效,但 IDA 很多界面(反汇编、寄存器、输出窗口)是用 CustomIDAMemo 或专门的控件类,这些类的字体大小不是从 QSS 继承的,而是从 系统字体 / ida.cfg / idaq.ini 里读取的。
如果你坚持用 theme.css,那要针对每个控件类单独加 font-size
在theme.css里加上以下代码:
QWidget {font-size: 14pt;
}TextEdit { /* 反汇编/十六进制/图窗口 */font-size: 14pt;
}MainMsgList { /* 输出窗口 */font-size: 14pt;
}TCpuRegs { /* 寄存器窗口 */font-size: 14pt;
}TChooser { /* Functions/Strings/Names 窗口 */font-size: 14pt;
}
看起来很不错就这样吧(把窗口字号调成16了)
大概是一些诊断技巧
重启IDA新开一个数据库
可能是这个数据库有问题,没加载完整什么的
打开另一个已知是好的二进制文件测试相同操作
能判断是IDA有问题还是这个二进制文件有问题
临时隔离插件
在IDA目录的plugins
下新建一个disabled_plugins
文件夹,把报错的或者怀疑有问题的(或者干脆所有)插件文件移进去隔离,重新启动IDA打开同一个数据库,再执行之前有问题的操作,看问题是否解决
这样能判断是不是某些插件带来的问题
查完可以移回去
(据说这个方法蛮有效的)
设置诊断日志
随便找个地方(比如桌面)新建一个诊断脚本ida_diag.py,放入以下代码:
(out那行设置的是日志输出的文件,后面是测试的一些项,都可以调)
# ida_diag.py
import idaapi, idc, idautils, sys, os
out = r"D:\\Default\\Desktop\\CVE-2025-25257\\ida_diag_out.txt" if os.name == 'nt' else os.path.expanduser("~/ida_diag_out.txt")
with open(out, "w", encoding="utf-8") as f:f.write("IDA diag\n")try:f.write("ScreenEA: %s\n" % hex(idc.get_screen_ea()))f.write("IsDebuggerOn: %s\n" % idaapi.is_debugger_on())f.write("Autoanalysis state: %s\n" % (idaapi.auto_wait() if hasattr(idaapi, 'auto_wait') else "no-auto_wait"))except Exception as e:f.write("Exception while basic checks: %r\n" % (e,))try:f.write("Functions count: %d\n" % idaapi.get_func_qty())f.write("Segments:\n")for s in idaapi.get_segm_qty() and [idaapi.getnseg(i) for i in range(idaapi.get_segm_qty())] or []:f.write(" %s: start=%s end=%s perm=%s\n" % (idaapi.get_segm_name(s.start_ea), hex(s.start_ea), hex(s.end_ea), hex(s.perm)))except Exception as e:f.write("Exception listing segments: %r\n" % (e,))try:f.write("Loaded plugins path: %s\n" % idaapi.get_plugins_dir())except Exception:passf.write("Done\n")
print("diag script finished, wrote to: " + out)
在IDA中点File-Script file,选择刚刚建的脚本文件
output window提示跑完了,打开输出的日志文件查看
bug
View-Graphs-Function calls失败
没有反应,只有一个小窗口一闪而过,output window没有任何输出。录屏查看小窗口内容,是提示正在生成call chart
使用上面的诊断日志,输出:
没查出问题。烦,先不搞了