導航:首頁 > 源碼編譯 > net程序加密了能反編譯

net程序加密了能反編譯

發布時間:2022-06-09 11:44:58

Ⅰ .net如何防反編譯

.net是中間語言十分容易被反編譯,通常都使用混淆作為一種加密手段。不過混淆不是真正防反編譯,只不過反編譯後代碼難讀懂而已,並且現在破解混淆的方式也比較多。所以真正要防反編譯還是需要通過加密代碼的方式。比如德國威步他們提供一種對.NET代碼完全加密保護的方式來防止反編譯的,曾經測試過用Reflector(.net反編譯工具)反編譯他們加密軟體加密的.NET程序,的確完全無法看到源代碼了。

Ⅱ 如何反編譯.Net Reactor加密過的C#程序

.NET編譯成IL,而不是機器碼,加密工具大都是通過「模糊」來實現的,盡可能的合並函數為相同的無意義名稱,變數名也改為無意義名稱等,加大破解成本,使得反向工程成本大於重新開發成本。

所以,要求不能解密,估計是不行~

Ⅲ 如何反編譯經過XenoCode加密後的軟體

解密XenoCode加密的字元串
很多 .net 程序發行時會使用混淆器進行保護,其中 XenoCode 2005 應該說是使用比較多的一個。
XenoCode會使用一個插入的類對程序集中的字元串進行保護。
本文將結合 Reflector 和反射技術解密程序集中被加密的字元串。

首先,我們使用 Reflector 對原程序進行 Disassembler,找到我們要解密的字元串代碼。

如:
this.x80bb7e5ddf294933.SerialNumber = string.Intern(x1110bdd110cdcea4._d574bb1a8f3e9cbc("\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55));

找到要解密的字元串以後,開始編寫反射調用代碼。

class Program
{
public static void Main()
{
// 載入程序集,test.exe 為被混淆的程序集文件名。
Assembly asm = Assembly.LoadFrom(@"test.exe");

// 獲取XenoCode插入的解密類型(包含其namespace),對應上面字元串前面的類名,每次混淆結果可能都不同。
Type type = asm.GetType("x293b01486f981425.x1110bdd110cdcea4");

// 字元串參數和解密參數
object[] parameters = {"\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55};
Type[] paramTypes = new Type[parameters.Length];
for (int i = 0; i < parameters.Length; i++)
paramTypes = parameters.GetType();

// 調用解密方法
BindingFlags flags = BindingFlags.Public | BindingFlags.Static;
MethodInfo method = type.GetMethod("_d574bb1a8f3e9cbc", flags, null, paramTypes, null);
object result = method.Invoke(null, parameters);

// 顯示解密結果
Console.WriteLine(result);

Console.WriteLine("Press Enter key to exit...");
Console.ReadLine();
}
}

Ⅳ VB.NET寫的程序,如何加密,防止反編譯

一般來說vb.net的程序基本不會被反編譯……

Ⅳ .net軟體,用什麼軟體加密狗加密,能防止代碼反編譯

.Net軟體的特點,一些強大的編譯工具可以對.Net可執行文件進行反編譯操作,並得出相應的IL代碼甚至是源代碼。即使是採用混淆工具以及強命名工具也不能從根本上解決問題,代碼依然會很容易地被Reflectoer等工具反編譯源代碼。
軟體加密狗:威步(WIBU)的CodeMeter,AxProtector(for.net)兩款軟體加密狗性能非常不錯
反編譯的問題,與傳統的代碼混淆工具(Obfuscator)不同,AxProtector可以完全阻止對.NET
程序集(由
C#,
VB.NET,
Delphi.NET,
ASP.Net…
等語言編寫)的反編譯。通俗的講,AxProtector在破解者和您的
.NET
代碼之間構建了強大的防破解保護屏障,生成一個基於
Windows
的而不是基於
MSIL
的兼容格式文件。原始的
.NET
代碼完整的被加密後封裝在本地代碼內,無論何時都不會釋放到硬碟,對於破解者是不可見的。
與單純的.net加密軟體不同,AxProtector與CodeMeter硬體加密狗配套餐使用,採用了更為嚴密的密鑰管理,及最先進的AES、RSA、ECC等加密演算法存儲或傳輸密鑰,保證通訊安全。
.Net代碼編譯後生成的
.class
中包含有源代碼中的所有信息(不包括注釋),尤其是在其中保存有調試信息的時候。所以一個按照正常方式編譯的.class
文件可以非常輕易地被反編譯。一般軟體開發商會採用一種叫做混淆器的工具。混淆器的作用是對編譯好的代碼進行混淆,使得其無法被反編譯或者反編譯後的代碼混亂難懂。由於混淆器只是混淆了方法名稱或流程,而不能防止源代碼被反編譯,因此混淆器的作用只是增加了反編譯的難度,最終的結果也是治標不治本。對於一些掌握工具的人來說幾乎還是透明的。AxProtector是一款真正意義的加密源代碼、防止反編譯的.net軟體加密軟體。
AxProtector加密了.net原代碼,任何時候原代碼都不可能被還原到硬碟當中。採用AxProtector加密後的.net代碼只有在程序調用或執行某一段函數的時候,才能通過AxProtectorClass在內存中解密後返回到程序中執行,運行之後迅速立即加密。這種隨機加密、按需解密原代碼的功能,能很好的防止.Net程序的反編譯,同時能夠很好地防止API加密點被摘除。有效地保證了源代碼的執行效率和安全性。

Ⅵ 如何反編譯C#等net軟體類庫源代碼

.Net 反編譯軟體,最著名的是 Reflector。但是最新版本收費現在打開Reflector的老版本要求強制更新到最新版本。所以,你一下在打開refector 會自動刪除。那麼大家可以使用 ILSpy。使用ILspy。

Ⅶ net程序加密C#開發軟體的源代碼怎麼加密

一般的加密,通過反編譯和跟蹤程序運行都不難破解,所以不僅要加密,還要阻止編譯,防範跟蹤。這是很專業的,市場上有很多現成加密狗產品,可以方便地解決這個問題。源代碼只能採取保密措施,加密是不行的。

Ⅷ c#如何防反編譯

基本上無法防止反編譯,但是可以控制發編譯的效果,讓反編譯出來的代碼無法正常查看。
大都使用混淆器,譬如.NET Reactor等等。
.NET Reactor 是一款強大的 .NET 代碼保護和許可管理系統,安全可靠、簡單易用,主要用來幫助開發人員保護他們的 .NET 軟體產品。開發人員從此不必擔心如何保護他們的知識產權,可以將更多精力放在產品功能的開發上。與模糊工具(Obfuscator)相比,.NET Reactor 可以完全阻止對 .NET 程序集(由 C#, VB.NET, Delphi.NET, J#, MSIL... 等語言編寫)的反編譯。通俗的講,.NETReactor 在破解者和您的 .NET 代碼之間構建了強大的防破解保護屏障,生成一個基於 Windows 的而不是基於 MSIL 的兼容格式文件。原始的 .NET 代碼完整的封裝在本地代碼內,無論何時都不會釋放到硬碟,對於破解者是不可見的,目前還沒有任何工具可以反編譯 .NET Reactor 保護過的程序集。
使用方法:
將本地.NET程序集放在.NET Reactor程序中保護即可。

Ⅸ 如何反編譯或者修改一個.net程序

既然這樣的話,你可以使用反射,將別人的程序集載入到自己的程序裡面,然後在自己的程序調用他的代碼,用反射的好處是,你可以調用所有的私有函數,甚至可以調用函數名被混淆的函數。

Ⅹ .net網頁發布後進行反編譯

.Net有兩個很好的工具可以反編譯.NET程序集:Salamander .Net Decomplier和Reflector.Net ,Salamander .Net Decomplier功能非常強大,可以反編譯混淆過的.NE代碼,也可以直接將程序集中的類反編譯成一個文件,但是它是需要money的,試用版提供的功能又非常有限。相對而言呢,Reflector.net 是完全免費的,但是它只能一個方法一個方法的查看,不能將程序集直接反編譯成一個文件,這樣也比較麻煩,好就好在它支持插件add-in功能。針對它的缺點,很多人開發了很好用的插件,可以將整個程序集的代碼反編譯成源文件,比如說Reflector.FileDisassembler 、Reflector.FileGenerator 都是很好用的。

另外再提供一些Reflector的相關插件下載,enjoy!!!!

插件FileGenerator 使用方法:
最開始下載了FileGenerator插件不知如何使用,後來經過摸索,還是學會使用了,所以拿來和大家分享。

FileGenerator插件的作用是:根據dll文件,把裡面的源文件導出成文件,導出來的文件除了沒有注釋,變數名也變了,其它的可謂是沒有 差別。對於一些比較好的控制項,如果不是開源的,完全可以導出成文件,然後自己加上注釋,少許修改,很好的利用起來。(不開源的dll,用起來也不放心啊)

先根據上面的地址下載FileGenerator並解壓縮,然後運行Reflector.exe,然後點擊View->Add- Ins...,彈出一個窗口,然後點擊Add->選擇FileGenerator裡面的唯一一個dll文件: "FileGenerator.dll",點擊close.
然後回到Reflector窗口,Tool->Generator File(s)... 右邊就出現了插件的窗口,選中左邊的dll文件,點擊右邊的導出文件,源代碼就全部導出來了,真是爽啊!

使用.NET Reflector插件FileDisassembler還原源碼

.NET Reflector,它是一個類瀏覽器和反編譯器,可以分析程序集並向您展示它的所有秘密。.NET 框架向全世界引入了可用來分析任何基於 .NET 的代碼(無論它是單個類還是完整的程序集)的反射概念。反射還可以用來檢索有關特定程序集中包含的各種類、方法和屬性的信息。使用 .NET Reflector,您可以瀏覽程序集的類和方法,可以分析由這些類和方法生成的 Microsoft 中間語言 (MSIL),並且可以反編譯這些類和方法並查看 C# 或 Visual Basic ?.NET 中的等價類和方法。

為了演示 .NET Reflector 的工作方式,我將載入和分析前面已經顯示的 NUnitExample 程序集。下圖顯示了 .NET Reflector 中載入的該程序集。

在 .NET Reflector 內部,有各種可用來進一步分析該程序集的工具。要查看構成某個方法的 MSIL,請單擊該方法並從菜單中選擇 Disassembler。

除了能夠查看 MSIL 以外,您還可以通過選擇 Tools 菜單下的 Decompiler 來查看該方法的 C# 形式。通過在 Languages 菜單下更改您的選擇,您還可以查看該方法被反編譯到 Visual Basic .NET 或 Delphi 以後的形式。以下為 .NET Reflector 生成的代碼:

public void HashtableAddTest(){
Hashtable hashtable1;
hashtable1 = new Hashtable();
hashtable1.Add("Key1", "value1");
hashtable1.Add("Key2", "value2");
Assert.AreEqual("value1", hashtable1["Key1"], "Wrong object returned!");
Assert.AreEqual("value2", hashtable1["Key2"], "Wrong object returned!");
}

前面的代碼看起來非常像我為該方法實際編寫的代碼。以下為該程序集中的實際代碼:

public void HashtableAddTest(){
Hashtable ht = new Hashtable();
ht.Add("Key1", "value1");
ht.Add("Key2", "value2");
Assert.AreEqual("value1", ht["Key1"], "Wrong object returned!");
Assert.AreEqual("value2", ht["Key2"], "Wrong object returned!");
}

盡管上述代碼中存在一些小的差異,但它們在功能上是完全相同的。

雖然該示例是一種顯示實際代碼與反編譯代碼之間對比的好方法,但在我看來,它並不代表 .NET Reflector 所具有的最佳用途 — 分析 .NET 框架程序集和方法。.NET 框架提供了許多執行類似操作的不同方法。例如,如果您需要從 XML 中讀取一組數據,則存在多種使用 XmlDocument、XPathNavigator 或 XmlReader 完成該工作的不同方法。通過使用 .NET Reflector,您可以查看 Microsoft 在編寫數據集的 ReadXml 方法時使用了什麼,或者查看他們在從配置文件讀取數據時做了哪些工作。.NET Reflector 還是一個了解以下最佳實施策略的優秀方法:創建諸如 HttpHandlers 或配置處理程序之類的對象,因為您可以了解到 Microsoft 工作組實際上是如何在框架中生成這些對象的。

.NET Reflector 由 Lutz Roeder 編寫

閱讀全文

與net程序加密了能反編譯相關的資料

熱點內容
app伺服器程序放在哪裡 瀏覽:841
電商怎麼選擇雲伺服器 瀏覽:565
錘子視頻文件夾 瀏覽:16
演算法的兩要素是什麼和什麼 瀏覽:772
如何創建伺服器多用戶 瀏覽:654
javaonlinejudge編譯錯誤 瀏覽:65
命令與征服3泰伯利亞戰爭升級 瀏覽:690
投標工具需要加密鎖嗎 瀏覽:503
蘇州阿里雲伺服器服務電話 瀏覽:783
怎麼知道app專屬流量 瀏覽:62
單片機模擬動畫教程 瀏覽:735
linux解壓鏡像 瀏覽:164
c語言可以在哪編譯 瀏覽:127
如何對spl的密碼加密 瀏覽:73
oppoa59s如何添加應用加密 瀏覽:515
比特幣asic演算法 瀏覽:175
查看伺服器外網訪問地址 瀏覽:857
魔獸爭霸地圖最新加密 瀏覽:686
暢捷雲APP怎麼l發票 瀏覽:213
黑馬程序員與傳智播客 瀏覽:521