.dllファイルを開いて、中に何が書き込まれているかを確認する方法は?


回答:


112

あなたはredgates .netリフレクターやjetbrainsリシャーパーデコンパイラーのようなデコンパイラーを使う方が良いでしょう。のようなオープンソースのものもあります

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

http://ilspy.net/


jetbrains.com/decompilerが役に立ちました。+1。提案をありがとう!
Vikram

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

ildpy +1。いいね。
sonsha 2016

ILSpy。何をスパイするの?
ゴンゾブレイン2017年

30

以下の手順に従ってください。

  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 2016年

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のプロを使用して.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ファイル/プログラムまたはプログラムの一部を示す最初の3つのメモ帳文字としてMZŽが表示されます。MZはアーカイブのようです。

また、ほとんどの.exeファイルは、ファイルやWindowsインストーラーパッケージのアイコンイメージなどを含むアーカイブであり、プログラムがイメージやムービーなどを実行するために必要なすべての情報と、インストール情報やプレーンテキストファイルなどのディレクトリも含んでいます。

ここにゲームがあります。game.exeには、Javaクラスファイル、イメージ、.exeが.batファイルを実行するように指示するポインタが含まれています。明らかに、.batファイルはアーカイブからjavac呼び出しを実行し、ゲームを実行します。Javaクラスファイルを含むいくつかの.dllアーカイブもあります。

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

ここでの標準のアイコンリダイレクト.icoは、.exeファイル内の.dllファイル内のイメージファイルです。したがって、.exeファイルに表示される画像はminecraftロゴです。これは、autorun.infというファイルにあります。2番目の例

[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に含まれているソリッドエッジautorun.infファイルです。Autostart \は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 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.