ASM2HEX ARM指令转换工具
本帖最后由 suifei 于 2024-5-24 09:44 编辑ASM2HEX是一款用Go语言编写的,基于Fyne框架开发的汇编语言与十六进制机器码相互转换的图形化工具。它支持ARM64、ARM和Thumb三种指令集。
## 最新更新
- **新增加 `ASM2HEX_WIN_X64_Static_v1.1.zip` 不需要额外的依赖,绿色单文件执行(Windows 8 x64 or High)**
- **新增加 `ASM2HEX_MacOS_Arm64_v1.1.zip` 版本,如果解压后运行受限,请尝试输入 `xattr -cr /Applications/ASM\ to\ HEX\ Converter.app`(macOS m1,m2)**
- **优化 Windows ,macOS 版本 Releases, 截图更新到最新版本**
- **优化了用户界面布局,增加了更多的垂直空间,使汇编代码和转换结果能够显示更多内容。**
- **在 "关于" 对话框中添加了 Fyne、Capstone 和 Keystone 的链接和图标,方便用户快速访问这些项目的网站。**
- **改进了状态栏的显示,增加了 "清除" 按钮的重要性,使其更加醒目。**
- **修复了一些小的 bug,提高了程序的稳定性。**
## 安装方法
解压后运行。
- ASM2HEX_MacOS_Arm64_v1.1.zip (Macos Arm 处理器 m1,m2,m3 版本)
- ASM2HEX_WIN_X64_Static_v1.1.zip (Windows x64 单文件)
- ASM2HEX_WIN_X64_v1.1.zip (Windows x64 主程序+dll)
- msys64.7z(Windows 10 的编译环境,请解压到 D 盘根目录,运行`D:\msys64\mingw64.exe`进入编译环境,切换到源码目录内,运行'make',先编译`lib`,再`build`)
## 功能特点
- 支持ARM64、ARM和Thumb指令集的汇编语言与十六进制机器码的双向转换
- 可自定义偏移地址,支持大端和小端两种字节序
- 使用Keystone作为汇编引擎,Capstone作为反汇编引擎,转换准确可靠
- 跨平台支持,可在Windows、macOS操作系统上运行(目前只完成了这两个平台的编译发布)
- 完全离线运行,无任何三方依赖,源代码开放
## 使用说明
1. 在左侧的输入框中输入汇编指令或十六进制机器码。多条指令/数据可以分行输入。
2. 在偏移量输入框中可以指定初始地址的偏移量。偏移量需要以十六进制格式输入。
3. 点击"0x"选框,可以控制十六进制机器码是否包含"0x"前缀。
4. 点击"GDB/LLDB"选框可以控制字节序,勾选表示使用大端字节序,未勾选则使用小端字节序。
5. 点击"转换"按钮,ASM2HEX会自动完成转换,并将结果实时显示在右侧的ARM64、ARM和Thumb三个选项卡中。
6. 可以通过"清除"按钮清空输入输出,方便进行下一次转换。
7. "切换模式"按钮可以切换工具当前的工作模式。默认模式是汇编转十六进制,切换后即成为十六进制转汇编模式。
8. 单击每个选项卡右上角的复制图标,即可将该选项卡的内容复制到剪贴板,方便使用。
## v1.1 更新内容
- 优化了用户界面布局,增加了更多的垂直空间,使汇编代码和转换结果能够显示更多内容。
- 在 "关于" 对话框中添加了 Fyne、Capstone 和 Keystone 的链接和图标,方便用户快速访问这些项目的网站。
- 改进了状态栏的显示,增加了 "清除" 按钮的重要性,使其更加醒目。
- 修复了一些小的 bug,提高了程序的稳定性。
## 致谢
ASM2HEX的开发得益于以下开源项目:
- Fyne: 基于Go的跨平台图形界面框架
- Keystone: 轻量级的多架构汇编引擎
- Capstone: 多架构支持的反汇编引擎
感谢这些优秀项目的贡献者和维护者!
## 下载地址
链接:https://pan.baidu.com/s/1EiXuE9UDfQrAtf4heFINHQ?pwd=52pj
分流:https://pan.baidu.com/s/1TgSNXi3-DZxg5lqaJiBeyA?pwd=8888
本帖最后由 suifei 于 2024-5-27 22:15 编辑
## v1.2.0 版本更新说明
### 新增功能
- 增加了对多种指令集,架构汇编、反汇编的支持,现在可以在主界面上选择。
- 支持多种汇编指令集,包括 ARM、ARM64、MIPS、X86、PPC、SPARC、SystemZ、Hexagon。
- 提供了统一的接口,可以方便地进行汇编和反汇编操作。
### 改进
- 优化了代码结构,提高了代码的可读性和可维护性。
- 改进了错误处理机制,提供更友好的错误提示信息。
- 发布了 github actions 自动化构建流程,保证了代码质量和稳定性。
## 支持的汇编指令集
下表列出了当前版本支持的汇编指令集以及对应的汇编器(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 | ✗ | ✓ |
✓ 表示支持该指令集,✗ 表示不支持该指令集。
### 修复
- 修复了一些潜在的 bug 和稳定性问题。
### 其他
- 更新了文档和示例代码,方便用户快速上手使用。
- 希望这次更新能够为用户带来更好的使用体验,如果您在使用过程中遇到任何问题或有任何建议,欢迎向我们反馈。
下载地址见原帖,地址不变(上传文件为: ASM2HEX_WIN_X64_V1.2.zip) Keystone 的 RISCV 架构支持,目前还有问题,不知道是不是调用时存在的问题还是这个库还不完善,通过对比 Compiler Explorer发现汇编的指令完全不一致,还需检查问题原因。
https://github.com/suifei/asm2hex/tree/RISCV32
谁能帮忙看看? 多谢谢分享 嘿,这个东西好,正需要 谢谢楼主分享!!!{:1_918:} 感谢分享! 谢谢分享 不错的软件
多谢谢分享{:1_927:}
谢谢分享{:1_927:} 非常感谢!
有没有转化mips指令的 ?