[英]How can I open DLL files to see what is written inside?
我失去了類庫的解決方案。 我可以打開類庫創建的 DLL 文件嗎?
請按照以下步驟...
ILDASM.EXE
按 ENTER。.dll
文件從您的文件夾拖到窗口中。 或點擊菜單File → New 。 然后添加所需的.dll
文件。.dll
文件。 雙擊這些文件以查看它們包含的內容。我想你已經下載了 .NET Reflector 和這個 FileGenerator 插件http://filegenreflector.codeplex.com/ ,如果你這樣做了,
打開 Reflector.exe,
轉到查看並單擊加載項,
在加載項窗口中單擊添加...,
然后找到你下載的dll
FileGenerator.dll(女巫帶有 FileGenerator 插件),
然后關閉加載項窗口。
轉到文件並單擊打開並選擇要反編譯的dll,
打開它后,它會出現在樹形視圖中,
轉到工具並單擊生成文件(Crtl+Shift+G),
選擇輸出目錄並根據需要選擇適當的設置,單擊生成文件。
或者
我使用 JetBrains 的dotPeek軟件。 你也可以試試。
Telerik 的Just Decompile是我用過的最好的。 使用電子郵件注冊后,它是免費的。
使用 Visual Studio 打開.dll文件。 或資源編輯器。
*.dll 文件是使用WinZip 、 7-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.