25个版本
0.4.6 | 2024年5月8日 |
---|---|
0.4.5 | 2023年10月26日 |
0.4.0 | 2023年9月19日 |
0.3.3 | 2023年9月11日 |
0.1.0 | 2022年9月3日 |
#74 in 魔法豆
71 每月下载量
390KB
7.5K SLoC
概述
这是一个用于处理EVM字节码的库和工具。该工具允许您将合约反汇编成汇编语言,并将其重新汇编。该工具还支持一种原始的中间语言,可以编译成字节码。
汇编器/反汇编器
为了说明这个工具,我们首先将字节码合约0x60006000511161000f5760016000525b
进行反汇编。我们可以这样做:
evmil disassemble --code 0x60006000511161000f5760016000525b
这应该会产生以下输出:
.code
push 0x00
push 0x00
mload
gt
push 0x000f
jumpi
push 0x01
push 0x00
mstore
_0x000f:
jumpdest
如果我们将它保存到文件test.asm
中,然后我们可以按照以下方式将其重新汇编:
evmil assemble test.asm
我们应该看到原始的字节码输出。
0x60006000511161000f5760016000525b
最后,在编写汇编语言时,我们可以使用标签来简化。例如,上面的代码可以重写如下:
.code
push 0x00
push 0x00
mload
gt
push lab
jumpi
push 0x01
push 0x00
mstore
lab:
jumpdest
这仅仅让编写汇编语言变得更容易。
依赖项
~4MB
~81K SLoC