簡體   English   中英

防止.NET逆向工程/反編譯

[英]Preventing .NET reverse engineering/decompilation

有沒有辦法阻止.NET Reflector在程序中工作?

例如:我正在開發一個具有機密數據的程序(如gMail地址和密碼),我不希望有人能看到它們。

我怎樣才能做到這一點?

通過不同的技術,有各種工具可以做到這一點。

例如,許多商業混淆器除了加密字符串和混淆源之外,還會在IL中引入允許程序運行但是破壞(大部分/全部)當前逆向工程工具(如.NET Reflector)的東西。

話雖這么說,在應用程序中保留這種類型的數據永遠不會是安全的。 一個工具可以做的最好的事情就是讓信息變得更加困難,但永遠不會讓它變得不可能。

一個“掩蓋”它並打破混淆工具的工具仍然不完美 - 有足夠的時間和精力,有人可以從你的程序中獲取這些信息。 如果運行時可以獲得這些信息,那么有足夠決心和驅動程序的人可以找到它。 因此,密碼等重要的私人信息不應保存在可執行文件中。

是的,搜索“.NET混淆器”。 有幾種工具可用。

但是,您不應該在代碼中嵌入您的電子郵件用戶名/密碼。 這是錯的。 放棄安全性,如果您需要更改電子郵件密碼,您會怎么做? 你能升級軟件的所有副本嗎?

混淆器傾向於提供很少的數據保護,例如您在應用程序中保留的數據。 它們主要是為了保護代碼和邏輯不被逆向工程,而不是文字。 更好的方法是讓您的客戶端應用程序與服務器端應用程序通信,從而為其提供所需的數據,而不是讓客戶端直接與安全服務器進行協商。 通過這種方式,您可以在服務器和客戶端應用程序之間設置安全的加密方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM