How to Set Up the reverse-skill Tool Chain on Windows Using PowerShell Bootstrap Scripts
The reverse-skill repository provides PowerShell bootstrap scripts in skills/scripts/bootstrap-reverse.ps1 that automate dependency resolution, tool installation via winget/git/npm/pip, MCP server registration, and optional service startup on Windows.
The reverse-skill toolchain from zhaoxuya520/reverse-skill delivers a self-contained environment for reverse engineering and security analysis on Windows. Instead of manual configuration, you use PowerShell bootstrap scripts to resolve capabilities, install missing dependencies, and register MCP servers for Claude or Codex. This guide explains how to set up the reverse-skill tool chain on Windows using PowerShell bootstrap scripts with the exact commands and parameters used by the orchestrator.
Prerequisites and Initial Setup
Before running the bootstrap script, ensure your environment meets the baseline requirements. The script declares #requires -Version 5, so PowerShell 5 or later is mandatory. For capabilities that install Visual Studio Build Tools, you must run the shell as Administrator; the script checks elevation via the Test-ReverseIsElevated function.
Open a PowerShell window and navigate to the repository root. If you have not cloned the repository yet, download the skills/scripts/ directory to your local machine.
Running the Bootstrap Script
The primary entry point is skills/scripts/bootstrap-reverse.ps1. This orchestrator handles the entire installation flow, from parsing arguments to starting services.
Core Parameters
The script accepts several parameters that control the installation scope:
-Capability: An array of capability names defined in the bootstrap manifest (e.g.,adb,jadx,anything-analyzer). TheExpand-CapabilityDependenciesfunction automatically expands these into a topologically sorted list.-StartServices: Launches long-running services (e.g., Anything-Analyzer) immediately after installation.-McpHostTarget: Specifies which MCP host to configure. AcceptsClaude,Codex, orBoth.-SkipRefresh: Omits the final execution ofrefresh-tool-index.ps1if you do not need an updated tool index.
Basic Installation Command
To install a set of capabilities with full MCP registration and service startup, run:
powershell -NoProfile -ExecutionPolicy Bypass `
-File skills/scripts/bootstrap-reverse.ps1 `
-Capability @('anything-analyzer','adb','javac') `
-StartServices `
-McpHostTarget Both
This command triggers the Ensure-Capability workflow, which resolves each item in the dependency graph and installs prerequisites before the requested tools.
What Happens During Installation (Behind the Scenes)
Understanding the internal flow helps debug failures or customize the toolchain.
Dependency Resolution and Expansion
When you pass the -Capability array, the script invokes Expand-CapabilityDependencies to build a directed acyclic graph (DAG) of requirements. It top-sorts the graph so that base runtimes (Node, Python, Java) install before dependent tools.
Runtime and Tool Installation Methods
The bootstrap script selects installation strategies based on the bootstrapKind field in bootstrap-manifest.json. The Ensure-Capability function dispatches to specific installers:
winget-package: CallsEnsure-WingetPackageto executewinget install(e.g.,Google.PlatformToolsfor ADB).github-release-zip: UsesEnsure-GitHubZipInstallto download the latest release asset, verify its SHA-256 hash, and extract it.git-clone: Performs a shallow clone viaEnsure-GitCloneInstall.npm-global: InvokesEnsure-NodeRuntimeto guarantee Node.js is present, then runsnpm install -g.pip-package: Executespython -m pip installthroughEnsure-PipPackageInstall.go-install: Usesgo installor falls back to a Docker image viaEnsure-Go.local-http-mcp: Configures an HTTP endpoint for services like Anything-Analyzer usingEnsure-AnythingAnalyzerMcpConfig.
Runtime functions such as Ensure-NodeRuntime, Ensure-PythonRuntime, and Ensure-JavaRuntime query winget to pull the latest language runtimes when missing.
MCP Server Registration
For each capability, the script builds a server definition via Get-McpCommandServerDefinition. It then writes the configuration to the host-specific files:
Set-ClaudeMcpConfig: Updates Claude Desktop's MCP settings.Set-CodexMcpServer: Updates Codex CLI configuration.
When -McpHostTarget Both is specified, both functions execute, enabling the tool chain in multiple AI environments.
Optional Service Startup
If you specify -StartServices, the script invokes Start-AnythingAnalyzerService or Start-IdaProService for capabilities marked as local-http-mcp. The script waits for the service port (e.g., 23816 for Anything-Analyzer) to become reachable before exiting.
Refreshing the Tool Index
By default, bootstrap-reverse.ps1 concludes by invoking skills/scripts/refresh-tool-index.ps1. This script calls Get-ReverseToolReport to scan installed tools and generates two artifacts:
tool-index.md: A human-readable markdown table listing tool paths, versions, and which SKILL files reference them.tool-index.json: A machine-readable payload consumed by the routing engine.
To skip this step during bootstrap, add the -SkipRefresh switch. To regenerate the index later, run:
powershell -NoProfile -ExecutionPolicy Bypass `
-File skills/scripts/refresh-tool-index.ps1
Practical Examples
These examples demonstrate common setup scenarios using the exact functions and parameters from the source code.
Installing a Single Capability (ADB)
To install only the Android Debug Bridge without additional services:
powershell -NoProfile -ExecutionPolicy Bypass `
-File skills/scripts/bootstrap-reverse.ps1 `
-Capability adb
The Ensure-WingetPackage function installs Google.PlatformTools via winget and updates the system PATH environment variable.
Setting Up Anything Analyzer with Services
For the Anything Analyzer UI with full MCP integration:
powershell -NoProfile -ExecutionPolicy Bypass `
-File skills/scripts/bootstrap-reverse.ps1 `
-Capability anything-analyzer `
-StartServices `
-McpHostTarget Both
This expands to install Node 22, pnpm, Git, and the anything-analyzer repository. It generates a bearer token, registers the MCP server in both Claude and Codex configs, and executes pnpm dev until port 23816 responds.
Full Reverse Engineering Toolchain
To provision a complete environment for mobile and binary analysis:
$caps = @(
'jadx','apktool','frida','r2','python','node','adb',
'anything-analyzer','idapro'
)
powershell -NoProfile -ExecutionPolicy Bypass `
-File skills/scripts/bootstrap-reverse.ps1 `
-Capability $caps `
-StartServices `
-McpHostTarget Both
The Expand-CapabilityDependencies function resolves the full dependency tree, ensuring Java is present before JADX and Node before Frida. All tools are installed, MCP endpoints are configured, and long-running services are launched.
Key Files and Architecture
The bootstrap system relies on a modular library structure under skills/scripts/:
| File | Purpose |
|---|---|
bootstrap-reverse.ps1 |
Core orchestrator. Parses arguments, expands dependencies, installs capabilities, registers MCP servers, and starts services. |
refresh-tool-index.ps1 |
Generates tool-index.md and tool-index.json by querying the tool catalog via Get-ReverseToolReport. |
lib/ToolDiscovery.ps1 |
Helper library that discovers installed tools, resolves their paths, and builds the tool report. |
lib/WorkRoot.ps1 |
Utilities for locating the repository root and temporary directories. |
master-route.ps1 |
Entry point for the primary routing chain; invokes the bootstrap script when a request matches a reverse-skill capability. |
Summary
- The reverse-skill toolchain uses
skills/scripts/bootstrap-reverse.ps1to automate Windows setup. - PowerShell 5+ is required; administrator elevation is needed for Visual Studio Build Tools.
- The
-Capabilityparameter accepts an array of tool names, automatically expanded viaExpand-CapabilityDependencies. - Installation methods include winget, GitHub releases, git clone, npm, pip, and go install, dispatched by
Ensure-Capability. - MCP registration is handled by
Set-ClaudeMcpConfigandSet-CodexMcpServer, configurable via-McpHostTarget. - The
refresh-tool-index.ps1script maintains thetool-index.mdandtool-index.jsonfiles used for routing and documentation.
Frequently Asked Questions
What PowerShell version is required for reverse-skill?
The bootstrap script declares #requires -Version 5, so you need PowerShell 5 or later. Run powershell -Version to verify your installation before executing bootstrap-reverse.ps1.
How do I install specific tools like JADX or Frida using the bootstrap script?
Pass the capability names to the -Capability parameter as an array. For example: -Capability @('jadx','frida'). The Expand-CapabilityDependencies function resolves the dependency graph and invokes the appropriate installer (e.g., Ensure-GitHubZipInstall for GitHub releases or Ensure-PipPackageInstall for Python packages).
Can I configure both Claude and Codex MCP hosts simultaneously?
Yes. Set the -McpHostTarget parameter to Both. The script will execute both Set-ClaudeMcpConfig and Set-CodexMcpServer, writing the MCP server definitions to each host's respective configuration file.
What should I do if the tool index is outdated after installation?
Run skills/scripts/refresh-tool-index.ps1 manually. This script calls Get-ReverseToolReport to scan the current environment and regenerates tool-index.md and tool-index.json. Alternatively, ensure you did not use the -SkipRefresh switch during the initial bootstrap.
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 →