Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Move functionality from plugins to a BinDiff server process

未关闭
#17 1 条评论 2 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
停滞
技术栈
cpp, grpc, java, python

调研方向

首先梳理当前在反汇编器插件和独立 UI 之间重复的功能,然后研究 BinExport 数据和流程图的处理方式。定义 gRPC 服务器边界以及 UI 和插件的渐进式采用路径;当客户端能够请求差异和流程图,同时 BinExport 数据仍加载在服务器进程中时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

enhancement

Is your feature request related to a problem? Please describe.

  • Diffing multiple times with the same primary from a disassembler is inefficient, as the export process needs to repeated each time
  • The IDA Pro plugin has a lot of functionality that has to be rewritten for each disassembler with few opportunities to share code (also C++ vs. Java in Ghidra)
  • The standalone UI also reimplements a lot of functionality of the IDA plugin, leading to subtle differences.

Describe the solution you'd like
Implement a local BinDiff RPC server using gRPC that get started on demand (similar to how Gradle/Bazel start build processes). The UI and other plugins can then start diffs (and the .BinExport will stay loaded in memory) and request flow graphs for view. This would help with implementing #16 as well. It would also enable BinDiff-as-a-service style deployments.

The plugins would become simpler and could be implemented in the repective disassembler's favoured scripting language (Python and PyQt for IDA Pro and Binary Ninja, Java Swing for Ghidra).

Describe alternatives you've considered
N/A

Additional context
It should be possible to implement this and adopt it gradually.

主要语言
Java
星标
3.2k
派生
243
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

google/bindiff 的其他 Issue

查看 google/bindiff 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。