簡體   English   中英

如何打開 DLL 文件以查看其中寫入的內容?

[英]How can I open DLL files to see what is written inside?

我失去了類庫的解決方案。 我可以打開類庫創建的 DLL 文件嗎?

最好使用 Redgate 的.NET ReflectorJetBrainsReSharper反編譯器等反編譯器。

也有開源的,比如:

請按照以下步驟...

  1. 轉到開始菜單。
  2. 鍵入Visual Studio 工具
  3. 轉到上面的文件夾。
  4. Visual Studio 2013的情況下單擊“VS 2013 的開發人員命令提示符”,在Visual Studio 2010的情況下單擊“Visual Studio 命令提示符”。
  5. 命令提示符加載到屏幕后,鍵入ILDASM.EXE按 ENTER。
  6. 將打開一個ILDASM窗口。 .dll文件從您的文件夾拖到窗口中。 或點擊菜單FileNew 然后添加所需的.dll文件。
  7. 經過以上步驟,就會出現manifest和.dll文件。 雙擊這些文件以查看它們包含的內容。

我想你已經下載了 .NET Reflector 和這個 FileGenerator 插件http://filegenreflector.codeplex.com/ ,如果你這樣做了,

  1. 打開 Reflector.exe,

  2. 轉到查看並單擊加載項,

  3. 在加載項窗口中單擊添加...,

  4. 然后找到你下載的dll

  5. FileGenerator.dll(女巫帶有 FileGenerator 插件),

  6. 然后關閉加載項窗口。

  7. 轉到文件並單擊打開並選擇要反編譯的dll,

  8. 打開它后,它會出現在樹形視圖中,

  9. 轉到工具並單擊生成文件(Crtl+Shift+G),

  10. 選擇輸出目錄並根據需要選擇適當的設置,單擊生成文件。

或者

使用http://ilspy.net/

你不能得到確切的代碼,但你可以得到它的反編譯版本。

最受歡迎(也是最好的)工具是Reflector ,但也有其他 .NET 反編譯器(例如Dis# )。

您還可以使用與 .NET Framework SDK 工具捆綁在一起的ILDASMCIL進行反編譯。

我使用 JetBrains 的dotPeek軟件。 你也可以試試。

Telerik 的Just Decompile是我用過的最好的。 使用電子郵件注冊后,它是免費的。

使用 Visual Studio 打開.dll文件。 或資源編輯器。

*.dll 文件是使用WinZip7-Zip等打開的存檔文件。這並不是說所有 .dll 文件都是存檔文件。 您可以使用 .dll 擴展名保存任何內容。 但是,大多數 Windows .dll 文件生成為存檔。 這方面的示例是 Windows > twain_32.dll,它是一個存檔文件。 但是, twain.dll不是。 如果您查看 twain.dll,您會看到一個 MZŽ 作為前三個記事本字符,表示已編譯的 C 文件/程序或程序的一部分。 而 MZ 似乎是一個檔案。

此外,大多數 .exe 文件是主要包含圖標圖像等的檔案。對於文件和 Windows 安裝程序包,它們包含程序運行圖像、電影等所需的所有信息,以及包括安裝信息和目錄在內的目錄。純文本文件。

我在這里有一個游戲game.exe ,它包含 Java 類文件和圖像指針,指示 .exe 運行 .bat 文件。 顯然,您的 .bat 文件將從存檔中運行javac調用並運行游戲。 還有一些包含 Java 類文件的 .dll 檔案。

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO
standard icon redirect here .ico is an image file within a .dll file within a .exe file. So the image seen on the .exe file is the minecraft logo. This is in a file called autorun.inf. Second example

[discstarter]
    startpage=Autostart\Disk1.html
    uselanguagestartpage=1
    windowcaption=Solid Edge
    licensee=Siemens PLM Software
    productguid=05B227DF-DB00-4934-B3C8-40B7D8FAA54A
    singleinstance=1
    hidesplashscreen=1
    noscrollbars=0
    showstatusbar=1
    splashscreentime=0
    windowwidth=750
    windowheight=775
    buttondir=Autostart
    toolbarcolor=16777215
    toolbar=goback,goforward,gohome,print,exit
    [autorun]
    open=autostart.exe
    icon=Autostart\ENGINE.ICO

這是solidedge.exe 中包含的solidedge autorun.inf文件 Autostart\ 是Autostart.dll目錄。 open=autostart.exe 指定要從原始 solidedge.exe 存檔中運行的 autostart.exe 文件。 這是一個使用 .dll(動態鏈接庫)文件的示例程序: 創建和使用 DLL

它還顯示了它們是如何創建的。 如您所見,DLL文件文件的內容是由EXE文件文件調用的,正如我之前解釋的那樣。 這里還有一個教程Walkthrough: Create and use your own Dynamic Link Library (C++) ,正如我之前所說,只要你有 .dll 文件,7-Zip 或 WinZip 就會打開一個動態鏈接庫作為存檔. 如果動態鏈接庫的內容已經被明顯編譯,則需要一個可以讀取該文件的程序。

但是,由於 .dll 文件根據定義只是存檔庫文件,因此 DLL 文件本身應該是可讀的,而不是編譯后的 C 或 C# 文件等。基本上,.dll 文件是存檔文件。 好吧,它們應該是在 Visual Studio 中創建 .dll 文件時。 DLL 文件被創建並且您存儲在 DLL 文件文件中的任何信息都被加密。 大多數情況下,這種加密是由 Visual Studio 本身處理的,通常不是手動編輯的。 當您將 .dll 文件內容作為 .exe 讀取時,內容會自動解密。 現在,當我們談論編譯程序時,我們正在將內容更改為機器易於解釋的字節碼。

此文件大小將小於相同內容的原始文件。 但是,文件大小較大,表明該文件實際上已被加密。 這可能是為了阻止人們閱讀他們的代碼。 因此,讀取 .dll 內容稱為解密而不是反編譯。 反編譯會將已編譯的 .txt 文件轉換為不可讀的字節碼。 標准 .dll 文件的使用根據定義不是開源的,因為它涉及故意混淆字節碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM