混淆器和技術支持
回答
您將得到混淆堆棧跟蹤。但混淆器可以生成將混淆名稱映射到真實名稱的映射文件。您必須將這些映射文件保存在安全的地方,並且可以在需要時使用它們再次「消除混淆」堆棧跟蹤。
在技術支持的情況下 - 您可以創建一個簡單的Web界面,其中技術支持人員可以粘貼堆棧跟蹤。這種方式只有Web服務器需要訪問映射文件,因此它可以恢復原始堆棧跟蹤。
這裏有兩個鏈接解釋與Dotfuscator的模糊處理過程:
http://www.preemptive.com/images/stories/dotfuscator_documentation/Dotfuscator/The_Map_File.html
如果堆棧中的方法在您的版本中被混淆,您將在任何堆棧跟蹤中獲得混淆的方法名稱。
如果您在代碼中添加了任何內容以幫助您找出涉及的方法,潛在的黑客可以使用該信息來更好地理解您的代碼。
一個常見的策略是隻對一些代碼進行混淆,包括(但不限於)執行許可檢查的部分。如果您僅對許可證進行混淆檢查,那麼需要黑客注意的部分很容易歸零。
我想知道如果公司可以隱瞞混淆源代碼,他們可以在內部使用以得到錯誤發生的真實地點的混淆日誌。 –
查看日產粉絲的評論。你的工具應該能夠去混淆堆棧跟蹤...如果你把它作爲一個正確編碼的文件。許多混淆器使用Unicode字符來表示類和方法名稱,這使得在屏幕上閱讀特別困難。只給出屏幕截圖或非Unicode文本文件,將很難返回。我有時會創建一個Web服務來記錄錯誤,以確保程序提交我需要診斷錯誤的所有內容。這將是一個安全的方法來獲得正確的(unicode)編碼的堆棧跟蹤。 –
這通常不是一個問題,因爲大多數模糊處理提供反混淆堆棧追溯能力的原始痕跡。
我們使用BitHelmet。問題是,當使用最強的混淆技術時,堆棧跟蹤不能被反混淆。 BitHelmet使用完全簽名重命名(某種過載感應,只是更好)。會發生什麼情況是,許多方法以相同的名稱結束,但具有不同的返回類型(這不能在C#中完成,但對於CLR可以)。返回類型不會顯示在堆棧軌跡中!所以實際上不可能使用最強的混淆消除堆棧跟蹤。
我們問了與你相同的問題,我們討論了它,並得出結論,實際上我們更喜歡更好的混淆。當提供技術支持作爲其他一些只有最終用戶可以提供的數據時,堆棧跟蹤實際上並不是那麼有用。 「請告訴我你到底在做什麼?」 :)
- 1. jQuery OOP技術混淆
- 2. XmlSerializer混淆支持?
- 3. 技術支持票程序
- 4. django時區支持混淆
- 5. 支持maven插件的java混淆器
- 6. 混淆術語
- 7. 支持RIA/Web 2.0技術的框架
- 8. 如何從Microsoft獲得技術支持
- 9. MassTranist ESB支持其他技術
- 10. OpenBSD 5.6支持PAM技術嗎?
- 11. 需要技術支持:SNMP trap sender(SNMPv3)
- 12. iOS6自動混淆並支持iOS5
- 13. 混帳:不同分支的創建和合並技術
- 14. 持久性和瞬時對象 - 混淆術語
- 15. JavaScript與術語混淆?
- 16. 泊塢窗混淆術語
- 17. C#枚舉術語混淆
- 18. 算術運算符混淆
- 19. 支持flash/flex共享對象和散列技術
- 20. 支持變量重命名的Java解混淆器?
- 21. 帶有模塊化構建支持的JS混淆器
- 22. SVN分支和子分岔技術
- 23. 追逐支付技術和EUDD
- 24. 混淆git分支和主交互
- 25. PHP混淆器?
- 26. 如果處理器不支持虛擬化技術的替代Android模擬器
- 27. 混淆和jOOQ
- 28. 混淆和SHA?
- 29. 混淆和GPL
- 30. 使用指針算術混淆
如上所述,大多數工具都可以使用去模糊堆棧跟蹤(例如http://www.ssware.com/cryptoobfuscator/obfuscator-net。htm) –
我有時會創建一個Web服務來接收崩潰報告。用戶可以提交「提交錯誤報告」按鈕,並且可以傳輸堆棧跟蹤和其他有關程序狀態的有用信息,而不會有堆棧跟蹤以錯誤的文本格式編碼的風險(因爲許多混淆器使用Unicode字符作爲類/方法名)。 –