Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

binary-ninja-reverse

skill:zhaoxuya520/reverse-skill#binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

Verdict
Inconclusive

The analysis could not cover enough of the artifact to decide.

Analyzed Oct 27, 2026, 21:53 UTC at cab634b

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

0
findings
—
highest severity
0
threat classes
632
files scanned
21/21
checks satisfied
0
package advisories

Why this verdict

  • inconclusive: gap invalid_judge_finding
  • inconclusive: gap request_unanswered
  • inconclusive: unresolved question on EXEC

Security findings 0

No individual findings recorded

The inconclusive verdict rests on the open questions and coverage gaps below; 2 candidate findings were refuted on review.

Open questions 4

What the analysis could not settle from the code alone.

Whether the published npm tarball binary-ninja-mcp@1.0.0 corresponds to the reviewed commit 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306 of fosdickio/binary_ninja_mcp cannot be determined from the artifact; the third-party package itself is out of scope.
Supply chain
[file request skills/tool-index.md] The skill instructs the agent to 'Check skills/tool-index.md for binaryninja'. Does the binaryninja entry (or any adjacent content in that file) contain behavioral directives, hidden or encoded content, or steering beyond binary analysis?
Agent hijacking
[file request skills/tool-index.md] What does the binaryninja entry in the tool index instruct? The skill directs the agent to check this entry (claiming manual, licensed installation); confirm it contains no auto-install commands, non-official URLs, or automation beyond manual installation.
Supply chain
[file request skills/binary-ninja-reverse/SKILL.md] What instructions, commands, tool permissions, or automation steps appear in SKILL.md lines 5-16 between the description block and the integration section?
Code execution
Refuted findings 2

Candidates the review stage examined and rejected, kept for transparency.

Persistence

criticalRefutedlow confidence

The skill instructs the agent to write the pinned npx bridge command into the selected MCP client's configuration, an agent control-plane MCP-config write that adds a third-party server to the agent's tool set.

Register that command only in the MCP client the user selected.
Why it was refuted

Writing the pinned bridge command into the MCP client config is the mechanism of the skill's declared core capability (optional Binary Ninja MCP integration), and it is not silent persistence: the skill restricts registration to the client the user selected and gates the whole bridge on explicit user request, so the harm and undeclared gates fail via carve-out.

Supply chain

highRefutedlow confidence

The skill instructs the agent to auto-install and execute the third-party npm package binary-ninja-mcp@1.0.0 via npx -y, so the executed code is whatever the registry serves for that version and is not verifiably tied to the reviewed source commit 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306.

npx -y binary-ninja-mcp@1.0.0 --host 127.0.0.1 --port 9009
Why it was refuted

The instruction is a version-pinned (@1.0.0) install from the official npm registry of the skill's openly declared, explicitly user-gated MCP integration ('use only when explicitly requested'), which is exactly the pinned official-registry-install and declared-core-capability carve-outs; the residual registry-vs-commit concern is the risk the pinned-install carve-out accepts.

Coverage gaps 39

Parts of the artifact the static analysis could not fully examine.

context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineArgumentException.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineOption.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$AfterOptions.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$KnownOptionParserState.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$MissingOptionArgState.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionAwareParserState.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionParserState.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$OptionString.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$ParserState.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser$UnknownOptionParserState.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/CommandLineParser.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLine.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/cli/ParsedCommandLineOption.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/internal/file/PathTraversalChecker.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/internal/file/locking/ExclusiveFileAccessManager.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/util/internal/WrapperDistributionUrlConverter.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/BootstrapMainStarter$1.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$DefaultDownloadProgressListener.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download$ProxyAuthenticator.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Download.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleUserHomeLookup.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/GradleWrapperMain.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$1.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install$InstallCheck.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Install.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/Logger.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/PathAssembler.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/SystemPropertiesHandler.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperConfiguration.class
context:unanalyzable_binary java_class content is only byte-scanned
burp-mcp-full/gradle/wrapper/gradle-wrapper.jar!/org/gradle/wrapper/WrapperExecutor.class
context:unanalyzable_binary binary content is only byte-scanned
skills/pentest-tools/src-hunter/references/payloader/by-category/web/文件漏洞.md
context:unanalyzable_binary binary content is only byte-scanned
skills/pentest-tools/src-hunter/references/payloader/by-category/web/请求走私.md
context:unanalyzable_binary binary content is only byte-scanned
skills/pentest-tools/src-hunter/references/payloader/waf-bypass.md
context:unanalyzable_binary binary content is only byte-scanned
skills/pentest-tools/src-hunter/references/playbooks/file-upload.md
context:unanalyzable_binary binary content is only byte-scanned
skills/pentest-tools/src-hunter/references/playbooks/http-smuggling.md
context:frontmatter_unparseable while parsing a block mapping
skills/field-journal/2026-05-16_pentest-personalblog-fun-mass-assignment.md
request_unanswered request.0: behavior-chains.0/skill-md-gap: finding: no valid finding cites the answer's evidence
invalid_judge_finding request.0