[解決済み】Windowsの.exeを「デコンパイル」することは可能ですか?または少なくともアセンブリを表示することはできますか?
質問
友人がFacebookからマルウェアをダウンロードしたのですが、自分自身に感染することなく、それが何をするのか知りたいと思っています。.exeをデコンパイルすることができないのは知っていますが、少なくともアセンブリで表示したり、デバッガを添付したりすることはできますか?
.NETの実行ファイルではなく、CLIヘッダもないと編集しています。
解決方法は?
を使って
デバッガ
プログラムアセンブリを対話的に進めることができます。
を使用すると
ディスアセンブラ
を使えば、プログラムアセンブリをより詳細に見ることができます。
を使用すると
デコンパイラ
のような無料のツールを使えば、プログラムを部分的なソースコードに戻すことができます。
PEiD
- プログラムが梱包されている場合は、最初に解凍する必要があります。
ディテクトイットイージー
PEiD がどこにもない場合。DIEには強力な開発者コミュニティがあり
ギズーブ
現在)。
デバッガ
- OllyDbg 無償の32ビットデバッガで、多数のユーザー作成プラグインやスクリプトがあり、より便利に使うことができます。
- WinDbg マイクロソフトのデバッガで、フリー。WinDbgは他のデバッガよりもデータ構造に詳しいので、Windowsの内部を見るのに特に便利です。
- ソフトアイス を、SICEを友達に。2006年に商用・開発中止。SoftICEは、OSの下で動作する(起動するとシステム全体を停止させる)ハードコアツールのようなものです。SoftICEは今でも多くのプロフェッショナルに使用されていますが、入手が困難であったり、一部のハードウェア(またはソフトウェア、つまりVistaやNVIDIAのGfxカードでは動作しない)では動作しない可能性があります。
ディスアセンブラ。
- IDA プロ (商用) - 最高級のディスアセンブラ/デバッガです。マルウェアアナリストなど、ほとんどの専門家が使用している。しかし、かなりの費用がかかります。 無料版 しかし、それはかなりかなり制限されています)
- W32Dasm (無料) - 少し古いが、仕事はできる。W32Dasm は最近放棄されたソフトウェアで、ユーザーが作成した数多くのハックがあり、非常に便利な機能が追加されていると思います。最適なバージョンを探すには、いろいろと見て回る必要があります。
デコンパイラ
- ビジュアルベーシックです。 VBデコンパイラ 商用で、ある程度識別可能なバイトコードを生成します。
- デルファイ デデデ 無料で、良質なソースコードを作成できます。
- C: 六方晶 同じ会社のIDA Proのプラグインで、商用です。素晴らしい結果を出すが、コストが高いので、誰にでも売れるわけではない(と聞いている)。
- .NET(C#)です。 ドットピーク .NET 1.0-4.5 のアセンブリを C# にデコンパイルします。.dll、.exe、.zip、.vsix、.nupkg、および .winmd ファイルをサポートします。
あなたがしていることが何であれ、便利な関連ツールは、次のようなリソースエディタです。 リソースハッカー (無料)、および以下のような優れたヘックスエディタがあります。 ヘックスワークショップ (商用)。
さらに、マルウェア解析を行っている(またはSICEを使用している)場合 という仮想マシンの中ですべてを実行することを心からお勧めします。 VMware Workstation . SICEの場合、BSODから実際のシステムを保護し、マルウェアの場合、ターゲットプログラムから実際のシステムを保護することができます。VMwareを用いたマルウェア解析については、以下の記事をご参照ください。 こちら .
個人的には、Olly、WinDbg & W32Dasm、およびいくつかの小さなユーティリティツールを使用しています。
また、ディスアセンブルやデバッグを行う際にも 他の人の は、少なくともEULAに違反します :)
関連
-
[解決済み】Rのデバッグ。"負の添え字と混在できるのは0のみ"
-
[解決済み] pg_stat_activityの使い方は?
-
[解決済み] WinDbgでシンボルを設定する方法は?
-
[解決済み] コンテンツとともに保存されたchrome network debugger harファイルを表示/再生するにはどうすればよいですか?
-
[解決済み] プログラム「[3984] dotnet.exe」がコード -2147450751 (0x80008081) で終了しました。
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] iOS Simulatorでネットワークを無効にすることは可能ですか?
-
[解決済み】Vimを遅くしているプラグインを確認する方法は?
-
[解決済み】.NET EXEを読みやすいC#ソースコードにデコンパイルするにはどうしたらいいですか?
-
[解決済み】デバッガでステップインツーとステップオーバーの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rのデバッグ。"負の添え字と混在できるのは0のみ"
-
[解決済み] プライベートバイト、バーチャルバイト、ワーキングセットとは?
-
[解決済み] WinDbgでシンボルを設定する方法は?
-
[解決済み] Elixirで関数の呼び出し元をリストアップする方法は?
-
[解決済み] GDBで特定機能に踏み込む
-
[解決済み] [Solved] 失敗した `docker build` のファイルシステムを検査するにはどうしたらいいですか?
-
[解決済み】Windowsの.exeを「デコンパイル」することは可能ですか?または少なくともアセンブリを表示することはできますか?
-
[解決済み】実行中のJavaプロセスにIntelliJ IDEAのデバッガをアタッチする。
-
[解決済み】デバッガでステップインツーとステップオーバーの違いは何ですか?
-
[解決済み】Visual Studio C++で、メモリ割り当ての表現とは何ですか?