當使用命令“nm go_binary”時,我發現變量、函數和包的名稱甚至我的代碼所在的目錄都顯示出來了,有什么辦法可以混淆命令“go build”生成的二進制文件并防止go二進制文件被黑客利用?
2 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
混淆不能阻止逆向工程,但在某種程度上可以防止信息泄露
這就是burrowers/garble
(Go 1.16+,2021 年 2 月):
字面混淆
使用該-literals
標志會導致文字表達式(例如字符串)被更復雜的變體替換,在運行時解析為相同的值。
此功能是可選的,因為它可能會根據輸入代碼導致速度變慢。
用作常量的文字表達式不能被混淆,因為它們是在編譯時解析的。這包括
const
聲明的任何表達式部分。微型模式
當
-tiny
標志被傳遞時,額外的信息將從生成的 Go 二進制文件中刪除。
這包括行號、文件名和運行時中打印恐慌、致命錯誤和跟蹤/調試信息的代碼。
總而言之,這可以使我們的測試中的二進制文件縮小 2-5%,并防止提取更多信息。使用此標志,將不會打印任何恐慌或致命的運行時錯誤,但它們仍然可以在內部正常處理。
此外,GODEBUG
環境變量將被忽略。
但:
導出的方法目前永遠不會被混淆,因為接口和反射可能需要它們。該領域正在進行中。

ITMISS
TA貢獻1871條經驗 獲得超8個贊
- 2 回答
- 0 關注
- 379 瀏覽
添加回答
舉報
0/150
提交
取消