suifei/asm2hex

GitHub: suifei/asm2hex

一款跨平台图形化工具,支持多种指令集架构下汇编语言与十六进制机器码的双向实时转换。

Stars: 116 | Forks: 25

# v2-asm2hex2 [![GitHub 连续贡献](https://streak-stats.demolab.com?user=suifei&theme=swift&locale=zh_Hans&date_format=%5BY.%5Dn.j)](https://git.io/streak-stats) [![ASM to HEX 转换器构建](https://static.pigsec.cn/wp-content/uploads/repos/cas/01/0108cf056af66c58e56d6c12a3c26ed3cc45e7f427ee3c22ec8696424fdd19ec.svg)](https://github.com/suifei/asm2hex/actions/workflows/main.yml) [![GitHub stars](https://img.shields.io/github/stars/suifei/asm2hex.svg?style=flat-square)](https://github.com/suifei/asm2hex) [![GitHub forks](https://img.shields.io/github/forks/suifei/asm2hex.svg?style=flat-square)](https://github.com/suifei/asm2hex) [![GitHub 关注者](https://img.shields.io/github/followers/suifei.svg?style=social&label=Follow&maxAge=2592000)](https://github.com/suifei?tab=followers) [![Twitter 关注](https://img.shields.io/twitter/follow/csuifei?style=social)](https://twitter.com/csuifei) [![Go 报告卡](https://goreportcard.com/badge/github.com/suifei/asm2hex)](https://goreportcard.com/report/github.com/suifei/asm2hex) [![许可证](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![GoDoc](https://godoc.org/github.com/suifei/asm2hex?status.svg)](https://pkg.go.dev/github.com/suifei/asm2hex) [![发布](https://img.shields.io/github/release/suifei/asm2hex.svg?style=flat-square)](https://github.com/suifei/asm2hex/releases) [![下载](https://img.shields.io/github/downloads/suifei/asm2hex/total)](https://github.com/suifei/asm2hex/releases) [![GitHub issues](https://img.shields.io/github/issues/suifei/asm2hex.svg?style=flat-square)](https://github.com/suifei/asm2hex) [![GitHub 最近提交](https://img.shields.io/github/last-commit/suifei/asm2hex.svg?style=flat-square)](https://github.com/suifei/asm2hex) [![GitHub 贡献者](https://img.shields.io/github/contributors/suifei/asm2hex.svg?style=flat-square)](https://github.com/suifei/asm2hex) 一款功能强大的跨平台 GUI 工具,用于汇编与机器码转换,采用 C++ 全新重构。 ## V2 版本更新 v2-asm2hex2 已完全使用 C++ 重写,相比前代 Golang 版本带来了显著的进化。新版本不仅提供了更优的性能、更广的兼容性和更丰富的功能,同时保持了同样直观的使用体验。 ### 主要特性 - **增强的汇编信息**:新增“Verbose”模式,提供详尽的汇编分析 - **跨平台兼容性**:基于 wxWidgets 3.2.2 构建,确保各操作系统下的一致体验 - **扩展的系统支持**:向下兼容至 Windows 7 及同等系统 - **强大的引擎集成**:汇编使用 Keystone Engine,反汇编使用 Capstone Engine - **友好的用户界面**:简洁直观的 GUI,提供简单的“汇编”和“反汇编”操作 ### 核心功能 - 汇编代码转机器码(Hex) - 机器码反编译为汇编代码 - Verbose 模式下的详细指令分析 - 单击按钮即可实时转换 中文版说明: # v2-asm2hex2 一款功能强大的跨平台汇编代码转换工具,采用C++全新重构。 ## V2 版本更新 v2-asm2hex2 已完全使用C++重写,相比前代Golang版本带来了显著的进化。新版本不仅提供了更优的性能和更广的兼容性,还增添了丰富的新功能,同时保持了直观的使用体验。 ### 核心特性 - **增强的汇编信息**: 新增"Verbose"模式,提供详尽的汇编分析 - **真正的跨平台**: 基于 wxWidgets 3.2.2 构建,确保各操作系统下的一致体验 - **扩展的系统支持**: 向下兼容至 Windows 7 及同等系统 - **强大的引擎支持**: 集成 Keystone Engine 和 Capstone Engine 双引擎 - **友好的用户界面**: 简洁直观的界面设计,一键即可完成转换 ### 核心功能 - 汇编代码转机器码(Hex) - 机器码反编译为汇编代码 - Verbose 模式下的详细指令分析 - 单击按钮即可实时转换 # ASM2HEX ASM2HEX是一款用Go语言编写的,基于Fyne框架开发的汇编语言与十六进制机器码相互转换的图形化工具。它支持ARM64、ARM和Thumb三种指令集。 ## 支持的汇编指令集 下表列出了当前版本支持的汇编指令集以及对应的汇编器(Keystone)和反汇编器(Capstone)的支持情况: | 指令集 | 架构 | 汇编(Keystone) | 反汇编(Capstone) | |------------|------------|----------------|-----------------| | ARM | ARM | ✓ | ✓ | | ARM64 | ARM64 | ✓ | ✓ | | MIPS | MIPS | ✓ | ✓ | | X86 | X86 | ✓ | ✓ | | PPC | PPC | ✓ | ✓ | | SPARC | SPARC | ✓ | ✓ | | SystemZ | SYSTEMZ | ✓ | ✓ | | Hexagon | HEXAGON | ✓ | ✗ | | EVM | EVM | ✓ | ✓ | | XCORE | XCORE | ✗ | ✓ | | M68K | M68K | ✗ | ✓ | | TMS320C64X | TMS320C64X | ✗ | ✓ | | M680X | M680X | ✗ | ✓ | | MOS65XX | MOS65XX | ✗ | ✓ | | WASM | WASM | ✗ | ✓ | | BPF | BPF | ✗ | ✓ | | RISCV | RISCV | ✗ | ✓ | | SH | SH | ✗ | ✓ | | TriCore | TRICORE | ✗ | ✓ | ✓ 表示支持该指令集,✗ 表示不支持该指令集。 ## v1.2.0 版本更新说明 ### 新增功能 - 增加了对多种指令集,架构汇编、反汇编的支持,现在可以在主界面上选择。 - 支持多种汇编指令集,包括 ARM、ARM64、MIPS、X86、PPC、SPARC、SystemZ、Hexagon 和 EVM。 - 提供了统一的接口,可以方便地进行汇编和反汇编操作。 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/00/008442ab7d964adf163db1917f7f6445acf68aa4d2f9b083ebad00dd1c0c8c34.png) ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/c9/c9487f76d883a9898db459a3b558bd26e72dd1951a6e672f1abeb30be53e43c0.png) ### 改进 - 优化了代码结构,提高了代码的可读性和可维护性。 - 改进了错误处理机制,提供更友好的错误提示信息。 - 发布了 github actions 自动化构建流程,保证了代码质量和稳定性。 ### 修复 - 修复了一些潜在的 bug 和稳定性问题。 ### 其他 - 更新了文档和示例代码,方便用户快速上手使用。 希望这次更新能够为用户带来更好的使用体验,如果您在使用过程中遇到任何问题或有任何建议,欢迎向我们反馈。 [**完整变更日志**](https://github.com/suifei/asm2hex/compare/v1.1...main) ## 功能特点 - 支持ARM64、ARM和Thumb指令集的汇编语言与十六进制机器码的双向转换 - 可自定义偏移地址,支持大端和小端两种字节序 - 使用Keystone作为汇编引擎,Capstone作为反汇编引擎,转换准确可靠 - 基于Fyne框架开发的现代化图形界面,操作简单直观 - 跨平台支持,可在Windows、macOS和Linux等多种操作系统上运行 ## 安装方法 1. 安装Go语言开发环境。 2. 获取ASM2HEX的源代码: git clone https://github.com/suifei/asm2hex.git 3. 进入项目目录,下载依赖包: cd asm2hex go get ./... 4. 编译生成可执行文件: [COMPILE.MD](COMPILE.md) 现在可以直接运行生成的可执行文件,享受ASM2HEX带来的便利! ## 使用说明 ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/b.png) ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/a.png) ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/c.png) ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/d.png) 1. 在左侧的输入框中输入汇编指令或十六进制机器码。多条指令/数据可以分行输入。 2. 在偏移量输入框中可以指定初始地址的偏移量。偏移量需要以十六进制格式输入。 3. 点击"0x"选框,可以控制十六进制机器码是否包含"0x"前缀。 4. 点击"GDB/LLDB"选框可以控制字节序,勾选表示使用大端字节序,未勾选则使用小端字节序。 5. 点击"转换"按钮,ASM2HEX会自动完成转换,并将结果实时显示在右侧的ARM64、ARM和Thumb三个选项卡中。 6. 可以通过"清除"按钮清空输入输出,方便进行下一次转换。 7. "切换模式"按钮可以切换工具当前的工作模式。默认模式是汇编转十六进制,切换后即成为十六进制转汇编模式。 8. 单击每个选项卡右上角的复制图标,即可将该选项卡的内容复制到剪贴板,方便使用。 ## 许可证 ASM2HEX采用MIT许可证进行发布,详情参见[LICENSE](LICENSE)文件。 ## 行为准则 在参与 ASM2HEX 项目时,请遵循我们的 [行为准则](CODE_OF_CONDUCT.md)。我们致力于维护一个友好、包容的社区环境,所有参与者都应该感到受欢迎和尊重。 再次感谢你的贡献!如果你有任何问题或需要进一步的帮助,请随时联系我们。 ## 联系方式 如果您在使用过程中遇到任何问题,或者有任何建议和反馈,欢迎通过以下方式联系我: - 邮箱: c3VpZmUgQGdtYWlsIGRvdGNvbQ== - QQ群: 555354813 - GitHub: https://github.com/suifei/asm2hex - 论坛: [pediy](https://bbs.kanxue.com/thread-281871.htm) [52pojie](https://www.52pojie.cn/thread-1927199-1-1.html) - 下载: [国内地址1](https://pan.baidu.com/s/1EiXuE9UDfQrAtf4heFINHQ?pwd=52pj) - 分流: [国内地址1](https://pan.baidu.com/s/1TgSNXi3-DZxg5lqaJiBeyA?pwd=8888) 希望ASM2HEX能够成为您的汇编开发和学习的得力助手! ## 英文版 README.md # ASM2HEX ASM2HEX 是一款用 Go 语言编写的图形化工具,基于 Fyne 框架开发,用于在汇编语言和十六进制机器码之间进行双向转换。它支持三种指令集:ARM64、ARM 和 Thumb。 ## 功能特点 - 支持 ARM64、ARM 和 Thumb 指令集的汇编语言与十六进制机器码之间的双向转换 - 可自定义偏移地址,支持大端和小端字节序 - 使用 Keystone 作为汇编引擎,Capstone 作为反汇编引擎,确保转换准确可靠 - 基于 Fyne 框架开发的现代化图形界面,操作简单直观 - 跨平台支持,可在 Windows、macOS 和 Linux 等多种操作系统上运行 ## 安装说明 1. 安装 Go 语言开发环境。 2. 获取 ASM2HEX 的源代码: git clone https://github.com/suifei/asm2hex.git 3. 进入项目目录并下载依赖包: cd asm2hex go get ./... 4. 编译生成可执行文件: [COMPILE.MD](COMPILE.md) 现在您可以直接运行生成的可执行文件,享受 ASM2HEX 带来的便利! ## 使用说明 ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/b.png) ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/a.png) ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/c.png) ![](https://raw.githubusercontent.com/suifei/asm2hex/main/screenshots/d.png) 1. 在左侧的输入框中输入汇编指令或十六进制机器码。多条指令/数据可以分行输入。 2. 您可以在偏移量输入框中指定初始地址的偏移量。偏移量需要以十六进制格式输入。 3. 点击“0x”复选框,控制十六进制机器码是否包含“0x”前缀。 4. 点击“GDB/LLDB”复选框控制字节序。勾选表示使用大端字节序,未勾选则使用小端字节序。 5. 点击“转换”按钮,ASM2HEX 将自动完成转换,并实时将结果显示在右侧的 ARM64、ARM 和 Thumb 选项卡中。 6. 您可以使用“清除”按钮清空输入和输出,方便进行下一次转换。 7. “切换模式”按钮可以切换工具当前的工作模式。默认模式是汇编转十六进制,切换后即变为十六进制转汇编模式。 8. 点击每个选项卡右上角的复制图标,可将该选项卡的内容复制到剪贴板,方便使用。 ## 许可证 ASM2HEX 在 MIT 许可证下发布。详情请参阅 [LICENSE](LICENSE) 文件。 ## 行为准则 在参与 ASM2HEX 项目时,请遵循我们的 [行为准则](CODE_OF_CONDUCT.md)。我们致力于维护一个友好、包容的社区环境,让所有参与者都感到受欢迎和受到尊重。 再次感谢您的贡献!如果您有任何问题或需要进一步的帮助,请随时联系我们。 ## 联系方式 如果您在使用过程中遇到任何问题,或有任何建议和反馈,欢迎通过以下方式联系我: - 邮箱:c3VpZmUgQGdtYWlsIGRGNvbQ== - QQ群:555354813 - GitHub:https://github.com/suifei/asm2hex 希望 ASM2HEX 能成为您在汇编开发和学习中的得力助手!
标签:ARM64, C++, EVTX分析, GUI工具, SOC Prime, 开发工具, 快速连接, 指令集转换, 数据擦除, 日志审计, 汇编语言