Mic*_*dda 25
目前没有已知的工具可以反编译为Go源.
Go是一种本地语言编译器,与Java和类似语言(依赖于类加载器)不同,它使用链接器来生成其可执行文件.因此,重建调用树就像在C语言和类似语言中一样,要难得多.
通常会从Go可执行文件中删除诸如符号之类的调试信息.
甚至在Golang代码的符号调试方面也很少.
例如,GDB是AFAIK,其当前状态与Go架构不一致,并且在Golang符号调试方面实际上不起作用.出于这个原因,Go GDB已经从IntelliJ ide中删除了.
一些用户尝试重新获得GDB功能的尝试工作,但这些需要使用特殊的非标准规定编译Go源以支持调试.例如:http: //blog.securitymouse.com/2014/10/golang-debugging-turning-pennies-into-gs.html Go的其他符号调试器还需要插入非标准代码以支持调试器,例如 Hopwatch
因此,如果您需要对Go程序进行逆向工程,那么最好使用传统的低级逆向工程工具,例如IDA PRO.这绝对是可能的,但最多你会得到类似伪代码C或ASM的内容,而不是Go来源.
该语言的某些特征在其他语言中不存在,例如频道,这些需要一些研究和非平凡的方法.例如:http://jolmos.blogspot.nl/2014/09/inbincible-writeup-golang-binary.html
- 这些东西在 2022 年仍然有效吗?IE。没有可以反编译已编译的 go 二进制文件的已知工具? (2认同)