chenzhuoyu/iasm
GitHub: chenzhuoyu/iasm
iasm 是一个纯 Go 实现的 x86_64 交互式汇编引擎,既可嵌入程序作为动态汇编器用于 JIT 和编译器后端,也可独立运行作为静态汇编器和 REPL 工具。
Stars: 68 | Forks: 16
# 项目已转移至 [https://github.com/cloudwego/iasm],请改用该地址
# `IASM` -- Go 的交互式汇编器。
用纯 Golang 编写的双用途汇编引擎。
`x86_64` 包是从 Python 模块 [`PeachPy`](https://github.com/Maratyszcza/PeachPy) 移植而来,并针对 Go 语言特性进行了一些适配。
**目前,IASM 仅支持 x86_64,因为这是我唯一非常熟悉的架构。**
### 它可以用作动态汇编器
这可用于实现:
* JIT 引擎
* 编译器后端
* 以及更多功能!
有关更多信息,请参见 `x86_64/program_test.go`。
### 它也可以用作静态汇编器
对于 `macOS`:
```
git clone https://github.com/chenzhuoyu/iasm
cd iasm
go build ./cmd/iasm
./iasm -h
./iasm -f macho -D __Darwin__ -o helloworld example/helloworld.s
./helloworld
```
### 它还包含一个交互式 REPL shell
只需在没有任何参数的情况下运行 IASM。
```
./iasm
```
标签:Go语言, JIT引擎, x86_64架构, 后端开发, 日志审计, 汇编器, 程序破解, 编译器后端