當前位置:首頁 » 編程軟體 » 程序集c怎麼反編譯

程序集c怎麼反編譯

發布時間: 2023-01-31 07:45:22

① C#如何防止被別人反編譯

C# 編寫的代碼通過VS編譯器生成 dll 或 exe ,很容易被一些反編譯工具查看到源碼或對源碼進行修改。
為防止代碼被反編譯或被篡改,我們可以進行一定的防範措施。但不能杜絕,因為DotNet編寫代碼運行必須編譯成IL 中間語言,IL是很規則,同時也很好反編譯。

反編譯防範措施:

  • 設置項目代碼反匯編屬性

  • 混淆

  • 方法一:防止 Ildasm.exe(MSIL 反匯編程序) 反匯編程序集

    方法很簡單在項目文件AssemblyInfo.cs中增加SuppressIldasm屬性。

    效果很明顯,很難看出反編譯代碼所寫的真正邏輯。

    缺點:
    C#代碼通過混淆工具生成後,增加了很多轉換過程。這使得反編譯工具無法很直觀看到源碼真正邏輯。但源碼代碼過多轉換會使軟體本身運行效率降低,甚至會出現報錯情況。

② 怎麼反編譯一個獨立的exe文件,但是我也不曉得那個文件是什麼語言編寫的。

那得看是什麼語言編寫的,不是所有的都可以反編譯的,編譯成二進制代碼的話,恐怕反編譯不了,只能反匯編了。

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

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

  • 1

    下載後的ILSPY 。

    打開EXE

  • 6

    畢竟.NET 和JAVA 屬於中間語言,很好反編譯。

④ C#寫出來的代碼,反編譯之後能看到源代碼,怎麼樣防止別人的反編譯。求高手指點

C#代碼最終會被編譯為 IL,對 IL 進行逆向工程比較簡單,因此一種辦法是向第三方購買一個混淆器(obfuscator),能通過打亂程序集元數據中的私有符合名稱,讓人難以閱讀。但本質上,這種保護是有限的,只是難以閱讀,而不能從根本上避免。
另一種辦法是,在非託管模塊中實現你比較重要的演算法,然後通過 CLR 的平台互操作,來使託管代碼調用它,這樣程序仍然能夠正常工作,但對非託管的本地代碼進行反編譯,就很困難。
一般來說,除非你的這部分代碼非常重要,或涉及核心機密,才需要考慮防止反編譯的做法。一般來說,混淆器也足夠了。

⑤ 你是如何吧易語言模塊反編譯成功的

從沒反編譯陳功過我

⑥ 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 編寫

熱點內容
怎麼把自家電腦變成伺服器 發布:2024-04-17 01:14:58 瀏覽:160
有哪些高配置的游戲手機 發布:2024-04-17 01:09:11 瀏覽:436
交易系統編程 發布:2024-04-17 00:09:50 瀏覽:699
編程思想pdf下載 發布:2024-04-16 23:56:26 瀏覽:183
資料庫網格計算 發布:2024-04-16 23:28:13 瀏覽:22
電波蘿莉醬解壓 發布:2024-04-16 23:26:59 瀏覽:547
平板訪問密碼是什麼時候設置的 發布:2024-04-16 23:15:52 瀏覽:178
pyinstaller如何自定義配置打包 發布:2024-04-16 22:51:54 瀏覽:199
怎麼設置建行登陸密碼 發布:2024-04-16 22:49:58 瀏覽:58
大型激光編程 發布:2024-04-16 22:41:04 瀏覽:535