{"id":31330918,"url":"https://github.com/etto48/hexpatch","last_synced_at":"2026-01-21T17:09:06.523Z","repository":{"id":225694111,"uuid":"766544950","full_name":"Etto48/HexPatch","owner":"Etto48","description":"HexPatch: a binary patcher and editor written in Rust with terminal user interface (TUI).","archived":false,"fork":false,"pushed_at":"2025-08-12T14:42:08.000Z","size":10909,"stargazers_count":286,"open_issues_count":3,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-20T14:56:35.783Z","etag":null,"topics":["aarch64","arm","binary-patching","elf","hex-editor","lua","mach-o","portable-executable","reverse-engineering","sftp","ssh","tui","x86","x86-64"],"latest_commit_sha":null,"homepage":"https://etto48.github.io/HexPatch/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Etto48.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-03T15:05:47.000Z","updated_at":"2025-09-15T10:08:40.000Z","dependencies_parsed_at":"2025-06-01T12:21:37.450Z","dependency_job_id":"65f74dc6-1040-42a7-baee-f46a6783b1ed","html_url":"https://github.com/Etto48/HexPatch","commit_stats":null,"previous_names":["etto48/hexedit","etto48/hexpatch"],"tags_count":42,"template":false,"template_full_name":null,"purl":"pkg:github/Etto48/HexPatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Etto48%2FHexPatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Etto48%2FHexPatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Etto48%2FHexPatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Etto48%2FHexPatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Etto48","download_url":"https://codeload.github.com/Etto48/HexPatch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Etto48%2FHexPatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277000724,"owners_count":25742934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aarch64","arm","binary-patching","elf","hex-editor","lua","mach-o","portable-executable","reverse-engineering","sftp","ssh","tui","x86","x86-64"],"created_at":"2025-09-26T00:15:07.723Z","updated_at":"2025-09-26T00:15:09.601Z","avatar_url":"https://github.com/Etto48.png","language":"Rust","readme":"# ![Logo](./assets/logo.svg) HexPatch\n\n\u003cdiv align=center\u003e\n\n[![Crate Badge]][Crate] [![CI Badge]][CI] [![Deps.rs Badge]][Deps.rs] [![License Badge]][License] [![GitHub IO Badge]][GitHub IO]\n\n\u003c/div\u003e\n\nHexPatch is a binary patcher and editor with terminal user interface (TUI), it's capable of disassembling instructions and assembling patches.\nIt supports a variety of architectures and file formats.\nAlso, it can edit remote files via SSH.\n\nTake a look at [GitHub Pages][GitHub IO] for more information and some screenshots.\n\n## Installation\n\n### Using cargo\n\nIf you already have the requirements installed, you only need to run the following command:\n\n```bash\ncargo install hex-patch\n```\n\n### Requirements\n\n- [CMake](https://cmake.org/download/)\n- [Python](https://www.python.org/downloads/)\n- [MSVC](https://visualstudio.microsoft.com/visual-cpp-build-tools/) on Windows\n- [GCC](https://gcc.gnu.org/) on Linux\n- [Xcode Command Line Tools](https://developer.apple.com/) on macOS\n- [Rust](https://www.rust-lang.org/tools/install)\n\n### Using your package manager\n\n#### NetBSD\n\nOn NetBSD, a package is available from the [official repositories](https://pkgsrc.se/devel/hexpatch/).\nTo install it, simply run:\n\n```bash\npkgin install hexpatch\n```\n\n##### Build from source on NetBSD\n\nIf you prefer to build from source:\n\n```bash\ncd /usr/pkgsrc/devel/hexpatch\nmake install\n```\n\n#### Arch Linux\n\nOn Arch Linux, a package is available from the [official repositories](https://archlinux.org/packages/extra/x86_64/hexpatch/):\n\n```bash\npacman -S hexpatch\n```\n\n#### X-CMD\n\nIf you are a user of [x-cmd](https://x-cmd.com), you can run:\n\n```bash\nx install hexpatch\n```\n\n### Building from source with cargo\n\nClone the repository\n\n```bash\ngit clone https://github.com/Etto48/HexPatch.git\ncd HexPatch\n```\n\nBuild and install\n\n```bash\ncargo install --path .\n```\n\n### Running with Docker\n\nYou can run HexPatch with [Docker](https://www.docker.com/get-started).\n\n```bash\ndocker build -t hexpatch .\ndocker run -it -v \u003clocal file or directory\u003e:\u003ccontainer file or directory\u003e hexpatch\n```\n\nIf you have problems building from source, this could be a good alternative.\n\n## SSH connection\n\nIn order to connect via SSH, you can use the following command:\n\n```bash\nhex-patch --ssh \u003cuser\u003e@\u003chost\u003e[:\u003cport\u003e] [--password \u003cpassword\u003e] [additional arguments]\n```\n\nIf you don't specify a password, the client must be set up with keypair authentication and you must have a key in your `~/.ssh` directory.\n\nKeys are searched in the following order:\n\n- id_rsa\n- id_ed25519\n- id_ecdsa\n- id_dsa\n\nThe first key found will be used.\n\n## Supported file formats and architectures\n\nThe following file formats are supported by default:\n\n- Coff\n- CoffBig\n- Elf32\n- Elf64\n- MachO32\n- MachO64\n- Pe32\n- Pe64\n- Xcoff32\n- Xcoff64\n\nOther file formats can be added with [plugins](#plugins).\n\nThe following architectures are supported:\n\n- Aarch64\n- Aarch64_Ilp32\n- Arm\n- I386\n- X86_64\n- X86_64_X32\n- Mips\n- Mips64\n- PowerPc\n- PowerPc64\n- Riscv32\n- Riscv64\n- S390x\n- Sparc64\n\n## Settings\n\nRead the [settings documentation](./SETTINGS.md) for more information.\n\n## Internationalization\n\nHexPatch supports translations, which can be set in the settings file. See the [internationalization documentation](./I18N.md) for a list of available locales and how to add a new one.\nYou can set the locale with the key `app.locale` in the settings file. See the [settings documentation](./SETTINGS.md) for more information.\n\n## Plugins\n\nHexPatch supports plugins written in Lua.\nPlugins must be placed in the `plugins` directory in hex-patch's configuration directory.\nA different plugins directory can be specified with the `--plugins` flag.\n\nYou can find more information about the Plugin Lua API [here](./PLUGIN_API.md).\n\n## Known issues\n\n- Some key combinations may not work as expected, notably `SHIFT + ENTER` on VSCode terminal. Please refer to [this issue](https://github.com/crossterm-rs/crossterm/issues/685) for more information. Unfortunately, this behavior is out of my control.\n\n## Special thanks\n\nThanks to [@Lorenzinco](https://github.com/Lorenzinco) for the instruction highlighting.\n\nThanks to all the [translators](./I18N.md) for their contributions to the internationalization of HexPatch.\n\n[Crate]: https://crates.io/crates/hex-patch\n[Crate Badge]: https://img.shields.io/crates/v/hex-patch?logo=rust\u0026style=flat-square\u0026logoColor=E05D44\u0026color=E05D44\n[CI]: https://github.com/Etto48/HexPatch/actions/workflows/ci.yml\n[CI Badge]: https://img.shields.io/github/actions/workflow/status/Etto48/HexPatch/ci.yml?style=flat-square\u0026logo=github\n[Deps.rs]: https://deps.rs/repo/github/Etto48/HexPatch\n[Deps.rs Badge]: https://deps.rs/repo/github/Etto48/HexPatch/status.svg?style=flat-square\n[License]: https://github.com/Etto48/HexPatch/blob/master/LICENSE\n[License Badge]: https://img.shields.io/github/license/Etto48/HexPatch?style=flat-square\u0026color=blue\n[GitHub IO Badge]: https://img.shields.io/badge/GitHub-IO-black?style=flat-square\u0026logo=github\n[GitHub IO]: https://etto48.github.io/HexPatch/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetto48%2Fhexpatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetto48%2Fhexpatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetto48%2Fhexpatch/lists"}