Làm thế nào để mở các tệp .dll để xem những gì được viết bên trong?


Câu trả lời:



30

Làm theo các bước dưới đây ..

  1. Chuyển đến Menu Bắt đầu.
  2. Gõ Visual Studio Tool.
  3. Đi tới thư mục trên.
  4. Nhấp vào "Developer Command Prompt cho VS 2013" trong trường hợp VS 2013 hoặc chỉ "Visual Studio Command Prompt" trong trường hợp VS 2010.
  5. Sau khi dấu nhắc lệnh được tải đến loại màn hình, ILDASM.EXEnhấn ENTER.
  6. ILDASMcửa sổ sẽ mở ra. Kéo .dlltệp vào cửa sổ từ thư mục của bạn, hoặc nhấp vào. File->NewSau đó Thêm .dll tệp cần thiết .
  7. Sau các bước trên Mainfest và .dlltệp sẽ xuất hiện. Nhấp đúp vào các tệp này để xem nó chứa những gì.

Tôi đã làm theo hướng dẫn rõ ràng của bạn bằng cách sử dụng VS 2012 và 2015 / Windows 7 Pro. Tuy nhiên, ILDASM ban hành thông báo sau cho các tập tin .dll Tôi đã cố gắng để kiểm tra: has no valid CLR header and cannot be disassembled.
CODE-REaD

2
Quá trình này được sử dụng để tháo rời Ngôn ngữ trung gian được tạo bởi CLR.
mmushtaq,

7

Tôi nghĩ rằng bạn đã tải xuống .NET Reflector và plugin FileGenerator này http://filegenreflector.codeplex.com/ , Nếu bạn làm,

  1. Mở Reflector.exe,

  2. Đi tới Xem và nhấp vào Phần bổ trợ,

  3. Trong cửa sổ Bổ trợ, bấm Thêm ...,

  4. Sau đó tìm dll bạn đã tải xuống

  5. FileGenerator.dll (phù thủy xuất hiện với plugin FileGenerator),

  6. Sau đó, đóng cửa sổ Add-Ins.

  7. Đi tới Tệp và nhấp vào Mở và chọn dll mà bạn muốn dịch ngược,

  8. Sau khi bạn mở nó, nó sẽ xuất hiện trong chế độ xem dạng cây,

  9. Đi tới Công cụ và nhấp vào Tạo tệp (Crtl + Shift + G),

  10. chọn thư mục đầu ra và chọn cài đặt thích hợp theo ý muốn của bạn, Nhấp vào tạo tệp.

HOẶC LÀ

sử dụng http://ilspy.net/


cụ thể bạn tư vấn cái nào? ILspy hay Reflector? ưu và nhược điểm
T.Todua

3

Bạn không thể lấy mã chính xác, nhưng bạn có thể nhận được phiên bản dịch ngược của nó.

Công cụ phổ biến nhất (và tốt nhất) là Reflector , nhưng cũng có các trình dịch ngược .Net khác (chẳng hạn như Dis # ).

Bạn cũng có thể dịch ngược IL bằng ILDASM , đi kèm với Công cụ SDK .Net Framework.


1

Mở .dlltệp với studio trực quan. Hoặc biên tập tài nguyên.


2
Khi tôi cố gắng mở tệp .dll bằng Visual Studio Express 2013 / Windows 7 Pro, nó đã đưa ra thông báo sau:There is no editor available for (file I tried to open). Make sure the application for the file type (.dll) is installed.
CODE-REaD 15/09/2016



-11

Các tệp * .dll là các tệp lưu trữ được mở bằng winzip / 7zip, v.v. Điều đó không có nghĩa là tất cả các tệp .dll đều là tệp lưu trữ, bạn có thể lưu bất kỳ thứ gì bằng phần mở rộng .dll tuy nhiên hầu hết các tệp windows .dll được tạo để làm kho lưu trữ, ví dụ về điều này là cửa sổ > twain_32.dll là một tệp lưu trữ tuy nhiên twain.dll không phải là nếu bạn nhìn vào twain.dll, bạn sẽ thấy MZŽ là ba ký tự notepad đầu tiên biểu thị một tệp / chương trình C biên dịch hoặc một phần của chương trình. Trong khi MZ dường như là một kho lưu trữ.

Ngoài ra, hầu hết các tệp .exe là kho lưu trữ chủ yếu chứa hình ảnh biểu tượng, v.v. cho tệp và các gói trình cài đặt windows cũng như chúng chứa tất cả thông tin chương trình cần để chạy hình ảnh, phim, v.v. và cũng có thư mục bao gồm thông tin cài đặt và tệp văn bản thuần túy.

Tôi có một trò chơi ở đây là game.exe và nó chứa các tệp lớp java một hình ảnh một con trỏ hướng .exe chạy tệp .bat. Rõ ràng là tệp .bat của bạn sẽ chạy một cuộc gọi javac từ kho lưu trữ và chạy trò chơi cũng có một vài tệp lưu trữ .dll chứa các tệp lớp java.

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

chuyển hướng biểu tượng tiêu chuẩn ở đây .ico là một tệp hình ảnh trong tệp .dll trong tệp .exe. Vì vậy, hình ảnh nhìn thấy trên tệp .exe là biểu trưng của minecraft. Đây là một tệp được gọi là autorun.inf. Ví dụ thứ hai

[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

Đây là tệp autorun.inf cạnh rắn có trong solidedge.exe Autostart \ là thư mục Autostart.dll. open = autostart.exe chỉ định tệp autostart.exe chạy từ bên trong kho lưu trữ solidedge.exe ban đầu. Đây là chương trình mẫu sử dụng các tệp .dll (thư viện liên kết động) http://www.flipcode.com/archives/Creating_And_Using_DLLs.shtml .

Nó cũng cho thấy chúng được tạo ra như thế nào. Như bạn có thể thấy nội dung của tệp dll được gọi bằng tệp exe như tôi đã giải thích trước đây cũng có một hướng dẫn ở đây http://msdn.microsoft.com/en-us/library/ms235636.aspx và như tôi đã nói trước đây 7zip hoặc winzip sẽ mở thư viện liên kết động dưới dạng kho lưu trữ miễn là bạn có tệp .dll. Nếu nội dung của thư viện liên kết động đã được biên dịch rõ ràng bạn cần một chương trình có thể đọc tệp.

Tuy nhiên, vì tệp .dll theo định nghĩa chỉ là tệp thư viện lưu trữ, bản thân dll phải có thể đọc được chứ không phải tệp C, C # đã biên dịch, v.v. Về cơ bản, tệp .dll là tệp lưu trữ tốt nên khi tệp .dll được tạo trong studio trực quan thì dll đó được tạo và mọi thông tin bạn lưu trữ trong tệp dll đều được mã hóa. Phần lớn mã hóa này được xử lý bởi chính studio trực quan và thường không được chỉnh sửa bằng tay. Khi bạn đọc nội dung tệp .dll dưới dạng .exe, nội dung sẽ tự động được giải mã. Bây giờ khi chúng ta nói về việc biên dịch một chương trình, chúng ta đang thay đổi nội dung thành bytecode mà máy dễ dàng diễn giải.

Kích thước tệp này sẽ nhỏ hơn tệp gốc có cùng nội dung. Tuy nhiên, kích thước tệp lớn hơn cho thấy tệp thực sự đã được mã hóa. Có thể là để ngăn mọi người đọc mã của họ. Do đó, việc đọc nội dung .dll được gọi là giải mã và không phải là dịch ngược. Giải mã sẽ chuyển đổi các tệp txt đã được biên dịch thành mã byte không thể đọc được. Việc sử dụng các tệp .dll tiêu chuẩn theo định nghĩa không phải là mã nguồn mở vì nó liên quan đến việc cố ý làm xáo trộn mã byte.


8
Tôi không chắc liệu điều này có bị coi là bội đạo hay dị giáo trong giới máy tính hay không. Làm thế nào nó có thể được cải thiện? Nếu nó là trên giấy, tôi có thể sử dụng một que diêm để dập tắt nó.
brewmanz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.