x64dbg 收藏工具菜单 AddFavouriteTool 命令:为 Favourites 菜单添加自定义工具与快捷键

发布时间:2026/9/19 22:36:59
x64dbg 收藏工具菜单 AddFavouriteTool 命令:为 Favourites 菜单添加自定义工具与快捷键 x64dbg 收藏工具菜单 AddFavouriteTool 命令为 Favourites 菜单添加自定义工具与快捷键【免费下载链接】x64dbgAn open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.项目地址: https://gitcode.com/gh_mirrors/x6/x64dbg导读AddFavouriteTool是 x64dbg 调试器中用于向Favourites收藏菜单添加自定义外部工具的脚本/命令行指令配合其姊妹命令AddFavouriteCommand、AddFavouriteToolShortcut以及图形界面中的 Manage Favourite Tools 对话框可以把常用的外部工具、调试脚本和内部命令收纳进菜单并绑定全局快捷键。阅读本文后你将掌握在 x64dbg 中通过命令行为 Favourites 菜单添加工具含%PID%、%DEBUGGEE%、%MODULE%、%-{...}-%占位符替换、设置工具描述与快捷键、管理菜单条目的完整方法并理解其底层存储与启动机制。命令概览AddFavouriteTool的完整命令原型如下AddFavouriteTool arg1 [arg2]其中arg1必填工具的可执行文件完整路径例如C:\Tools\peid.exearg2可选工具的描述文字。设置后该描述会显示在 Favourites 菜单中替代完整的路径。重要占位符说明路径中可以使用%PID%特殊占位符在工具启动前会被替换为被调试进程的 PID。这意味着你可以在同一收藏项中动态传入当前调试会话的进程 ID例如C:\Tools\procdump.exe -accepteula -ma %PID% dump.dmp。结果变量该命令不设置任何结果变量执行成功与否通过命令是否返回true命令框不报错来体现。参数解析的源码实现在 src/dbg/commands/cmd-gui.cpp 中命令的回调函数cbInstrAddFavTool负责解析参数bool cbInstrAddFavTool(int argc, char* argv[]) { // filename, description if(IsArgumentsLessThan(argc, 2)) return false; if(argc 2) GuiAddFavouriteTool(argv[1], nullptr); else GuiAddFavouriteTool(argv[1], argv[2]); return true; }可以看到缺少arg1时命令直接返回false失败只传一个参数时描述以nullptr传入传入两个参数时第二个参数作为描述。随后通过 GUI 桥接函数GuiAddFavouriteTool将数据传递给图形界面层。Favourites 菜单是什么Favourites 菜单位于 x64dbg 主界面菜单栏是一个完全可定制的菜单。点击其中的 Manage Favourite Tools 菜单项会弹出管理对话框你可以在对话框中添加自定义工具并为其分配热键。默认情况下菜单中显示的是工具或脚本的路径若为条目设置了描述description菜单将显示描述文字而非路径。该描述机制正是AddFavouriteTool的arg2参数所设置的字段。这一机制在 docs/gui/menus/Favourites.rst 中有权威说明同时指出该菜单支持三类条目条目类型说明添加方式Tool工具启动一个外部可执行程序GUI 对话框 /AddFavouriteToolScript脚本运行 x64dbg 脚本文件GUI 对话框Command命令执行一条 x64dbg 内部命令GUI 对话框 /AddFavouriteCommand占位符与格式化替换在 Favourites 菜单中工具条目支持以下占位符替换机制源码实现在 src/gui/Src/Gui/MainWindow.cpp 的MainWindow::clickFavouriteTool中占位符替换内容示例%PID%被调试进程的十进制 PID未调试时为 0%PID%→12345%DEBUGGEE%被调试程序debuggee的完整路径不加引号C:\malware\sample.exe%MODULE%反汇编视图中当前模块的完整路径不加引号C:\malware\sample.exe%-????-%对????处的内容执行格式字符串Formatting展开%-{cip}-%→0x401000对应源码中的替换逻辑duint PID DbgValFromString($pid); toolPath.replace(QString(%PID%), QString::number(PID), Qt::CaseInsensitive); toolPath.replace(QString(%DEBUGGEE%), mMRUList-getEntry(0), Qt::CaseInsensitive); char modpath[MAX_MODULE_SIZE] ; DbgFunctions()-ModPathFromAddr(DbgValFromString(dis.sel()), modpath, MAX_MODULE_SIZE); toolPath.replace(QString(%MODULE%), modpath, Qt::CaseInsensitive);对于%-????-%占位符源码使用StringFormatInline对占位符内部内容做内联格式化例如%-{cip}-%会被替换为cip寄存器的十六进制值。格式字符串的完整语法可参考 docs/introduction/Formatting.md。替换完成之后x64dbg 调用CreateProcessW启动工具并在日志中输出 Starting tool ... 信息GuiAddLogMessage(tr(Starting tool %1\n)...)。命令行实操示例添加一个工具带描述在 x64dbg 命令框输入AddFavouriteTool C:\Tools\ImportREC.exe Import Reconstruction执行后Favourites 菜单中会出现名为 Import Reconstruction 的条目点击即可启动C:\Tools\ImportREC.exe。添加一个工具不带描述AddFavouriteTool C:\Tools\peid.exe菜单中将直接显示完整路径C:\Tools\peid.exe。结合占位符的动态工具借助%PID%可以构建依赖当前进程上下文的工具调用AddFavouriteTool C:\Tools\procdump.exe -accepteula -ma %PID% C:\dumps\dump.dmp当调试会话中点击该收藏项时%PID%会被替换为当前被调试进程的 PID未处于调试状态时替换为 0。配套命令添加命令收藏与工具不同AddFavouriteCommand 用于把内部命令收藏进菜单AddFavouriteCommand bphws csp其第二个参数是可选快捷键。其命令处理函数cbInstrAddFavCmd位于 src/dbg/commands/cmd-gui.cpp。配套命令设置工具快捷键AddFavouriteToolShortcut别名SetFavouriteToolShortcut用于为已存在的收藏工具设置快捷键SetFavouriteToolShortcut C:\Tools\peid.exe CtrlAltP其回调函数cbInstrSetFavToolShortcut位于 src/dbg/commands/cmd-gui.cpp要求至少 3 个参数命令名 工具完整路径 快捷键快捷键必须与已存在的收藏工具路径精确匹配才能生效。底层存储Bridge 与配置键命令到 GUI 的桥接上述命令回调最终调用桥接层函数实现在 src/bridge/bridgemain.cppBRIDGE_IMPEXP void GuiAddFavouriteTool(const char* name, const char* description) BRIDGE_IMPEXP void GuiAddFavouriteCommand(const char* name, const char* shortcut) BRIDGE_IMPEXP void GuiSetFavouriteToolShortcut(const char* name, const char* shortcut)它们把命令参数跨线程传递给 GUI 进程最终由 Favourites 管理对话框对应的界面类FavouriteToolssrc/gui/Src/Gui/FavouriteTools.cpp落盘存储。配置文件键名收藏数据持久化在 x64dbg 的配置文件中段名为Favourite键名采用序号后缀形式键名含义Tool1、Tool2…工具完整路径ToolShortcut1、ToolShortcut2…工具快捷键ToolDescription1、ToolDescription2…工具描述Script1…脚本路径Command1…收藏命令文本CommandShortcut1…收藏命令快捷键这些键由FavouriteTools对话框的确认逻辑统一写入点击 OK 时代码将表格内容以Tool%1、ToolShortcut%1、ToolDescription%1的格式循环写入BridgeSettingSet同时为防残留旧数据会从当前条目数 1开始将多余的旧键清空src/gui/Src/Gui/FavouriteTools.cpp。菜单的动态重建x64dbg 启动时根据这些配置键动态重建 Favourites 菜单从序号 1 开始循环读取Tool%1/Command%1等键为每个条目创建带star图标的QAction通过setGlobalShortcut绑定快捷键并同时加入 Favourites 菜单与收藏工具栏src/gui/Src/Gui/MainWindow.cpp 附近。通过 GUI 对话框管理收藏除了命令行还可以通过图形界面完成全部管理操作点击菜单栏Favourites → Manage Favourite Tools打开管理对话框FavouriteTools对应 UI 定义见 src/gui/Src/Gui/FavouriteTools.ui对话框包含Tool / Script / Command三个标签页分别管理三类收藏工具标签页支持添加Browse 浏览文件选择器记住上次路径LastToolPath、编辑路径、删除、上移/下移调整顺序、设置描述This string will appear in the menu.、录制快捷键快捷键录入时会与全局快捷键表冲突检查——若与已有全局快捷键重复输入框会进入错误状态setErrorState(true)并拒绝保存见 src/gui/Src/Gui/FavouriteTools.cpp。常见问题与注意事项%PID%仅用于工具路径占位符替换只发生在点击 Tool 条目并启动进程时Script 与 Command 条目不执行进程级占位符替换。%DEBUGGEE%与%MODULE%不加引号官方文档明确指出这两者替换为不带引号的完整路径若路径含空格需自行在收藏条目中加引号处理。描述覆盖路径显示一旦设置描述arg2菜单将显示描述而非路径想要还原为路径显示可在管理对话框中清空描述。快捷键冲突收藏条目的快捷键不得与 x64dbg 全局快捷键冲突否则录入会被拒绝。无结果变量AddFavouriteTool不设置$result等任何结果变量脚本中如需判断成败可结合命令返回值处理。总结AddFavouriteTool是把外部工具无缝集成进 x64dbg 工作流的入口一条命令即可把任意可执行程序配合%PID%、%DEBUGGEE%、%MODULE%与%-{...}-%占位符实现动态参数收藏到 Favourites 菜单再通过AddFavouriteToolShortcut绑定快捷键实现一键启动分析工具的高效工作流。其完整链路——命令解析cmd-gui.cpp→ 桥接转发bridgemain.cpp→ 配置持久化FavouriteTools.cpp→ 菜单重建与进程启动MainWindow.cpp——展示了 x64dbg 命令系统与 GUI 层协作的典型模式也为逆向工程与恶意软件分析场景下的工具链自动化提供了标准范式。【免费下载链接】x64dbgAn open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.项目地址: https://gitcode.com/gh_mirrors/x6/x64dbg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询