Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
JURIG — a fully autonomous AI agent for reverse engineering | Kitploit
Tools/GitHubGitHub/reverserid/jurig
Android SecurityStatic AnalysisDynamic Analysis (Sandboxing)Web Proxies & InterceptionMobile App PentestingReverse EngineeringMalware AnalysisPenetration TestingSecret DetectionBinary AnalysisAI-Assisted Reversing
193203 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
AI Security
GitHubreverserid/jurig

JURIG

a fully autonomous AI agent for reverse engineering

View Repository

Jurig

 .-.         ██ ██    ██ ██████  ██  ██████
(o o)        ██ ██    ██ ██   ██ ██ ██
| u |        ██ ██    ██ ██████  ██ ██   ███
|   |   ██   ██ ██    ██ ██   ██ ██ ██    ██
'~-~'    █████   ██████  ██   ██ ██  ██████
        autonomous reverse-engineering agent · android · binary · frida

Jurig (Sundanese: ghost) — an autonomous AI agent that haunts your binaries. In the TUI the ghost blinks, bobs, and shimmers while it works.

Fully autonomous, AI-agentic reverse-engineering framework with a TUI. Android-first (APK/DEX) plus native binaries. Written in Go, no MCP — every tool is a native subprocess wrapper around a portable RE binary.

image

Design

ConcernChoice
Language / TUIGo + Bubble Tea + Lipgloss + Glamour (markdown reports)
AgentOwn plan→act→observe loop (internal/agent) — no framework lock-in
ToolsNative Go subprocess wrappers (internal/tools) — no MCP
LLMOne wire format (Anthropic Messages protocol) behind a router
Providersanthropic (direct), openrouter (Anthropic "skin"), claude-cli (subscription)
Portable toolsinternal/portable resolves bundled binaries → PATH; installs from a catalog

LLM providers — multi-model, switchable live

Two wire protocols behind one router:

  • anthropic kind — native Messages API (/v1/messages).
  • openai kind — OpenAI Chat Completions (/chat/completions) with an internal Messages↔OpenAI translator (tool-calls included). Covers any OpenAI-compatible endpoint.

Presets shipped (config.json → providers):

ProviderKindEndpointKey env
mimo (default)openaitoken-plan-sgp.xiaomimimo.com/v1MIMO_API_KEY
anthropicanthropicapi.anthropic.comANTHROPIC_API_KEY
openrouteropenaiopenrouter.ai/api/v1OPENROUTER_API_KEY
ollama (local)openailocalhost:11434/v1— (local)
kimiopenaiapi.kimi.com/coding/v1KIMI_API_KEY
moonshotopenaiapi.moonshot.ai/v1MOONSHOT_API_KEY
dashscope / Qwen (Alibaba)openaidashscope-intl…/compatible-mode/v1DASHSCOPE_API_KEY
custom (any OpenAI-compat)openaiyou set base_urlCUSTOM_API_KEY
claude-cli (subscription)claude-cliclaude binary—

Pick provider+model live in the TUI with Ctrl+O, or set JURIG_PROVIDER + JURIG_MODEL, or edit active in config.json. Add models by extending a provider's models list. Point any provider at a different base URL (e.g. a self-hosted gateway) via base_url.

Ollama: ollama serve + ollama pull qwen2.5-coder:14b, then Ctrl+O → pick ollama/…. No key needed.

claude-cli (Claude Code subscription): Anthropic blocks subscription auth in third-party HTTP harnesses (Apr 2026), so this path shells out to the claude binary. Advisory/chat only — no native tool-calling; use an openai/anthropic provider for the full autonomous tool loop.

custom — one generic provider for ANY OpenAI-compatible endpoint. Jurig ships no hardcoded gateway; you fill the base URL yourself in the setup wizard (/setup) or in config.json. Works for:

  • Local subscription routers — 9router (npx 9router) or OmniRoute, which front Cursor / Claude Code / Codex accounts on http://localhost:20128/v1.
  • Local model servers — vLLM, LM Studio, llama.cpp, etc.
  • Any hosted OpenAI-compatible API.

Set base_url (e.g. http://localhost:20128/v1) and, if the endpoint needs one, api_key (or the CUSTOM_API_KEY env / CUSTOM_BASE_URL for the URL). A localhost gateway is treated as ready without a key. The custom provider is marked auto_models, so the picker (Ctrl+O) fetches the live catalog from the endpoint's /models on open — press r to refresh any provider's list. For a subscription router, model ids carry a route prefix (cu/ Cursor, cc/ Claude Code, cx/ Codex) — the auto-loaded list shows the exact ids.

Using subscriptions outside their official clients may violate ToS — your account, your risk.

Build

go build -o jurig ./cmd/jurig

Use

No flags needed. First run (or when the active provider has no key) launches an interactive setup wizard: pick provider (OpenRouter / Kimi / Qwen / Ollama / Anthropic / Claude subscription) → key → model → optional tool pre-install → saved to ~/.jurig/config.json.

./jurig                              # first run → wizard, then TUI
./jurig setup                        # re-run the wizard anytime
./jurig doctor                       # show provider + toolchain status
./jurig install jadx                 # pre-warm a tool (also auto-installs on demand)
./jurig -p "analyze ./app.apk"       # headless one-shot (skips wizard; needs a key set)
./jurig -target ./work/app -p "..."  # pin a per-target work dir

Keybindings (TUI)

KeyAction
Enterrun instruction / submit
↑ / ↓prompt history
PgUp / PgDnscroll transcript
Ctrl+Fsearch transcript (Enter = next match)
Ctrl+Oswitch provider / model
F1help overlay
Ctrl+Cabort run / quit

When the agent asks a scoping question, an answer menu appears: ↑/↓ move, Space or 1-9 toggle (multi-select), Enter confirm.

Session resume: the conversation + prompt history persist to <work_dir>/session.json and auto-restore on next launch (--fresh starts clean).

Code cards: whenever the agent reads a source file, the TUI shows a small syntax-highlighted preview — the model still receives the full file.

Tools (25, all native / subprocess, no MCP)

Recon & triage

ToolPurpose
manifestparse AndroidManifest → package, permissions, exported components
url_extractpull + dedupe all URLs → API/host map
secret_scancategorized hardcoded-secret scan (AWS/GCP/JWT/keys/AES…)
native_libslist lib/<abi>/*.so + ABIs (JNI surface)
search_coderegex grep over sources — locate before reading
ask_useragent asks the operator (multi-select menu)

Static

ToolPurpose
jadxAPK/DEX/XAPK → Java (auto-extracts bundles, rich summary)
apktoolAPK → smali + decoded manifest
radare2 / ghidranative binary disasm / headless decompile
elf_info / pe_infoparse ELF/PE headers, symbols, imports (native)
hexdump / stringsraw bytes / printable strings
unzipnative zip/apk/xapk/apks extraction (no shell)

Dynamic & network

ToolPurpose
adbdevice control
frida_pslist device apps/processes
fridarun a custom Frida JS script
frida_presetbuilt-in: ssl_unpin, list_classes, dump_class, hook, trace_http
proxynative Go MITM proxy (goproxy) — capture live HTTPS traffic
http_requestreplay/test discovered API endpoints
downloadfetch a URL to the work dir

Live network capture: proxy start spins up an in-process MITM proxy and exports a CA. The agent points the device at it (adb) + installs the CA + runs frida_preset ssl_unpin, then reads flows with proxy flows. Captured requests/responses stream live in a NET side-panel in the TUI (shown when the terminal is wide enough — the layout is fully responsive).

Filesystem / shell: read_file, write_file, list_dir, shell (PowerShell default on Windows).

Header shows live token usage (Nk↑ Nk↓) as the agent runs.

Download Tool