亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Golang 二進制文件中混淆變量、函數和包名稱的字符串?

如何在 Golang 二進制文件中混淆變量、函數和包名稱的字符串?

Go
慕少森 2022-01-10 14:29:30
當使用命令“nm go_binary”時,我發現變量、函數和包的名稱甚至我的代碼所在的目錄都顯示出來了,有什么辦法可以混淆命令“go build”生成的二進制文件并防止go二進制文件被黑客利用?
查看完整描述

2 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

混淆不能阻止逆向工程,但在某種程度上可以防止信息泄露

這就是burrowers/garble(Go 1.16+,2021 年 2 月):

字面混淆

使用該-literals標志會導致文字表達式(例如字符串)被更復雜的變體替換,在運行時解析為相同的值。
此功能是可選的,因為它可能會根據輸入代碼導致速度變慢。

用作常量的文字表達式不能被混淆,因為它們是在編譯時解析的。這包括const聲明的任何表達式部分。

微型模式

-tiny標志被傳遞時,額外的信息將從生成的 Go 二進制文件中刪除。
這包括行號、文件名和運行時中打印恐慌、致命錯誤和跟蹤/調試信息的代碼。
總而言之,這可以使我們的測試中的二進制文件縮小 2-5%,并防止提取更多信息。

使用此標志,將不會打印任何恐慌或致命的運行時錯誤,但它們仍然可以在內部正常處理。
此外,GODEBUG環境變量將被忽略。

但:

導出的方法目前永遠不會被混淆,因為接口和反射可能需要它們。該領域正在進行中。


查看完整回答
反對 回復 2022-01-10
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

我認為這個問題的最佳答案是如何保護 Python 代碼?,具體這個答案。

雖然這個問題是關于 Python 的,但它通常適用于所有代碼。

我打算將這個問題標記為重復,但也許有人會提供更多的見解。


查看完整回答
反對 回復 2022-01-10
  • 2 回答
  • 0 關注
  • 379 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號