日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Reflector + ILSpy 反编译过程

發布時間:2023/12/10 asp.net 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Reflector + ILSpy 反编译过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

前言

一、源碼怎么導出?

?二、資源文件處理

1.使用Resgen做文件轉換

2.使用ILSPy導出的資源文件?

三、引用的處理

1. 外部引用

2.框架引用

四、錯誤處理

五、遍歷問題

六、app.config

七、創建窗體Designer文件

1.創建designer文件

2.刪除代碼

3.控件加上命名控件

4.報錯處理:

System.ComponentModel.ComponentResourceManager?manager未聲明或從未賦值。

?總結


前言

最近開始一個窗體項目的反編譯任務。使用了.NET Reflector 10 和ILSPy 兩個軟件進行反編譯。而后合并兩個軟件的導出的源碼。

下面整理兩個軟件的源碼導出 以及導出后代碼問題的處理。

???

一、源碼怎么導出?

Reflector

項目右鍵,Export Source Code(導出源碼)

?導出的源碼結構如下,導出的項目按命名空間一層建一個文件夾

?ILSpy:

對比兩個軟件導出的源碼,我這里使用的是.NET Reflector 導出的源碼。

選擇源碼目錄下的.csproj文件,使用VS 2019 打開 。接下來針對源碼問題進行處理。

?二、資源文件處理

?Reflector :資源文件是.resources(二進制)的格式。

1.使用Resgen做文件轉換

可以使用微軟的Resgen.exe(通用資源轉換實用工具)將.resources(二進制)文件轉成.resx文件(XML)

具體方法見:

Resgen.exe(資源文件生成器) - .NET Framework | Microsoft Docs

資源文件在最外層,轉成.resx文件后,需要移動到對應的窗體目錄下。

2.使用ILSPy導出的資源文件?

ILSPy: 代碼保存后,無需轉換資源文件。直接將文件移動到對應目錄下。

處理完后,使用記事本的方式打開.csproj文件,將EmbeddedResource節點下的.resources內嵌資源刪除。

或者打開項目,把這些資源文件從項目中移除,然后將.res文件分別包括到項目中。

三、引用的處理

1. 外部引用

Reflector導出的源碼,引用是失效的。 需要重新引用

?

2.框架引用

System. 這種引用失效,可能是框架版本太低,不支持。修改下就好了。

我這邊的項目是net 2.0 。修改成net 4.0 就可以了

?

四、錯誤處理

“global::System.Runtime.Versioning.TargetFrameworkAttribute”特性重復

把報錯這一句刪除

五、遍歷問題

錯誤信息1:無法在此范圍中聲明名為“item”的局部變量或參數,因為該名稱在封閉局部范圍中用于定義局部變量或參數

將item這個別名修改成其他的就可以了

錯誤信息2:“IEnumerator”: using 語句中使用的類型必須可隱式轉換為“System.IDisposable”

一個類中可能會有多個遍歷。從ILSPy導出的源碼中找到對應的類,直接拷貝過來替換報錯的類就OK了。

六、app.config

Reflector導出的源碼 ,app.config是空的。

ILSpy 里有完整的配置信息。

因此這里也是從ILSPy導出的源碼拷貝過來替換

?

七、創建窗體Designer文件

1.創建designer文件

在項目目錄下,復制一個.cs 窗體文件 ,名字修改為 窗體名.Designer.cs

2.刪除代碼

打開項目,將Deigner文件包含在項目中。 保留控件聲明 還有 Dispose?、 InitializeComponent() 方法。刪除 : Form 窗體繼承 、窗體加載事件、控件事件?以及其他業務處理方法。刪除using 、

將類的修飾符修改為partial

在.cs文件里 和上面做相反的操作,在public 之后加上partial

3.控件加上命名控件

將 鼠標移動到 報錯的地方,點擊顯示可能的修補程序。就可以看到該控件在哪個命名空間之下。

?

修改后為

?

4.報錯處理:

System.ComponentModel.ComponentResourceManager?manager未聲明或從未賦值。

查看窗體設計器時,System.ComponentModel.ComponentResourceManager?manager未聲明或從未賦值。

處理方法:將?類名manager 修改為 resources ??

?總結

?1.反編譯后的源碼調整 可以參照有源碼的窗體項目進行對比,然后進行修改。

?2.目前項目可以調試起來正常登錄,代碼和源代碼還是會有一些出入的,但在沒源碼的情況下,只能根據這個項目來了 ,后續有其他問題再繼續記錄~?

總結

以上是生活随笔為你收集整理的.NET Reflector + ILSpy 反编译过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。