El desensamblador geth parece una muy buena herramienta, si puede hacer cosas como esta:
To disassemble, run echo 6005600401 | disasm, which produces:
0 PUSH1 => 05
2 PUSH1 => 04
4 ADD
Sin embargo, no pude encontrarlo, probé la solución aquí y me encontré con este error:
¿Cómo podemos instalar las herramientas de desarrollo como disasm
?
Necesita el paquete "Geth & Tools 1.7.0" de la página oficial de Descargas . Debería poder simplemente descomprimir el paquete y ejecutar los archivos binarios directamente.
Sin embargo, debe tenerse en cuenta que la disasm
herramienta ya no existe por sí misma: se integró con la evm
herramienta principal en la confirmación #3729 . Lo que significa que tendrá que ejecutar la evm
herramienta y pasar la disasm
bandera como argumento.
La otra opción es compilar la herramienta usted mismo usando el disasm.go
archivo y cualquier otro paquete de Go que se requiera. Este es el enfoque utilizado en la respuesta anterior a la que se ha vinculado, pero deberá comprender cómo reunir todo para la compilación. El archivo principal ha cambiado de ubicación a lo siguiente:
github.com/ethereum/go-ethereum/blob/master/cmd/evm/disasm.go
/Users/s.matthew.english/go/src/github.com/ethereum/go-ethereum/cmd/evm/disasm.go
, pero cuando ejecuté el comando ./disasm.go
, recibí el error zsh: permission denied: ./disasm.go
y luegosudo: ./disasm.go: command not found
disasm
herramienta ya no existe como una herramienta independiente como lo hacía antes. He actualizado mi respuesta...Ha sido subsumido por la evm
herramienta, pero puede llamarlo así ( por ejemplo ):
echo "6005600401" >> tst && evm disasm tst
6005600401
000000: PUSH1 0x05
000002: PUSH1 0x04
000004: ADD
ismael
Richard Horrocks