# Windows, Linux, and Kali Bootstrap Scripts for reverse-skill: Complete Setup Guide

> Get Windows, Linux, and Kali bootstrap scripts for reverse-skill. Effortlessly install reverse engineering tools using PowerShell, Bash, and Kali wrappers from zhaoxuya520/reverse-skill.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: getting-started
- Published: 2026-08-14

---

**`reverse-skill` provides three platform-specific bootstrap scripts—PowerShell for Windows, Bash for generic Linux/macOS, and a specialized Kali wrapper—that automatically install reverse engineering tools based on a shared JSON manifest.**

The `zhaoxuya520/reverse-skill` repository ships automated setup scripts that eliminate manual dependency management across Windows, Linux, and Kali Linux environments. Each script parses a capability manifest, resolves tool dependencies, and installs them through native package managers or direct downloads. This guide covers all three platform implementations, their differences, and how to use them effectively.

## Windows Bootstrap Script (PowerShell)

The Windows bootstrap is implemented in `skills/scripts/bootstrap-reverse.ps1`. It handles PowerShell-only tooling, winget packages, and Windows-specific installation paths.

### How to Run the Windows Script

```powershell
powershell -NoProfile -ExecutionPolicy Bypass `
    -File skills/scripts/bootstrap-reverse.ps1 `
    -Capability apktool,adb,anything-analyzer

```

### Key Windows-Specific Behavior

- **OS detection**: Uses `Test-ReverseIsWindows` internal function to confirm platform
- **Package management**: Preferred order is `winget` → manual download → build from source
- **Path injection**: Updates `$env:PATH` persistently via registry modifications
- **Wrapper creation**: Generates `.cmd` files for Java-based tools like `apktool`

The Windows script reads [`skills/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-manifest.json) to determine download URLs, checksums, and installation methods. For capabilities marked with `bootstrapKind: "winget"`, it executes `winget install` directly.

## Linux and macOS Bootstrap Script (Bash)

The generic Unix bootstrap lives in [`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh). It uses POSIX-compatible commands for maximum portability across distributions.

### Running the Linux/macOS Script

```bash

# Install specific capabilities

bash skills/scripts/bootstrap-reverse.sh radare2,go-tools

# Single capability

bash skills/scripts/bootstrap-reverse.sh adb

```

### Platform Resolution Logic

The script detects the host distribution and selects the appropriate package manager:

- **Debian/Ubuntu**: `apt-get`
- **RHEL/CentOS/Fedora**: `dnf` or `yum`
- **macOS**: `brew` (if available) or manual installation
- **Fallback**: Direct download and extraction

For GitHub-hosted releases, the script calls functions from [`skills/scripts/lib/bootstrap-supply-chain.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/lib/bootstrap-supply-chain.sh) to verify SHA-256 checksums before extraction.

## Kali Linux Bootstrap Script

Kali Linux receives specialized treatment via [`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh), which extends the generic Linux logic with penetration-testing-specific packages.

### Kali-Specific Features

- **Dual manifest loading**: Reads [`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json) first, then falls back to the generic manifest
- **Debian package handling**: Direct `apt-get install -y` for Kali metapackages (e.g., `kali-tools-top10`)
- **MCP server shortcuts**: Auto-generates systemd user service files for `anything-analyzer`

### Running the Kali Bootstrap

```bash
bash kali/scripts/bootstrap-reverse.sh \
    nmap,sqlmap,metasploit-framework

```

### Kali Manifest Overrides

The Kali manifest ([`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json)) can:
- Override download URLs for Kali-packaged versions
- Add `aptPackage` entries not present in the generic manifest
- Specify `kaliCategory` tags for tool organization

## Shared Bootstrap Flow (All Platforms)

All three scripts follow an identical five-phase process:

1. **Manifest loading**: Parse JSON capability definitions
2. **Dependency resolution**: Check existing tools via `Get-Command` (PowerShell) or `which` (Bash)
3. **Tool installation**: Execute platform-specific `bootstrapKind` handlers:
   - `packageManager`: winget, apt, dnf, brew
   - `githubRelease`: Download, verify, extract
   - `buildFromSource`: go install, pip, npm
4. **MCP registration**: Configure server endpoints if the capability exposes one
5. **Index refresh**: Run `refresh-tool-index` to update [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md)

Scripts are **idempotent**—re-running skips already-installed tools and only adds missing capabilities.

## Verifying Installation Results

Each script outputs JSON for programmatic inspection:

### Windows Verification

```powershell
powershell -NoProfile -ExecutionPolicy Bypass `
    -File skills/scripts/bootstrap-reverse.ps1 -Capability adb `
    | ConvertFrom-Json | Format-Table name,status,ready

```

### Linux/Kali Verification

```bash
bash skills/scripts/bootstrap-reverse.sh adb \
    | jq '.[] | {name, status, ready}'

```

A successful installation returns `"status": "ready"` and `"ready": true`. Failed installations include an `error` field with diagnostic details.

## Core Library Files

| File | Purpose |
|------|---------|
| `skills/scripts/lib/ToolDiscovery.ps1` / [`tool-discovery.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-discovery.sh) | Locate existing system tools |
| `skills/scripts/lib/BootstrapSupplyChain.ps1` / [`bootstrap-supply-chain.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/bootstrap-supply-chain.sh) | Download, verify, and extract remote assets |
| `skills/scripts/refresh-tool-index.ps1` / [`kali/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/refresh-tool-index.sh) | Regenerate tool documentation |

## Summary

- **`skills/scripts/bootstrap-reverse.ps1`**: Windows PowerShell bootstrap with winget integration
- **[`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh)**: Generic Linux and macOS Bash bootstrap
- **[`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh)**: Kali-specific wrapper with pentesting package support
- All scripts share [`bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/bootstrap-manifest.json) format and produce structured JSON output
- Idempotent design allows safe repeated execution

## Frequently Asked Questions

### What distinguishes the Kali bootstrap from the generic Linux script?

The Kali bootstrap loads a secondary manifest at [`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json) that contains Kali-specific package names and Debian repositories. It also applies automatic `apt-get install` logic for tools already packaged in Kali's repositories, avoiding redundant compilation.

### Can I run these scripts on already-configured systems without breaking anything?

Yes. All bootstrap scripts implement idempotent installation: they check for existing tools via `Get-Command` (Windows) or `which` (Linux) before attempting installation. Already-present tools are skipped with `"status": "present"` in the JSON output.

### What PowerShell execution policy is required for the Windows script?

The script requires `Bypass` execution policy for the current process only. The documented invocation (`-NoProfile -ExecutionPolicy Bypass`) does not change system-wide policy and avoids persistent security modifications.

### How do I add a custom capability to the bootstrap process?

Add an entry to [`skills/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-manifest.json) (or [`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json) for Kali-specific tools) with fields for `name`, `bootstrapKind`, `sourceUrl`, and `verificationHash`. The scripts will automatically pick up new capabilities on next run.