本文へ移動
cccskills
無料GitHub で公開

reverse-engineer-anything

Reverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.

インストール方法を見る

含まれるファイル(7)

  • SKILL.md12.9 KB
  • LICENSE1.0 KB
  • references/android-applications.md1.9 KB
  • references/evidence-workflows.md2.2 KB
  • references/javascript-applications.md4.2 KB
  • references/native-and-artifacts.md8.4 KB
  • references/runtime-observation.md1.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

REA

Use REA when a claim depends on a shipped binary or package, decompilation, passive application runtime evidence, or comparison with behavior not established by available source. For ordinary analysis of a complete source repository, use normal repository tools and do not run REA readiness or provider commands.

Connect only when needed

Installing this skill supplies instructions; it does not register the REA MCP server, install analysis engines, or add tools to an already-running agent.

If REA tools are available and their registration is not known to be stale, proceed directly to the target. Do not run diagnostics or setup before every investigation. Use the connected server's actual tool list and input schemas; a skill installed from repository main may describe capabilities absent from an older npm release. Keep complete inline Evidence when that server does not advertise retained references.

When tools are absent or registration is stale:

  1. Diagnose without changing files. For Codex, run npx -y rea-agents@latest doctor --client codex --json. Substitute the current supported client: claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, devin, opencode, antigravity, copilot_cli, commandcode, vscode, grok_build, omp, or grok_bot. grok_bot has no local file registration: doctor reports the Grok Bot chat step, and setup does not write mcp.json. If the client is unknown, use doctor --json and inspect its registration results before choosing a setup scope.
  2. Distinguish the reason. Missing, malformed, or stale registration needs a scoped configuration repair. An aligned registration with no tools in the active session needs a restart/reconnection; doctor cannot prove that the current agent has connected. A missing provider affects only tasks requiring that provider: static JavaScript inspection needs neither Hopper nor Ghidra, and Android inspection has separate bring-your-own JADX/Java prerequisites.
  3. For a configuration repair, prepare the read-only plan: npx -y rea-agents@latest setup --client codex --dry-run --json. Use the current client's ID, show its exact proposed paths, backups, and changes, and obtain approval before setup writes configuration or installs Hopper. Setup normally installs the matching bundled skill too; include that replacement in the reviewed plan. After approval, apply the same scope with npx -y rea-agents@latest setup --client codex --yes. Add --install-hopper only if that separate installation was needed and explicitly approved.
  4. Restart/reconnect the affected agent. Verify that REA tools actually appear in the session, then resume the original investigation. If they remain absent, inspect the client's MCP launch error rather than repeating setup.

REA setup never installs or upgrades Node.js, npm, Homebrew, Java, Ghidra, IDA, JADX, Binwalk, or Unblob. Use existing prerequisites; do not install unrelated software to repair MCP registration. For an unsupported client, use manual stdio registration with a version-pinned rea-agents package or continue through the CLI.

A concrete CLI fallback for an operator-supplied JavaScript tree or ASAR is:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

No MCP registration or native engine is required. Read the returned Evidence, graph, limitations, and unknowns with the same care as an MCP result; the CLI returns the Evidence record directly. This fallback does not establish that MCP is configured. Native CLI tasks still require their selected engine.

Route the target first

Choose the first tool from the target the user supplied. Use open_binary for active-target native or archive workflows; target-free tools take their own explicit path or endpoint and do not need it.

  • ASAR or extracted JavaScript/Electron tree: analyze_javascript_application.
  • Archive/package member inventory (ZIP/APK/IPA/MSIX/AppX or DMG): open_binary with the supplied local path; use inspect_artifact when its graph and findings help answer the question.
  • Android APK code, classes, methods, or incoming references: inspect_android_package, then focused Android tools when advertised. Archive member inventory still uses the archive route above.
  • Managed PE/CLI assembly: inspect_managed_artifact.
  • Firmware image: inspect_firmware_regions when advertised. Use extract_firmware when extraction is requested, with a caller-selected new absolute output directory. These tools use caller-supplied Binwalk/Unblob on Linux; see the firmware guide.
  • .NET NativeAOT PE/ELF: native Ghidra analysis. Native code can yield pseudocode; consult the NativeAOT workflow in references/native-and-artifacts.md for optional metadata recovery and its supported host/layout boundary.
  • User-owned browser page already open: list_browser_targets.
  • Retained HAR/native mitmproxy capture: inspect_web_network_capture. Select original record ordinals when useful; inspect producer fields and byte/number sidecars without fetching recorded URLs or claiming live attribution. See historical captures for the exact upstream profile and credential exclusions.
  • User-owned Electron runtime already open: list_electron_targets.
  • Explicit local EVM bytecode carrier: inspect_evm_interface with caller-selected raw or hex encoding. Preserve carrier/decoded digests and treat selectors, argument strings and mutability as inferred candidates; this performs no chain lookup or target execution. See the EVM bytecode guide.
  • Explicit Linux ELF file for offline layout, symbols, relocations or static mitigation evidence: inspect_binary_layout. This target-free operation uses caller-supplied pwntools without opening a disassembler database. Preserve its raw locations and inference/coverage limits; see the offline binary guide.
  • Supplied Linux x86-64 ELF core: inspect_recorded_crash. Read every recorded thread, raw note and source-bound register without opening a live target. Historical PIDs do not select live processes. Request include_debugger_context only when core-only mapping candidates help; see the recorded crash guide.
  • Native executable, library, or analysis database: open_binary, then use focused analysis tools directly; call binary_overview when metadata or inventory context is useful and available from the selected provider.

For an existing IDA MCP configuration, use open_binary with the original input binary and provider_id: "ida"; do not pass an .idb or .i64 database. The legacy attached profile binds the already-open GUI input by SHA-256 and leaves its database open. The modern headless profile creates and closes an owned private database without saving. Installation and registration reuse mrexodia/ida-pro-mcp; see the IDA provider guide. Proceed directly to analyze_function, pseudocode, or function/string searches after opening; IDA does not supply binary_overview. Consult session availability when composing broader workflows. Modern direct callers and unsupported dossier facets remain unknown; live IDA results are not replayed from snapshots.

If the app is missing, ask which app to inspect. Resolve a human-readable app name to one clear installed artifact when possible; ask only when matches are ambiguous. Never choose an example app on the user's behalf.

In a target-free session, use open_binary to bind any archive/package or native target whose analysis tool operates on the active target. Do not call an unadvertised tool; inspect binary_session with {} and its result.tool_availability for availability reasons and remediation. The tool list stays complete; availability depends on the operation, target, and host.

Work summary-first

Start with the default result and use its inline Evidence and graph context. Do not repeat an identical tool call. Make a focused follow-up only when the returned result leaves a specific question unanswered.

If MCP reports resource_constraint with details.resource: "transport", call inspect_analysis_view with its reported same-session Evidence reference for a summary, one section/module, or a stable page. Use trace_application_feature once a seed is known, or call export_evidence_bundle to write the complete session to a selected path. The analysis remains complete in the ledger; avoid repeating it merely to request the same oversized response. Complete CLI JSON output also streams without a single MCP frame.

Every conclusion must distinguish observations, inferences, and unknowns. Cite Evidence IDs, preserve limitations and incomplete coverage, and never imply that static analysis observed execution. Runtime requests execute the declared target and lifecycle; do not broaden the target or action beyond those fields.

Within the user's requested investigation, call available analysis tools directly. REA does not require permission grants or per-call approval flags. Follow the declared request scope and the host's actual access requirements.

Plan broader investigations

For requests that span multiple features or subsystems, use a staged workflow:

  1. Turn the request into a checklist of questions and the evidence each answer needs. Resolve target identity and constraints from the conversation and workspace before asking for information again.
  2. Inspect the current REA session, artifact identity, saved analysis database, bookmarks, and prior evidence. Reuse matching state; do not open duplicate sessions or repeat identical analysis.
  3. Start with the smallest useful overview or inventory. Follow each question from its entry point through relevant data and state changes to its result. Batch related operations around a specific hypothesis, then expand only when the returned evidence leaves a concrete gap.
  4. Inspect relevant packaged resources and configuration alongside code when they affect the question. Use format-aware inventory and parsers; do not infer behavior from filenames, strings, or layout alone.
  5. Corroborate a conclusion with the evidence type it requires. Use runtime observation only when static evidence cannot answer the question and the required host runtime and OS access are available. For JavaScript behavior, run probes against the actual app through the available browser, Electron, or process capture workflow.
  6. Decompose work into independent questions. When parallel workers are available and the questions do not depend on one another, assign distinct scopes, point workers to existing evidence, and ask them to return sources, conclusions, and unresolved gaps. Otherwise, work sequentially.
  7. Keep a concise finding ledger linking each conclusion to Evidence IDs, confidence/evidence type, search boundary, and remaining unknowns. Update the shared index or investigation report so later passes can reuse results.

Before finishing, revisit the original checklist. Mark each question as answered, partially answered, or unresolved based on its evidence; keep bounded negative searches bounded, and do not describe a broad investigation as complete while required questions remain open.

Read only the relevant guide

Finish the task

Explain findings in plain language and tie them to returned evidence. When the user asks to build something, use normal coding tools and separate observed behavior from design choices. Close an opened native session with close_binary when the investigation is complete.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

日本語の概要は準備中です。原文の説明を表示しています。

mxyhi/ok-skills4982026年10月18日 更新

Build AI chat interfaces using ai-elements components — conversations, messages, tool displays, prompt inputs, and more. Use when the user wants to build a chatbot, AI assistant UI, or any AI-powered chat interface.

日本語の概要は準備中です。原文の説明を表示しています。

mxyhi/ok-skills4982026年10月18日 更新

Autonomous iteration loop: modify, verify, keep/discard against any metric

日本語の概要は準備中です。原文の説明を表示しています。

mxyhi/ok-skills4982026年10月18日 更新

ax

無料

Use the ax CLI instead of curl + throwaway parsing scripts whenever you fetch a URL, explore an unknown web page, or extract structured data from HTML. Trigger whenever you are about to write an inline script (python3 heredoc, node -e, regex over HTML) or a bare curl for one-off web fetching, scraping, or page exploration.

日本語の概要は準備中です。原文の説明を表示しています。

mxyhi/ok-skills4982026年10月18日 更新

Use when working with icons in any project. Provides CLI for searching 200+ icon libraries (Iconify) and retrieving SVGs. Commands: `better-icons search <query>` to find icons, `better-icons get <id>` to get SVG. Also available as MCP server for AI agents.

日本語の概要は準備中です。原文の説明を表示しています。

mxyhi/ok-skills4982026年10月18日 更新

Detect and recover text that was accidentally typed with the Taiwanese Bopomofo / Zhuyin (注音) keyboard while the input method (IME) was stuck in English/ASCII mode — what Taiwanese users call 注音亂碼 or 注音文 — producing meaningless-looking letter+digit sequences such as "su3cl3a8", "cl3", "g4", "2k7", "vu,4", or such garbled runs embedded in an otherwise normal request (e.g. "help me fix su3cl3a8", "看看這個 PR qk4ru.6", "幫我改 su3cl3a8xk7"). Use this skill whenever a user message contains short ASCII tokens that look like keyboard gibberish, do not form real English words, and cannot be understood normally — especially tokens with digits interspersed among letters (tone keys 3/4/6/7 or vowel keys 8/9/0), which are a strong sign of Mandarin phonetic keystrokes typed in the wrong input mode. Run scripts/decode_bopomofo.py to deterministically map the keystrokes back to 注音 symbols with a confidence score, then interpret the intended Traditional Chinese in context and continue the user's original request without making them retype. Do NOT trigger on genuine technical strings — code, file paths, URLs, git hashes, CLI flags, package names, version numbers — the script's exclusion rules and confidence tiers already filter these out. Especially valuable for Taiwanese developers who forget to switch input methods when prompting AI coding agents.

日本語の概要は準備中です。原文の説明を表示しています。

mxyhi/ok-skills4982026年10月18日 更新

mxyhi のスキルをすべて見る

このスキルの問題を報告する