IDA Instruction Hinter is a native IDA Pro 9.3 plugin that explains x86/x64 instruction mnemonics directly in IDA View. Hover over a mnemonic until IDA's normal hint delay expires to see a concise offline English or Simplified Chinese explanation. When a matching page exists, Ctrl+click the mnemonic or right-click it and choose Open instruction reference to open the Felix Cloutier x86 reference in the system browser.
The catalog covers all 1,951 real NN_* x86 instruction types in the pinned IDA SDK 9.3.1 snapshot. The plugin does not perform network requests while hovering, does not send telemetry, and remains inactive for non-x86 processor modules.
Requirements:
- CMake 3.27 or newer
- A C++17 compiler supported by IDA SDK (Visual Studio 2022 on Windows)
- Git submodules checked out recursively
- IDA Pro 9.3.x for runtime testing
git clone --recurse-submodules git@github.com:secsome/ida-ins-hinter.git
cd ida-ins-hinter
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 `
-DIDA_INSTALL_DIR="D:/IDA/IDA 9.3sp2"
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failureThe SDK is pinned under third_party/ida-sdk. To use another IDA 9.3 SDK checkout, pass -DIDA_SDK_ROOT=/path/to/idasdk where that directory contains include/pro.h.
Normal builds never write to the IDA installation. Runtime files are staged in:
build/dist/plugins/ida_ins_hinter/
Create a distributable ZIP with:
cmake --build build --config Release --target packageCopy the complete staged ida_ins_hinter directory into an IDA 9.3 plugin directory. A per-user Windows installation can be performed with:
$source = "build/dist/plugins/ida_ins_hinter"
$target = Join-Path $env:APPDATA "Hex-Rays/IDA Pro/plugins/ida_ins_hinter"
New-Item -ItemType Directory -Force -Path $target | Out-Null
Copy-Item "$source/*" $target -Recurse -ForceRestart IDA and open an x86 or x64 database. Hover over a mnemonic to see its explanation, or Ctrl+left-click it to open its reference page. Addresses, bytes, operands, comments, and whitespace intentionally do not trigger either feature. If an instruction has no mapped reference page, Ctrl+click retains IDA's normal behavior.
The packaged config.json selects the locale:
{
"schema_version": 1,
"locale": "en"
}Set locale to zh-CN, or override it on IDA's command line with -Oida_ins_hinter:locale=zh-CN, to use the bundled Simplified Chinese translation. Locale lookup overlays English, the primary language, and then the exact BCP-47 tag one complete message key at a time.
English (en) and Simplified Chinese (zh-CN) are bundled. To add another translation, copy locales/en.json, change its locale, and translate the ui strings and stable instructions message IDs. Missing keys fall back to English. No C++ changes or catalog regeneration are required.
Regenerate checked-in data without network access:
py tools/update_catalog.py
py tools/update_zh_locale.py
py tools/update_catalog.py --check
py tools/update_zh_locale.py --checkUpdating the Felix link snapshot is intentionally explicit:
py tools/update_catalog.py --refresh-felix-indexThe generator derives short English meanings from the MIT-licensed IDA SDK comments and stores only Felix page labels/paths, not reference page contents. Review tools/catalog_overrides.json when SDK instruction types or reference-page groupings change.
The plugin is released under the MIT License. See THIRD_PARTY_NOTICES.md for SDK and reference-site attribution.
0 comments
log in to comment.