我是去同步團體玩弄和我只是想,如果我增加更多的團體比我標示爲完成會發生什麼。並且我得到了我在下面發佈的運行時錯誤。 所以這裏的問題是,如果走的是編譯成不像Java或C#怎麼來的我的文件,甚至行信息可以在運行時錯誤顯示。如果文件信息是保存在二進制我認爲它可以很容易地反編譯真實的機器碼。 我做錯了嗎我需要添加一些有點env變量prod構建或它就像c#theres沒有真正的方法來隱藏你的代碼如何以及爲什麼Golang二進制顯示文件和行信息的錯誤
-1
A
回答
1
因此,爲了好玩,我寫了一個簡單的Go程序,只是恐慌()並嘗試用objdump和objcopy放屁,看看這些信息在哪裏。在Linux(也許是其他)上,Go在ELF部分.gopclntab中粘貼相關信息。如果刪除它,對實際程序源的引用將消失,但運行時會崩潰。並且有更多的運行時引用。*該部分的內容(大概是用於鏈接和內省)。我認爲你不可能真正運行一個Go程序,而這些信息完全消失了。
如果你真的很擔心很可能是預處理你的源代碼編譯之前混淆標識符和文件名可以刪除DWARF信息的一些安全提到elsewhere on SO和一堆ELF段消失,但你最好的選擇。但有doesn't appear to be a ready-made tool to do so。
我不是圍棋的設計師之一,但我猜還要往前走是不切實際的,由於喜歡內省的東西(一些東西,例如C不能做的)。像upx這樣的壓縮程序會稍微對文件進行混淆處理(並且對於編譯後的Go似乎也可以正常工作 - 可能需要一兩個警告),但是如果知道它在那裏就可以撤消,這很簡單(注意任何安全類型離開我的開發者許可證,甚至提到它)。
現實情況是,你實際上能做到最好的就是speedbump人誰是在你的代碼搞亂真正感興趣。混淆來源,如果你真的有這樣的動機,那將是你最好的選擇(雖然最終還是徒勞無益,而且有足夠堅決的攻擊者)。
相關問題
- 1. 爲什麼git將unicode顯示爲二進制文件?
- 2. 爲什麼我的表單錯誤信息從不顯示?
- 3. 更新二進制文件信息
- 4. 夥計們幫助....爲什麼錯誤信息不顯示
- 5. HTML5文件api和octokit.js以及二進制文件
- 6. 在.Net中讀取文本和二進制信息的文件
- 7. 如何在GoLang程序中運行二進制文件?
- 8. 如何顯示在Django錯誤信息
- 9. 如何顯示JSON錯誤信息?
- 10. 在.NET/C#上下文中,什麼是二進制搜索以及如何/爲什麼可以使用它?
- 11. 如何從二進制文件發送信息到屏幕和外部文件?
- 12. 如何設置web.config文件以顯示完整的錯誤信息
- 13. Git:egit顯示錯誤信息
- 14. 使用junit測試從文本和二進制文件讀取以及寫入文本和二進制文件
- 15. 獲取二進制文件和文本信息
- 16. 如何使用php將文件顯示爲二進制格式?
- 17. 爲什麼不顯示信息
- 18. 二進制XML文件,錯誤膨脹類,是什麼問題?
- 19. 二進制XML文件行#:錯誤使用ArrayAdapter和的AsyncTask
- 20. 如何以較少的信息顯示彈簧錯誤堆棧
- 21. 錯誤android.view.InflateException:二進制XML文件行#21:二進制XML文件行#21:錯誤充氣類片段
- 22. 錯誤:android.view.InflateException:二進制XML文件行#8:二進制XML文件行#8:錯誤膨脹類片段
- 23. 爲什麼比較{}和[]顯示錯誤?
- 24. 這是什麼錯誤訊息,以及如何解決它
- 25. PyQt5 - 爲什麼進度條不顯示文件複製進度?
- 26. 如何返回文件以及錯誤消息以查看?
- 27. 爲什麼錯誤信息「$ .effects is undefined」?
- 28. 二進制文件的EOF是什麼?
- 29. 二進制文件和兼容性標準信息 - C++/JAVA
- 30. 涉及二進制和文本文件時的版本控制?
它的調試信息... –
基本技巧是,您可以將PC(程序計數器)或類似寄存器的範圍映射到函數,將程序計數器與文件/函數的名稱之間的映射存儲在調試部分的可執行文件,並在需要時使用程序計數器查找文件和函數名稱。 – nos
我擔心的是我的代碼可以反編譯使用這個信息使用字典不會幫助它,我認爲@nos – nikoss