วิธีเปิดไฟล์. dll เพื่อดูสิ่งที่เขียนอยู่ภายใน?


98

ฉันทำโซลูชันไลบรารีคลาสหายฉันสามารถเปิด.dllไฟล์ที่สร้างโดยclass-library.


10
Reflector ......
Mitch Wheat

23
DotPeek .........
ผู้ใช้จ่าย

7
นอกจากนี้: ลองใช้ Source Code Control ....
Mitch Wheat

1
อาจซ้ำกันของการเปิดและการสอดแนม DLLs
Daniel Powell

คำตอบ:


116

คุณจะดีกว่ากับ decompiler เช่น redgates .net reflector หรือ jetbrains resharper decompiler มีโอเพ่นซอร์สที่ชอบ

http://www.jetbrains.com/decompiler/

http://ilspy.net/


jetbrains.com/decompilerทำงานให้ฉัน +1 สำหรับสิ่งนั้น ขอบคุณสำหรับคำแนะนำ!
Vikram

ilspy ++++++++++++++++++++
Imad

ildpy +1 สิ่งที่ดี.
sonsha

ILSpy คุณสอดแนมอะไร
gonzobrains

35

ทำตามขั้นตอนด้านล่าง ..

  1. ไปที่เมนูเริ่ม
  2. พิมพ์ Visual Studio Tool
  3. ไปที่โฟลเดอร์ด้านบน
  4. คลิกที่ "Developer Command Prompt สำหรับ VS 2013" ในกรณีของ VS 2013 หรือเพียงแค่ "Visual Studio Command Prompt" ในกรณีของ VS 2010
  5. หลังจากพรอมต์คำสั่งโหลดไปยังประเภทหน้าจอILDASM.EXEกด ENTER
  6. ILDASMหน้าต่างจะเปิดขึ้นลาก.dllไฟล์ไปที่หน้าต่างจากโฟลเดอร์ของคุณหรือคลิกที่จากFile->Newนั้นเพิ่ม.dll ไฟล์ที่ต้องการ
  7. หลังจากขั้นตอนข้างต้น Mainfest และ.dllไฟล์จะปรากฏขึ้น ดับเบิลคลิกที่ไฟล์เหล่านี้เพื่อดูว่ามีอะไรบ้าง

ฉันทำตามคำแนะนำที่ชัดเจนของคุณโดยใช้ VS 2012 และ 2015 / Windows 7 Pro อย่างไรก็ตาม ILDASM ออกข้อความต่อไปนี้สำหรับไฟล์. dll ที่ฉันพยายามตรวจสอบ: has no valid CLR header and cannot be disassembled.
CODE-REaD

2
กระบวนการนี้ใช้เพื่อแยกส่วนภาษากลางที่สร้างโดย CLR
mmushtaq

7

ฉันคิดว่าคุณได้ดาวน์โหลด. NET Reflector และปลั๊กอิน FileGenerator นี้http://filegenreflector.codeplex.com/ถ้าคุณทำ

  1. เปิด Reflector.exe

  2. ไปที่ดูและคลิก Add-in

  3. ในหน้าต่าง Add-Ins คลิกเพิ่ม ...

  4. จากนั้นค้นหา dll ที่คุณดาวน์โหลดมา

  5. FileGenerator.dll (แม่มดมาพร้อมกับปลั๊กอิน FileGenerator)

  6. จากนั้นปิดหน้าต่าง Add-Ins

  7. ไปที่ไฟล์แล้วคลิกเปิดและเลือก dll ที่คุณต้องการถอดรหัส

  8. หลังจากที่คุณเปิดมันจะปรากฏในมุมมองแบบต้นไม้

  9. ไปที่เครื่องมือแล้วคลิกสร้างไฟล์ (Crtl + Shift + G)

  10. เลือกไดเร็กทอรีเอาต์พุตและเลือกการตั้งค่าที่เหมาะสมตามที่คุณต้องการคลิกสร้างไฟล์

หรือ

ใช้http://ilspy.net/


คุณแนะนำเรื่องไหนโดยเฉพาะ ILspy หรือ Reflector? ข้อดีข้อเสีย
T.Todua

3

คุณไม่สามารถรับรหัสที่แน่นอนได้ แต่คุณสามารถรับรหัสที่แยกออกมาได้

เครื่องมือที่ได้รับความนิยมมากที่สุด (และดีที่สุด) คือตัวสะท้อนแสงแต่ยังมีตัวถอดรหัส. Net อื่น ๆ (เช่นDis # )

คุณยังสามารถถอดรหัส IL โดยใช้ILDASMซึ่งมาพร้อมกับ. Net Framework SDK Tools


1

เปิด.dllไฟล์ด้วย Visual Studio หรือตัวแก้ไขทรัพยากร


2
เมื่อฉันพยายามเปิดไฟล์. dll โดยใช้ Visual Studio Express 2013 / Windows 7 Pro มันมีข้อความดังนี้There is no editor available for (file I tried to open). Make sure the application for the file type (.dll) is installed.
CODE-REaD



-11

* ไฟล์. dll เป็นไฟล์เก็บถาวรที่เปิดด้วย winzip / 7zip เป็นต้นซึ่งไม่ได้หมายความว่าไฟล์. dll ทั้งหมดเป็นไฟล์เก็บถาวรที่คุณสามารถบันทึกอะไรก็ได้ด้วยนามสกุล. dll อย่างไรก็ตามไฟล์ windows .dll ส่วนใหญ่ถูกสร้างขึ้นเพื่อเป็นไฟล์เก็บถาวรตัวอย่างเช่นนี้คือ windows > twain_32.dll ซึ่งเป็นไฟล์เก็บถาวร แต่ twain.dll ไม่ใช่ถ้าคุณดู twain.dll คุณจะเห็นMZŽเป็นอักขระ notepad สามตัวแรกซึ่งหมายถึงไฟล์ / โปรแกรมที่รวบรวมหรือเป็นส่วนหนึ่งของโปรแกรม ในขณะที่ MZ ดูเหมือนจะเป็นที่เก็บถาวร

นอกจากนี้ไฟล์. exe ส่วนใหญ่ยังเป็นไฟล์เก็บถาวรที่ส่วนใหญ่มีรูปภาพไอคอนและอื่น ๆ สำหรับไฟล์และแพ็คเกจตัวติดตั้ง windows รวมทั้งมีข้อมูลทั้งหมดที่โปรแกรมต้องการเพื่อเรียกใช้รูปภาพภาพยนตร์ ฯลฯ และไดเร็กทอรีรวมถึงข้อมูลการติดตั้งและไฟล์ข้อความธรรมดา

ฉันมีเกมที่นี่ game.exe และมีไฟล์คลาส java ซึ่งเป็นภาพที่ตัวชี้สั่งให้. exe เรียกใช้ไฟล์. bat เห็นได้ชัดว่าไฟล์. bat ของคุณจะเรียกใช้การเรียก javac จากไฟล์เก็บถาวรและเรียกใช้เกมนอกจากนี้ยังมีไฟล์เก็บถาวร. dll สองสามไฟล์ที่มีไฟล์คลาส java ด้วย

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

ไอคอนมาตรฐานเปลี่ยนเส้นทางที่นี่. ico คือไฟล์รูปภาพภายในไฟล์. dll ภายในไฟล์. exe ดังนั้นภาพที่เห็นในไฟล์. exe คือโลโก้ minecraft ไฟล์นี้อยู่ในไฟล์ชื่อ autorun.inf ตัวอย่างที่สอง

[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

นี่คือไฟล์ autorun.inf แบบขอบทึบที่อยู่ใน solidedge.exe Autostart \ คือไดเร็กทอรี Autostart.dll open = autostart.exe ระบุไฟล์ autostart.exe เพื่อเรียกใช้จากภายในไฟล์เก็บถาวร solidedge.exe ดั้งเดิม นี่คือตัวอย่างโปรแกรมที่ใช้ .dll (ห้องสมุดเชื่อมโยงแบบไดนามิก) ไฟล์http://www.flipcode.com/archives/Creating_And_Using_DLLs.shtml

นอกจากนี้ยังแสดงวิธีการสร้าง อย่างที่คุณเห็นเนื้อหาของไฟล์ dll ถูกเรียกโดยไฟล์ exe ตามที่ฉันได้อธิบายไว้ก่อนหน้านี้นอกจากนี้ยังมีการสอนที่นี่http://msdn.microsoft.com/en-us/library/ms235636.aspxและอย่างที่ฉันพูดไปก่อนหน้านี้ 7zip หรือ winzip จะเปิดไลบรารีลิงก์แบบไดนามิกเป็นที่เก็บถาวรตราบเท่าที่คุณมีไฟล์. dll หากเนื้อหาของไลบรารีลิงก์ไดนามิกได้รับการคอมไพล์อย่างชัดเจนคุณต้องมีโปรแกรมที่สามารถอ่านไฟล์ได้

อย่างไรก็ตามเนื่องจากไฟล์. dll มีความหมายเพียงแค่เก็บไฟล์ไลบรารีไฟล์ dll เองจึงควรอ่านได้ไม่ใช่ไฟล์ C, C # ที่คอมไพล์แล้ว ฯลฯ โดยทั่วไปไฟล์. dll เป็นไฟล์เก็บถาวรที่ดีควรเป็นเมื่อไฟล์. dll ถูกสร้างขึ้นในสตูดิโอภาพ dll คือ สร้างขึ้นและข้อมูลใด ๆ ที่คุณเก็บไว้ในไฟล์ dll จะถูกเข้ารหัส ส่วนใหญ่การเข้ารหัสนี้จัดการโดยสตูดิโอภาพและโดยทั่วไปจะไม่แก้ไขด้วยมือ เมื่อคุณอ่านเนื้อหาไฟล์. dll เป็น. exe เนื้อหาจะถูกถอดรหัสโดยอัตโนมัติ ตอนนี้เมื่อเราพูดถึงการรวบรวมโปรแกรมเรากำลังเปลี่ยนเนื้อหาเป็น bytecode ที่เครื่องตีความได้ง่าย

ขนาดไฟล์นี้จะเล็กกว่าไฟล์ต้นฉบับที่มีเนื้อหาเดียวกัน อย่างไรก็ตามขนาดไฟล์จะใหญ่ขึ้นซึ่งบ่งบอกว่าไฟล์ได้รับการเข้ารหัสแล้ว อาจจะหยุดคนอ่านรหัสของพวกเขา ด้วยเหตุนี้การอ่านเนื้อหา. dll จึงเรียกว่าการถอดรหัสและไม่ใช่การถอดรหัส การคอมไพล์จะแปลงไฟล์ txt ที่คอมไพล์แล้วเป็นรหัสไบต์ที่อ่านไม่ได้ การใช้ไฟล์. dll มาตรฐานนั้นเป็นไปตามคำจำกัดความไม่ใช่โอเพนซอร์สเนื่องจากเกี่ยวข้องกับการทำให้รหัสไบต์สับสนโดยเจตนา


9
ฉันไม่แน่ใจว่าสิ่งนี้จะนับเป็นการละทิ้งความเชื่อหรือนอกรีตในแวดวงคอมพิวเตอร์ จะปรับปรุงได้อย่างไร? ถ้าเป็นบนกระดาษฉันสามารถใช้ไม้ขีดไฟเพื่อขจัดความทุกข์ยากได้
brewmanz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.