DECOMPILE FOR .NET
概述
防衛(wèi)并保護(hù)您的.NET代碼
Dotfuscator不僅是一個(gè).NET混淆器。它提供企業(yè)級(jí)應(yīng)用程序保護(hù),大大降低盜版風(fēng)險(xiǎn)、知識(shí)產(chǎn)權(quán)盜用和篡改。其分層混淆、加密、水印,自動(dòng)到期、反調(diào)試、防篡改、警報(bào)和防御技術(shù)為全球幾十萬(wàn)個(gè)應(yīng)用程序提供保護(hù)。
反編譯.NET應(yīng)用程序的簡(jiǎn)單性
所有.NET應(yīng)用程序和庫(kù)都編譯為Microsoft Intermediate Language(MSIL)。 MSIL維護(hù)您的代碼的高級(jí)信息,包括其結(jié)構(gòu)和類(lèi)、字段、方法、屬性和參數(shù)名稱。使用免費(fèi)的反編譯器,很容易重新創(chuàng)建源代碼。它的Obfuscation和相關(guān)技術(shù)可能使黑客或競(jìng)爭(zhēng)對(duì)手不能輕易對(duì)您的應(yīng)用程序進(jìn)行逆向工程。
為什么要使用.NET Obfuscation?
通過(guò)使.NET應(yīng)用程序更難以進(jìn)行逆向工程,您可以幫助防范知識(shí)產(chǎn)權(quán)(商業(yè)秘密)竊取、繞過(guò)許可證或其他訪問(wèn)檢查以及搜索漏洞。
Obfuscation和代碼保護(hù)如何工作?
各種不同的技術(shù)相互補(bǔ)充,用于創(chuàng)建分層防御,使得逆向工程、篡改、調(diào)試更加困難。例子包括:
代碼僅重命名混淆和字符串加密之前和之后

模糊處理前的.NET 代碼

基線模糊處理后的.NET 代碼
為什么要保護(hù)您的.NET代碼免受調(diào)試?
不論黑客是否試圖竊取您的數(shù)據(jù),剽竊您的應(yīng)用程序,或修改軟件關(guān)鍵性部件的行為——生產(chǎn)調(diào)試程序是黑客的首選武器。不能讓他們輕易得逞。
選擇Dotfuscator的理由
已經(jīng)看到全部
可靠及真實(shí)
支持及更新
功能
混淆并加強(qiáng)您的.NET應(yīng)用程序以使其不受攻擊
重命名
重命名模糊處理改變了方法、變量等的名稱,使得源代碼更難理解。Dotfuscator使用更深層次的模糊處理——Overload Induction™,它為Dotfuscator而開(kāi)發(fā), 并由PreEmptive Solutions獲得專(zhuān)利。Overload Induction將盡可能多的方法重命名為同名,而不是為每個(gè)舊名稱替換一個(gè)新名稱。在這種更深層的混淆之后,邏輯雖然沒(méi)被破壞,卻是超出理解的。以下簡(jiǎn)單示例說(shuō)明了Overload Induction技術(shù)的功能:
|
源代碼模糊處理前 |
Overload Induction 模糊處理后的逆向工程源代碼 |
|
private void CalcPayroll (SpecialList employeeGroup) { while(employeeGroup.HasMore()) { employee = employeeGroup.GetNext(true); employee.UpdateSalary(); DistributeCheck(employee); } } |
private void a(a b) { while (b.a()) { a = b.a(true); a.a(); a(a); } } |
控制流
傳統(tǒng)的控制流模糊處理引入了假條件語(yǔ)句和其他誤導(dǎo)性構(gòu)造,以便混淆和中斷反編譯器。該過(guò)程合成了產(chǎn)生有效的轉(zhuǎn)發(fā)(可執(zhí)行)邏輯的分支、條件和迭代結(jié)構(gòu),但在嘗試反編譯時(shí)產(chǎn)生非確定性語(yǔ)義結(jié)果??刂屏髂:幚懋a(chǎn)生錯(cuò)綜復(fù)雜的邏輯,這對(duì)于解密高手來(lái)說(shuō)是非常困難的。
Dotfuscator采用先進(jìn)的控制流模糊處理。除了添加代碼結(jié)構(gòu),Dotfuscator還可以通過(guò)銷(xiāo)毀反編譯器用來(lái)重新創(chuàng)建源代碼的代碼模式。最終結(jié)果是在語(yǔ)義上等同于原始代碼的代碼,但不包含代碼最初寫(xiě)入的線索。即使開(kāi)發(fā)出高度先進(jìn)的反編譯器,其輸出也將是憑猜測(cè)所做。
|
源代碼模糊處理前 |
控制流模糊處理后的逆向工程源代碼 |
|
public int CompareTo(Object o) { int n = occurrences – ((WordOccurrence)o).occurrences; if (n == 0) { n = String.Compare(word,((WordOccurrence)o).word); } return(n); } |
public virtual int _a(Object A_0) { int local0; int local1; local 10 = this.a – (c) A_0.a; if (local0 != 0) goto i0; while (true) { return local1; } i1: local10 = System.String.Compare(this.b, (c) A_0.b); goto i0; } |
字符串加密
Dotfuscator允許您隱藏組件中存在的用戶字符串。常見(jiàn)的攻擊者技術(shù)是通過(guò)查找二進(jìn)制內(nèi)的字符串引用來(lái)定位關(guān)鍵代碼段。例如,如果您的應(yīng)用程序處于時(shí)間鎖定狀態(tài),則可能會(huì)在超時(shí)到期時(shí)顯示一條消息。攻擊者在反匯編或反編譯輸出中搜索這個(gè)消息,他們將非常接近你敏感時(shí)間鎖算法。
Dotfuscator通過(guò)允許您加密應(yīng)用程序敏感部分中的字符串來(lái)解決此問(wèn)題,為此類(lèi)型的攻擊提供了有效的屏障。
由于字符串加密會(huì)導(dǎo)致輕微的運(yùn)行時(shí)懲罰,除非您指定的應(yīng)用程序的部分,否則不執(zhí)行字符串加密。
水印
水印通過(guò)將版權(quán)信息或唯一標(biāo)識(shí)號(hào)等數(shù)據(jù)嵌入到.NET應(yīng)用程序中而不影響其運(yùn)行時(shí)行為,幫助您將軟件未經(jīng)授權(quán)的副本回溯到來(lái)源。 Dotfuscator的水印算法不會(huì)增加應(yīng)用程序的大小,也不會(huì)引入可能會(huì)破壞應(yīng)用程序的額外元數(shù)據(jù)。
修剪——刪除未使用的方法
小應(yīng)用程序下載速度更快,安裝速度更快,加載速度更快,運(yùn)行更快。Dotfuscator的修剪功能靜態(tài)分析您的代碼以找到未使用的類(lèi)型、方法和字段,并將其刪除。Dotfuscator在處理MSIL文件時(shí)還會(huì)從MSIL文件中刪除調(diào)試信息和非必要元數(shù)據(jù),從而使應(yīng)用程序更小,并減少攻擊者可用的數(shù)據(jù)。
鏈接——組裝合并
Dotfuscator可以將多個(gè)輸入組件組合成一個(gè)或多個(gè)輸出組件。組裝鏈接可用于使您的應(yīng)用程序更小,尤其是與重命名和修剪一起使用時(shí),可以簡(jiǎn)化部署方案。
例如,如果您有輸入程序集A、B、C、D和E,則可以鏈接程序集A、B和C,并將結(jié)果命名為F。同時(shí),還可以鏈接D和E,并命名結(jié)果G。唯一的規(guī)則是您不能將相同的輸入程序集鏈接到多個(gè)輸出程序集中。
篡改檢測(cè)及防護(hù)
Dotfuscator注入代碼,它在運(yùn)行時(shí)驗(yàn)證應(yīng)用程序完整性。 如果它檢測(cè)到篡改,它可以關(guān)閉應(yīng)用程序,調(diào)用隨機(jī)崩潰(偽裝崩潰是篡改檢查的結(jié)果),或執(zhí)行任何其他自定義操作。對(duì)于使用PreEmptive Analytics的客戶,它還可以向服務(wù)發(fā)送消息,指示已檢測(cè)到篡改。
調(diào)試檢測(cè)與防御
PreEmptive Solutions提供強(qiáng)大的反調(diào)試解決方案,可以保護(hù)應(yīng)用程序及其數(shù)據(jù),同時(shí)將近乎實(shí)時(shí)的警報(bào)和分析直接提供給您首選的分析服務(wù),包括Application Insights 、HockeyApp、Microsoft TFS、Google Analytics(分析),Twitter、New Relic 和PreEmptive Analytics Workbench ——僅舉幾例。
Shelf Life
Shelf Life是一種應(yīng)用程序庫(kù)存管理功能,可讓您將到期或取消激活以及通知邏輯嵌入到應(yīng)用程序中。Dotfuscator通過(guò)退出應(yīng)用程序和/或發(fā)送PreEmptive Analytics Service消息來(lái)注入響應(yīng)應(yīng)用程序到期的代碼。此功能對(duì)于beta或評(píng)估應(yīng)用程序特別有用。用戶可以安排應(yīng)用程序在特定日期到期/取消激活,并可選擇向用戶發(fā)出應(yīng)用程序在特定天數(shù)內(nèi)到期/停用警告。
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫(huà)