• <menu id="w2i4a"></menu>
  • Skater .NET obfuscator (產(chǎn)品編號:12374)

    一款保護(hù).NET軟件代碼的混淆工具

    標(biāo)簽:代碼混淆

    開發(fā)商: RustemSoft

    當(dāng)前版本: v6.0.02

    產(chǎn)品類型:軟件

    產(chǎn)品功能:加密/解密

    平臺語言:英文

    開源水平:不提供源碼

    本產(chǎn)品的分類與介紹僅供參考,具體以商家網(wǎng)站介紹為準(zhǔn),如有疑問請來電 023-68661681 咨詢。

    RustemSoft推出Skater .NET Obfuscator,一款保護(hù).NET軟件代碼的混淆工具。其具備所有軟件保護(hù)技術(shù)及混淆算法。

    * 關(guān)于本產(chǎn)品的分類與介紹僅供參考,精準(zhǔn)產(chǎn)品資料以官網(wǎng)介紹為準(zhǔn),如需購買請先行測試。

    Skater .NET Obfuscator適合那些希望周期性地混淆.NET產(chǎn)品代碼的用戶。RustemSoft內(nèi)部也在使用Skater,以保證所有RustemSoft .NET可執(zhí)行文件和程序集的安全。命令行版本(運(yùn)行在批量文件模式下)將更方便升級您的預(yù)定產(chǎn)品。先在一個圖形用戶界面版本中為一個程序集分配一些配置,這些配置將在批量混淆文件時使用。

    Skater .NET Obfuscator功能介紹 | Skater .NET Obfuscator示例 | Skater .NET Obfuscator各種版本之間的區(qū)別

    Skater .NET Obfuscator的主要功能

    • 阻止逆向工程。

    • 混淆后的應(yīng)用程序一般不能反編譯。

    • 可處理任何.NET應(yīng)用程序、可執(zhí)行文件和程序集。

    • 可加密常量字符串。

    • 兼容于任何.NET框架(1.0, 1.1, 2.0, 3.0, and 3.5)。

    • 流量控制混淆可防范反編譯器和反混淆器。

    • 可擾亂類名,方法名和字段名等。

    • .NET授權(quán)功能。

    • 為小的.NET應(yīng)用程序提供.NET代碼擴(kuò)展保護(hù)。

    • 在一個dll或者exe文件中加入配置鏈接、鏈接器單元和.NET程序集。

    應(yīng)用程序漏洞、偷竊知識產(chǎn)權(quán)和收入損失是現(xiàn)今公司面臨的最大威脅。根據(jù)商業(yè)軟件聯(lián)盟(Business Software Alliance)的數(shù)據(jù),世界范圍內(nèi),軟件盜版率達(dá)40%。

    代碼混淆可有效地防止未授權(quán)的逆向工程。
    任何軟件保護(hù)技術(shù)的主要功能是:檢測盜版行為(破解密碼或者篡改軟件);這些破解密碼和篡改軟件的行為將使被保護(hù)的軟件降級到無檢測狀態(tài),軟件保護(hù)技術(shù)還要防止這種降級情況的發(fā)生。

    主要的混淆技術(shù):

    • 混淆私有和公共變量的名字
      擾亂類、方法、變量和其他程序集的名字。名字被混淆后,難以對程序集代碼實施反向工程。Skater的一些設(shè)置可生成防止反編譯的名字。

    • 字符串加密
      字符串加密功能可對字符串?dāng)?shù)據(jù)類型值進(jìn)行選擇加密。您也可對所有的字符串加密??梢曰煜承┨厥獾淖址???梢赃x擇某種加密方法對字符串加密,只有一些特別的字符串將被加密或混淆。

    • 控制流混淆
      可阻擋反編譯器和反混淆器。通過打亂.NET方式(功能和程序)代碼,控制流混淆可阻止逆向工程。通過流量控制混淆算法,在程序集中的IL代碼將被打亂,在保護(hù)代碼時還會插入誘餌指示??刂屏骰煜椒▽嶋H上是將程序集轉(zhuǎn)換為&ldquo;管道代碼&rdquo;,黑客和反編譯工具更難入侵。

    例子

    先寫一段簡單的命令行應(yīng)用程序,然后混淆它。下面兩段程序分別是VB.NET 和 C# 版的"Hello World!"程序(顯示字符串"Hello World!")。實際上,除了顯示"Hello World!",它還會顯示今天的日期和當(dāng)下的時間。為了弄清混淆后會有何不同,我們還會加入兩個私有變量。

    VB .NET

     Imports System
    Module Module1
    Private str As String = "Hello World! Today is:"
    Private today As Date = Now
    Sub Main()
    Console.WriteLine(str + CStr(today))
    End Sub
    End Module

     

    C#

     using System;
    struct Module1
    {
    private string str = "Hello World! Today is:";
    private System.DateTime today = Now;
    void Main()
    {
    Console.WriteLine(str + System.Convert.ToString(today));
    }
    }

    你可以看到四個高亮的成員名。兩個是私有變量名:todaystr. Module1是類名。Main是一個簡單類中的唯一一個方法(method)名?,F(xiàn)在我們開始在.NET環(huán)境中編譯這些簡單的代碼。編譯后,我們可以得到ConsoleApplication1.exe可執(zhí)行文件。這個可執(zhí)行文件中包含什么呢?為什么人們認(rèn)為需要隱藏了.NET中的東西呢?

    .NET Framework SDK中有一個反匯編器ILDasm,通過ILDasm,您可將.NET編譯語言反編譯為IL(.NET框架中的中間語言)程序集語言形式。在命令行中運(yùn)行ILDasm,您就可以反編譯ConsoleApplication1.exe。下圖就是反編譯后的代碼。

    IL

      .class private auto ansi sealed beforefieldinit Module1
    extends [mscorlib]System.Object
    {
    .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.
    StandardModuleAttribute::.ctor() = ( 01 00 00 00 )
    .field private static string str
    .field private static valuetype [mscorlib]System.DateTime today
    .method private specialname rtspecialname static
    void .cctor() cil managed
    {
    .maxstack 8
    IL_0000: ldstr "Hello World! Today is:"
    IL_0005: stsfld string ConsoleApplication1.Module1::str
    IL_000a: call valuetype [mscorlib]System.DateTime [Microsoft.VisualBasic]Microsoft.
    VisualBasic.DateAndTime::get_Now()
    IL_000f: stsfld valuetype [mscorlib]System.DateTime ConsoleApplication1.Module1::today
    IL_0014: nop
    IL_0015: ret
    } // end of method Module1::.cctor
    .method public static void Main() cil managed
    {
    .entrypoint
    .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
    .maxstack 8
    IL_0000: nop
    IL_0001: ldsfld string ConsoleApplication1.Module1::str
    IL_0006: ldsfld valuetype [mscorlib]System.DateTime ConsoleApplication1.Module1::today
    IL_000b: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::
    FromDate(valuetype [mscorlib]System.DateTime)
    IL_0010: call string [mscorlib]System.String::Concat(string,
    string)
    IL_0015: call void [mscorlib]System.Console::WriteLine(string)
    IL_001a: nop
    IL_001b: nop
    IL_001c: ret
    } // end of method Module1::Main
    } // end of class Module1

    這些IL腳本是不是很清晰,可以讀懂呢?也許,對于我們這些菜鳥,這些IL代碼確實難懂。但是對于那些真正懂得IL語言的技術(shù)專家,這些.NET源程序是小菜一碟。通過一些更高級的反編譯器將源代碼轉(zhuǎn)換為其他語言,這樣更多人能讀懂您的源代碼。更高級的反編譯器可以將.NET程序集直接反編譯為高級語言,如C#, VB .NET, 或者 C++.

    現(xiàn)在,我們通過Skater .NET Obfuscator混淆這段ConsoleApplication1.exe可執(zhí)行文件。在Skater Obfuscator中打開這個exe文件,進(jìn)入用戶界面中的Options,然后選擇在'Naming Conventions'下的'Alpha-Numeric characters'。選擇所有混淆模式下的私人和公共成員。

    當(dāng)您運(yùn)行混淆后的ConsoleApplication1.exe時,它的運(yùn)行結(jié)果是一樣的。讓我們看看混淆后,這個簡單的程序里發(fā)生了什么變化。我們需要再次在ILDasm.exe中運(yùn)行這個被混淆后的可執(zhí)行文件(ConsoleApplication1.exe),然后我們可以得到下面IL腳本。

    IL

      .class private auto ansi sealed beforefieldinit '0AAAA'
    extends [mscorlib]System.Object
    {
    .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.
    StandardModuleAttribute::.ctor() = ( 01 00 00 00 )
    .field private static string '1AAA0'
    .field private static valuetype [mscorlib]System.DateTime '2AAAA'
    .method private specialname rtspecialname static
    void .cctor() cil managed
    {
    .maxstack 8
    IL_0000: ldstr "Hello World! Today is:"
    IL_0005: stsfld string ConsoleApplication1.'0AAAA'::'1AAA0'
    IL_000a: call valuetype [mscorlib]System.DateTime [Microsoft.VisualBasic]Microsoft.
    VisualBasic.DateAndTime::get_Now()
    IL_000f: stsfld valuetype [mscorlib]System.DateTime ConsoleApplication1.'0AAAA'::'2AAAA'
    IL_0014: nop
    IL_0015: ret
    } // end of method '0AAAA'::.cctor
    .method public static void '1AAAA'() cil managed
    {
    .entrypoint
    .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
    .maxstack 8
    IL_0000: nop
    IL_0001: ldsfld string ConsoleApplication1.'0AAAA'::'1AAA0'
    IL_0006: ldsfld valuetype [mscorlib]System.DateTime ConsoleApplication1.'0AAAA'::'2AAAA'
    IL_000b: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::
    FromDate(valuetype [mscorlib]System.DateTime)
    IL_0010: call string [mscorlib]System.String::Concat(string,
    string)
    IL_0015: call void [mscorlib]System.Console::WriteLine(string)
    IL_001a: nop
    IL_001b: nop
    IL_001c: ret
    } // end of method '0AAAA'::'1AAAA'
    } // end of class '0AAAA'

    Skater .NET Obfuscator通過阿拉伯?dāng)?shù)字取代成員名,這使得代碼更難理解。但這沒什么了不起,每種混淆器都可以做到。每個人都可以用不同的阿拉伯?dāng)?shù)字取代名稱。ILasm.exe是另外一款.NET Framework SDK編譯器,可以將IL代碼編譯成可執(zhí)行文件代碼。通過它,我們可以將被混淆的IL代碼反編譯成可執(zhí)行文件。Skater .NET Obfuscator可以生成無法反編譯的可執(zhí)行文件。下面是IL腳本。

    IL

      .class private auto ansi sealed beforefieldinit '?'
    extends [mscorlib]System.Object
    {
    .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.
    StandardModuleAttribute::.ctor() = ( 01 00 00 00 )
    .field private static string '?'
    .field private static valuetype [mscorlib]System.DateTime '?'
    .method private specialname rtspecialname static
    void .cctor() cil managed
    {
    .maxstack 8
    IL_0000: ldstr "Hello World! Today is:"
    IL_0005: stsfld string ConsoleApplication1.'?'::'?'
    IL_000a: call valuetype [mscorlib]System.DateTime [Microsoft.VisualBasic]Microsoft.
    VisualBasic.DateAndTime::get_Now()
    IL_000f: stsfld valuetype [mscorlib]System.DateTime ConsoleApplication1.'?'::'?'
    IL_0014: nop
    IL_0015: ret
    } // end of method '?'::.cctor
    .method public static void '?'() cil managed
    {
    .entrypoint
    .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
    .maxstack 8
    IL_0000: nop
    IL_0001: ldsfld string ConsoleApplication1.'?'::'?'
    IL_0006: ldsfld valuetype [mscorlib]System.DateTime ConsoleApplication1.'?'::'?'
    IL_000b: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::
    FromDate(valuetype [mscorlib]System.DateTime)
    IL_0010: call string [mscorlib]System.String::Concat(string,
    string)
    IL_0015: call void [mscorlib]System.Console::WriteLine(string)
    IL_001a: nop
    IL_001b: nop
    IL_001c: ret
    } // end of method '?'::'?'
    } // end of class '?'

    可以看到,所有的成員名都被'?'代替。很明顯,上面的IL代碼無法編譯,即使編譯成了可執(zhí)行文件也將無法正常運(yùn)行。通過Skater .NET Obfuscator中的一些特殊設(shè)置,很容易得到這樣的IL代碼。只需進(jìn)入混淆器界面中的Options,在'Naming Conventions'.下選擇'?' characters即可。

    Skater .NET Obfuscator通過改變字節(jié)碼,將那些有意義的方式名(比如Main())用隱藏名(比如'?'())取代。這些新名也稱為亂碼名。雖然反編譯器還是可以將混淆后的字節(jié)代碼反向轉(zhuǎn)換,但是這些沒有意義的亂碼名極大地降低了新生成的源程序代碼的價值,而且代碼很難讀懂。這些亂碼名還有一個好處,當(dāng)長的名字被簡短的名字代替時,編譯代碼的長度也變短了。

    混淆成員名只是.NET程序集混淆過程中的第一步。為了更好的保護(hù)您的.NET應(yīng)用程序,您還要使用Skater .NET Obfuscator中的其他功能和算法。

    Skater .NET混淆器各種版本之間的區(qū)別比較:

    功能標(biāo)準(zhǔn)版專業(yè)版終極版
    用字母和字符混淆私有變量名&radic;&radic;&radic;
    用不可讀/不可編輯的字符混淆私有變量名&radic;&radic;&radic;
    混淆公共成員名&radic;&radic;&radic;
    字符串值加密&radic;&radic;&radic;
    用加密技術(shù)對字符串值加密 &radic;&radic;
    控制流混淆 &radic;&radic;
    .NET 配置鏈接 &radic;&radic;
    .NET 授權(quán)功能: .NET授權(quán)界面  &radic;
    .NET授權(quán)功能: .NET授權(quán)應(yīng)用程序配置  &radic;
    代碼擴(kuò)展  &radic;
    使用.NET Cryptor&radic;&radic;&radic;
    命令行界面&radic;&radic;&radic;
    提供六個月的技術(shù)支持和版本升級&radic;&radic;&radic;

    .NET代碼保護(hù)可以防止.NET安裝源代碼進(jìn)行再編譯(沒有改變其功能性),并隱藏.NET代碼的主要部分。對于需要利用.NET代碼保護(hù)功能的.NET程序開發(fā)者,標(biāo)準(zhǔn)版是一實惠的解決方案?;跇?biāo)準(zhǔn)版,軟件開發(fā)者可以:

    • 名稱混淆

    • 字符串加密

    專業(yè)版除了具有標(biāo)準(zhǔn)版的功能外,還增加了字符串加密、控制流混淆和.NET鏈接程序集功能。

    終極版為軟件開發(fā)者提供混淆器的所有功能。除了標(biāo)準(zhǔn)版和專業(yè)版的功能外,終極版還提供代碼擴(kuò)展和.NET應(yīng)用程序授權(quán)功能。

    更新時間:2017-04-07 15:43:24.000 | 錄入時間:2010-01-21 10:19:05.000 | 責(zé)任編輯:

    相關(guān)產(chǎn)品
    軟件
  • 產(chǎn)品功能:加密/解密
  • 源 碼:非開源
  • 產(chǎn)品編號:14355
  • 當(dāng)前版本:v7.4 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: The Enigma Protector 正式授權(quán)
  • ">The Enigma Protector

    一個強(qiáng)大專業(yè)的系統(tǒng) 用于軟件壓縮和加密保護(hù)

    軟件
  • 產(chǎn)品功能:加密/解密
  • 源 碼:非開源
  • 產(chǎn)品編號:14361
  • 當(dāng)前版本:v5.7 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: PNFSoftware 正式授權(quán)
  • ">JEB

    反編譯和調(diào)試二進(jìn)制代碼和混淆的應(yīng)用程序

    軟件
  • 產(chǎn)品功能:加密/解密
  • 源 碼:非開源
  • 產(chǎn)品編號:14386
  • 當(dāng)前版本:v3.3.3.20655 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: 北京深思數(shù)盾科技 正式授權(quán)
  • ">Virbox Protector

    一款全面的數(shù)字版權(quán)保護(hù)與軟件安全解決方案。

    軟件
  • 產(chǎn)品功能:加密/解密
  • 源 碼:非開源
  • 產(chǎn)品編號:12399
  • 當(dāng)前版本:v6.9.8 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: Eziriz 正式授權(quán)
  • ">.NET Reactor

    一款為.NET Framework編寫的軟件的功能強(qiáng)大的代碼保護(hù)和軟件許可系統(tǒng)。

    軟件
  • 產(chǎn)品功能:加密/解密
  • 源 碼:非開源
  • 產(chǎn)品編號:10676
  • 當(dāng)前版本:v6.5.4 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: PreEmptive 正式授權(quán)
  • ">PreEmptive Protection Dotfuscator

    Dotfuscator是一款.NET混淆器和壓縮器,防止您的應(yīng)用程序被反編譯。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();