Etto48/HexPatch
GitHub: Etto48/HexPatch
一款基于 Rust 的终端二进制补丁编辑器,支持多架构反汇编与汇编,可通过 SSH 远程编辑二进制文件。
Stars: 321 | Forks: 10
#  HexPatch
: 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 国际化做出的贡献。
[![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 标签:Bash脚本, Docker, Findomain, Hakrawler, Hex编辑器, rizin, Rust, SSH, TUI, 二进制编辑器, 二进制补丁工具, 云资产清单, 可视化界面, 安全防御评估, 文件格式解析, 汇编与反汇编, 漏洞分析, 终端用户界面, 网络安全, 网络流量审计, 请求拦截, 路径探测, 远程文件编辑, 逆向工程, 通知系统, 隐私保护