篡改檢查是什麼?.NET混淆器Dotfuscator如何實現應用程序的保護?

Dotfuscator是一個.NET的Obfuscator。它提供企業級的應用程序保護,大大下降了盜版、知識產權盜竊和篡改的風險。Dotfuscator的分層混淆、加密、水印、自動失效、防調試、防篡改、報警和防護技術,爲世界各地成千上萬的應用程序提供保護。編輯器

Dotfuscator提供了一種應用程序保護的多層方法。這些層中的每一層都提供了一個重要的總體保護策略。若是一層受到損害,其餘層繼續提供有效保護,使攻擊者更難以實現其目標。而且不只有多個層,並且每一個層都具備比其餘混淆產品使用的簡單技術更強大的高級功能。>>下載Dotfuscator最新試用版測試

從本文開始咱們一塊兒瞭解Dotfuscator如何對應用程序進行多層保護,層層遞進,大體可分爲:加密

  • 第一層保護——Obfuscation轉換:它對編譯的代碼進行操做,使逆向工程變得困難或不可能。
  • 第二層保護——保護程序運行時發生的檢查:當程序檢測到攻擊者試圖篡改或反向工程時,它可使用自定義邏輯進行自我防護。
  • 其他增強保護——包括切除和水印。
  • Dotfuscator提供某些功能幫您構建、部署和調試混淆的程序集

第二層保護:保護程序運行時發生的檢查

篡改檢查

篡改檢查是一種用於檢測應用程序自Dotfuscator處理後是否已更改的檢查。命令行

例如,若是攻擊者修改應用程序二進制文件以規避限制或刪除許可信息,則篡改檢查能夠檢測修改並經過發送事件遙測,通知應用程序和阻止攻擊者作出反應。換句話說,篡改檢查會檢測並對未經受權篡改您的應用程序作出反應。debug

配置篡改檢查調試

要讓Dotfuscator將Tamper Checks注入您的應用程序,首先啓用代碼注入。而後,配置在配置編輯器的檢查,或經過註釋的源代碼用TamperCheckAttribute。這兩種方法都容許您指定肯定Check操做方式的各類屬性。事件

不支持的應用程序類型部署

Dotfuscator能夠將篡改檢查注入全部.NET程序集,但如下狀況除外:get

  • 面向.NET 1.0的程序集
  • 包含本機代碼和託管代碼的託管C ++程序集
  • 多模塊組件
  • .NET Compact Framework程序集
  • .NET核心程序集
  • Silverlight程序集
  • Unity程序集
  • UWP組件
  • Windows Phone程序集
  • WinRT程序集
  • Xamarin iOS程序集

測試產品

[.NET Framework]

爲了測試注入到應用程序中的篡改檢查如何對裝配篡改做出反應,Dotfuscator包括TamperTester.exe一個命令行實用程序,經過修改程序集的元數據來模擬篡改。要測試受保護的應用程序對篡改的反應,須要如下步驟:

  1. 打開命令提示符
  2. 若是還沒有存在,請更改成受保護程序集的目錄。例如:
    cd C:\YourApp\Dotfuscated
  3. 輸入TamperTester.exe AssemblyName.exe,AssemblyName.exe要爲其建立篡改版本的程序集的名稱。還能夠指定實用程序的第二個參數,即放置篡改程序集的目錄。若是未指定,則將篡改的程序集放在程序集目錄的子目錄中tampered。
  4. 該實用程序會建立一個篡改版本的程序集。
  5. 將其餘輸出程序集複製到篡改版本的目錄中。例如:
    xcopy *.* tampered /d
  6. 運行篡改組件並運行篡改檢查的位置,以觀察應用程序對被篡改的反應。

[Xamarin.Android]

要測試注入應用程序的篡改檢查將如何對篡改做出反應:

①若是在生成存檔後簽署應用程序:

  1. 取消選中項目屬性中的「使用如下密鑰庫詳細信息簽署.APK文件」。
  2. 在Visual Studio中建立新的應用程序存檔。
  3. 選擇新建立的存檔,而後選擇「分發...」
  4. 選擇您首選的分銷渠道。
  5. 使用包含與指定的指紋不一樣的SHA-1指紋的密鑰對新包進行簽名DotfuscatorAndroidSigningCertFingerprint。
  6. 正常部署應用程序。

②若是您在項目的屬性中籤署了應用程序:

  1. 在Visual Studio中打開項目的屬性。
  2. 導航到「Android項目屬性」選項卡。
  3. 取消選中「使用如下密鑰庫詳細信息簽署.APK文件」旁邊的框。
  4. 正常構建和部署應用程序。

這將致使已部署的應用程序使用該debug.keystore文件進行簽名,從根本上模擬已被篡改並從新打包的應用程序。

相關文章
相關標籤/搜索