.dll 파일을 열어 내부 내용을 확인하는 방법은 무엇입니까?


답변:


113

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

34

아래 단계를 따르십시오 ..

  1. 시작 메뉴로 이동합니다.
  2. Visual Studio Tool을 입력합니다.
  3. 위의 폴더로 이동하십시오.
  4. VS 2013의 경우 "VS 2013 용 개발자 명령 프롬프트"를 클릭하고 VS 2010의 경우 "Visual Studio 명령 프롬프트"를 클릭합니다.
  5. 명령 프롬프트가 화면에로드되면 ILDASM.EXEEnter 키를 누릅니다.
  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 2010 년

7

.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/ 사용


구체적으로 어떤 것을 조언합니까? ILspy 또는 Reflector? 찬반 양론
T.Todua

3

정확한 코드는 얻을 수 없지만 디 컴파일 된 버전은 얻을 수 있습니다.

가장 인기있는 (그리고 가장 좋은) 도구는 Reflector 이지만 다른 .Net 디 컴파일러 (예 : Dis # )도 있습니다.

.Net Framework SDK 도구와 함께 제공되는 ILDASM을 사용하여 IL을 디 컴파일 할 수도 있습니다 .


1

.dllVisual Studio로 파일을 엽니 다 . 또는 리소스 편집기.


2
Visual Studio Express 2013 / Windows 7 Pro를 사용하여 .dll 파일을 열려고했을 때 다음 메시지가 표시되었습니다.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 파일은 아카이브로 생성됩니다. 아카이브 파일 인> twain_32.dll 그러나 twain.dll은 twain.dll을 보면 컴파일 된 C 파일 / 프로그램 또는 프로그램의 일부를 나타내는 처음 세 개의 메모장 문자로 MZ®가 표시됩니다. MZ는 아카이브 인 것처럼 보입니다.

또한 대부분의 .exe 파일은 대부분 파일에 대한 아이콘 이미지 등을 포함하는 아카이브이며 Windows 설치 프로그램 패키지는 프로그램이 이미지, 영화 등을 실행하는 데 필요한 모든 정보와 설치 정보 및 일반 텍스트 파일을 포함한 디렉토리를 포함합니다.

여기에 game.exe 게임이 있으며 Java 클래스 파일 이미지와 .exe가 .bat 파일을 실행하도록 지시하는 포인터가 포함되어 있습니다. 분명히 .bat 파일은 아카이브에서 javac 호출을 실행하고 게임을 실행합니다. 또한 Java 클래스 파일을 포함하는 몇 가지 .dll 아카이브도 있습니다.

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

여기서 표준 아이콘 리디렉션 .ico는 .exe 파일 내의 .dll 파일 내의 이미지 파일입니다. 따라서 .exe 파일에 표시된 이미지는 마인 크래프트 로고입니다. 이것은 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

이것은 solidedge.exe Autostart \에 포함 된 solid edge autorun.inf 파일이며 Autostart.dll 디렉토리입니다. open = autostart.exe는 원본 solidedge.exe 아카이브 내에서 실행할 autostart.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 파일에 저장하는 모든 정보는 암호화됩니다. 대부분이 암호화는 Visual Studio 자체에서 처리되며 일반적으로 수동으로 편집되지 않습니다. .dll 파일 내용을 .exe로 읽으면 내용이 자동으로 해독됩니다. 이제 프로그램 컴파일에 대해 이야기 할 때 내용을 기계가 쉽게 해석 할 수있는 바이트 코드로 변경합니다.

이 파일 크기는 동일한 내용의 원본 파일보다 작습니다. 그러나 파일 크기가 더 커서 파일이 실제로 암호화되었음을 나타냅니다. 아마도 사람들이 자신의 코드를 읽는 것을 막을 것입니다. 결과적으로 .dll 내용을 읽는 것을 해독이 아니라 해독이라고합니다. 디 컴파일은 이미 컴파일 된 txt 파일을 읽을 수없는 바이트 코드로 변환합니다. 표준 .dll 파일의 사용은 의도적으로 바이트 코드의 난독 화를 포함하기 때문에 오픈 소스가 아니라 정의상 사용됩니다.


8
나는 이것이 컴퓨팅 서클에서 배도 또는 이단으로 간주되는지 확실하지 않습니다. 어떻게 개선 할 수 있습니까? 종이에 있었다면 성냥을 사용하여 불행에서 벗어날 수 있습니다.
brewmanz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.