Etto48/HexPatch

GitHub: Etto48/HexPatch

一款基于 Rust 的终端二进制补丁编辑器,支持多架构反汇编与汇编,可通过 SSH 远程编辑二进制文件。

Stars: 321 | Forks: 10

# ![Logo](https://raw.githubusercontent.com/Etto48/HexPatch/master/assets/logo.svg) HexPatch
[![Crate Badge]][Crate] [![CI Badge]][CI] [![Deps.rs Badge]][Deps.rs] [![License Badge]][License] [![GitHub IO Badge]][GitHub IO]
HexPatch 是一款带有终端用户界面 (TUI) 的二进制补丁和编辑工具,它能够反汇编指令并汇编补丁。 它支持多种架构和文件格式。 此外,它可以通过 SSH 编辑远程文件。 请访问 [GitHub Pages][GitHub IO] 了解更多信息并查看一些截图。 ## 安装 ### 使用 cargo 如果您已经安装了所需的依赖项,只需运行以下命令: ``` cargo install hex-patch ``` ### 前置条件 - [CMake](https://cmake.org/download/) - [Python](https://www.python.org/downloads/) - Windows 上的 [MSVC](https://visualstudio.microsoft.com/visual-cpp-build-tools/) - Linux 上的 [GCC](https://gcc.gnu.org/) - macOS 上的 [Xcode Command Line Tools](https://developer.apple.com/) - [Rust](https://www.rust-lang.org/tools/install) ### 使用包管理器 #### NetBSD 在 NetBSD 上,可以从[官方仓库](https://pkgsrc.se/devel/hexpatch/)获取该软件包。 要安装它,只需运行: ``` pkgin install hexpatch ``` ##### 在 NetBSD 上从源码构建 如果您更喜欢从源码构建: ``` cd /usr/pkgsrc/devel/hexpatch make install ``` #### Arch Linux 在 Arch Linux 上,可以从[官方仓库](https://archlinux.org/packages/extra/x86_64/hexpatch/)获取该软件包: ``` pacman -S hexpatch ``` #### X-CMD 如果您是 [x-cmd](https://x-cmd.com) 的用户,可以运行: ``` x install hexpatch ``` ### 使用 cargo 从源码构建 克隆仓库 ``` git clone https://github.com/Etto48/HexPatch.git cd HexPatch ``` 构建并安装 ``` cargo install --path . ``` ### 使用 Docker 运行 您可以使用 [Docker](https://www.docker.com/get-started) 运行 HexPatch。 ``` docker build -t hexpatch . docker run -it -v : hexpatch ``` 如果您在从源码构建时遇到问题,这可能是一个很好的替代方案。 ## SSH 连接 要通过 SSH 进行连接,您可以使用以下命令: ``` hex-patch --ssh @[:] [--password ] [additional arguments] ``` 如果您未指定密码,则客户端必须配置密钥对身份验证,并且您的 `~/.ssh` 目录中必须拥有一个密钥。 密钥将按以下顺序进行搜索: - id_rsa - id_ed25519 - id_ecdsa - id_dsa 将使用找到的第一个密钥。 ## 支持的文件格式和架构 默认支持以下文件格式: - Coff - CoffBig - Elf32 - Elf64 - MachO32 - MachO64 - Pe32 - Pe64 - Xcoff32 - Xcoff64 可以通过[插件](#plugins)添加其他文件格式。 支持以下架构: - Aarch64 - Aarch64_Ilp32 - Arm - I386 - X86_64 - X86_64_X32 - Mips - Mips64 - PowerPc - PowerPc64 - Riscv32 - Riscv64 - S390x - Sparc64 ## 设置 请阅读[设置文档](./SETTINGS.md)以获取更多信息。 ## 国际化 HexPatch 支持翻译,可以在设置文件中进行配置。请参阅[国际化文档](./I18N.md)获取可用语言环境列表以及如何添加新语言的说明。 您可以在设置文件中通过 `app.locale` 键来设置区域设置。有关更多信息,请参阅[设置文档](./SETTINGS.md)。 ## 插件 HexPatch 支持使用 Lua 编写的插件。 插件必须放置在 hex-patch 配置目录的 `plugins` 文件夹中。 可以通过 `--plugins` 标志指定不同的插件目录。 您可以在[此处](./PLUGIN_API.md)找到有关 Plugin Lua API 的更多信息。 ## 已知问题 - 某些组合键可能无法按预期工作,尤其是在 VSCode 终端中的 `SHIFT + ENTER`。请参阅[此 issue](https://github.com/crossterm-rs/crossterm/issues/685)获取更多信息。遗憾的是,此行为非我所能控制。 ## 特别感谢 感谢 [@Lorenzinco](https://github.com/Lorenzinco) 提供的指令高亮功能。 感谢所有[翻译人员](./I18N.md)对 HexPatch 国际化做出的贡献。
标签:Bash脚本, Docker, Findomain, Hakrawler, Hex编辑器, rizin, Rust, SSH, TUI, 二进制编辑器, 二进制补丁工具, 云资产清单, 可视化界面, 安全防御评估, 文件格式解析, 汇编与反汇编, 漏洞分析, 终端用户界面, 网络安全, 网络流量审计, 请求拦截, 路径探测, 远程文件编辑, 逆向工程, 通知系统, 隐私保护