Format of Tool Paths in reverse-skill's Tool Index: Complete Specification
The tool-index in reverse-skill is a markdown table with five columns—Tool Name, Available, Path to Executable, Version Info, and Source/Notes—that stores the exact command-line paths to security tools like r2, ida, and frida, generated automatically by refresh scripts.
The zhaoxuya520/reverse-skill repository maintains a centralized tool-index to standardize how skill modules locate external security utilities across Windows, Linux, and macOS environments. Understanding the format of tool paths in reverse-skill's tool index ensures your automation scripts correctly resolve binaries like radare2, IDA Pro, and Frida regardless of host configuration.
Tool-Index Structure and Column Format
The tool-index follows a strict markdown table structure defined in skills/tool-index.md.template. Each row represents a single external utility with five specific fields that standardize path references.
The Five-Column Markdown Table
The layout uses these columns to capture executable metadata:
- Tool Name: The canonical identifier for the utility (e.g.,
r2,ida,frida,gdb). - Available?: A boolean flag (yes/no) indicating whether the tool was detected on the current host.
- Path to Executable: The exact command or filesystem path used to invoke the tool. This may be a simple command like
r2.bat, an absolute path like/usr/local/bin/ida, or a Windows path likeC:\Program Files\Frida\frida-run.exe. - Version Info: The detected version string (e.g.,
radare2 6.2.0,IDA Pro 9.0). - Source/Notes: The discovery method employed, such as FallbackPath, Registry, or which, plus any additional context.
How Tool Paths Are Discovered and Recorded
The tool-index is not maintained manually. Instead, the refresh-tool-index scripts populate the table by scanning the system and resolving executable locations using platform-specific strategies.
Discovery Scripts
Two scripts handle cross-platform detection and write to skills/tool-index.md:
skills/scripts/refresh-tool-index.ps1: PowerShell implementation for Windows environments.skills/scripts/refresh-tool-index.sh: Bash implementation for Linux and macOS.
Path Resolution Methods
The scripts employ multiple strategies to locate executables and determine which path format to record:
- which: Standard Unix command resolution for binaries in
$PATH. - FallbackPath: Default installation paths when standard resolution fails.
- Registry: Windows registry lookups for commercial tools like IDA Pro.
Working with the Tool-Index Files
Understanding the relationship between the template and generated files ensures you can both consume and regenerate the index correctly.
Template vs. Generated Output
The repository stores skills/tool-index.md.template as the structural blueprint containing the column headers and empty skeleton. When you run the refresh scripts, they clone this structure into skills/tool-index.md, filling in the actual detected paths and versions for the current host.
Consuming the Tool-Index Programmatically
Refresh the index before consuming it to ensure paths are current for your environment:
# Regenerate the tool-index on Windows
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/refresh-tool-index.ps1
# Parse the generated table to extract r2's path and execute
$toolIndex = Get-Content skills/tool-index.md | ConvertFrom-Markdown
$r2Path = ($toolIndex | Where-Object Name -eq 'r2').Path
& $r2Path -A main.bin
# Regenerate the index on Linux/macOS
bash skills/scripts/refresh-tool-index.sh
# Extract gdb's executable path using awk
gdbPath=$(awk -F'|' '/\bgdb\b/ {print $3}' skills/tool-index.md | xargs)
"$gdbPath" --args ./binary
Summary
- The tool-index uses a five-column markdown table format with Tool Name, Available, Path to Executable, Version Info, and Source/Notes columns.
- Tool paths can be simple commands, relative paths, or absolute filesystem paths depending on the discovery method and operating system.
- The
refresh-tool-index.ps1andrefresh-tool-index.shscripts inskills/scripts/automatically generate the populated index. - The template file at
skills/tool-index.md.templatedefines the structure, whileskills/tool-index.mdcontains the runtime data specific to the host. - Discovery methods include which, FallbackPath, and Registry lookups to accommodate different installation conventions.
Frequently Asked Questions
What columns are in the reverse-skill tool-index?
The tool-index contains five columns: Tool Name, Available? (yes/no), Path to Executable, Version Info, and Source/Notes. This format is defined in skills/tool-index.md.template and populated by the refresh scripts into skills/tool-index.md.
How is the tool-index generated in reverse-skill?
The index is generated automatically by running either skills/scripts/refresh-tool-index.ps1 on Windows or skills/scripts/refresh-tool-index.sh on Unix systems. These scripts scan for known security tools, resolve their executable paths using methods like which or registry lookups, and write the formatted markdown table to skills/tool-index.md.
Where are the tool path discovery scripts located?
The discovery scripts reside in the skills/scripts/ directory. Specifically, refresh-tool-index.ps1 handles Windows environments using PowerShell and registry detection, while refresh-tool-index.sh handles Linux and macOS using standard Unix utilities.
Can tool paths be absolute or relative in the index?
Yes, the Path to Executable column accepts various formats. It may contain simple command names like r2.bat, absolute paths like /opt/ida/ida64, or Windows paths like C:\Program Files\Frida\frida-run.exe. The refresh scripts record whatever path format successfully invokes the tool on the host system.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →