私の友人が Facebook からマルウェアをダウンロードしました。.exe を実際に逆コンパイルできないことはわかっていますが、少なくともアセンブリで表示したり、デバッガをアタッチしたりできますか?
編集して、.NET 実行可能ファイルではなく、CLI ヘッダーもありません。
私の友人が Facebook からマルウェアをダウンロードしました。.exe を実際に逆コンパイルできないことはわかっていますが、少なくともアセンブリで表示したり、デバッガをアタッチしたりできますか?
編集して、.NET 実行可能ファイルではなく、CLI ヘッダーもありません。
デバッガーを使用すると、プログラム アセンブリを対話的にステップ実行できます。逆アセンブラ
を
使用すると、プログラム アセンブリをより詳細に表示できます。逆コンパイラを
使用すると、プログラムが何に書かれているかを知っていると仮定して、プログラムを部分的なソース コードに戻すことができます (これは、 PEiDなどの無料のツールで見つけることができます。プログラムがパックされている場合は、最初にアンパックする必要があります)。または、どこにも PEiD が見つからない場合はDetect-it-Easy (現在、DIE はgithubに強力な開発者コミュニティを持っています)。
何をしていても便利な関連ツールには、ResourceHacker (無料) などのリソース エディターや、 Hex Workshop (商用)などの優れた 16 進エディターがあります。
さらに、マルウェア分析を行っている (または SICE を使用している) 場合は、仮想マシン、つまりVMware Workstation内ですべてを実行することを心からお勧めします。SICE の場合は実システムを BSOD から保護し、マルウェアの場合は実システムをターゲット プログラムから保護します。VMware を使用したマルウェア分析については、こちらを参照してください。
個人的には、Olly、WinDbg & W32Dasm、およびいくつかの小さなユーティリティ ツールを使用しています。
また、他の人のソフトウェアを逆アセンブルしたり、デバッグしたりすることは、通常、少なくとも EULA に反することを覚えておいてください :)
psoulの優れた投稿はあなたの質問に答えるので、彼の良い仕事を再現することはしませんが、これが完全に有効であると同時にひどくばかげた質問である理由を説明するのに役立つと思います。結局のところ、これは学ぶ場所ですよね?
最新のコンピュータプログラムは、人間が読めるテキスト命令(「ソースコード」と呼ばれる)の入力から始まり、コンピュータが読める命令(「バイナリ」または「マシン」と呼ばれる)で終わる一連の変換によって生成されます。コード")。
コンピュータが一連のマシンコード命令を実行する方法は、最終的には非常に簡単です。プロセッサが実行できる各アクション(たとえば、メモリからの読み取り、2つの値の追加)は、数値コードで表されます。1番は悲鳴を意味し、2番はクスクス笑うことを意味し、それに応じて悲鳴を上げるかクスクス笑うことを期待して1または2のカードを掲げた場合、私はコンピューターが使用するのと本質的に同じシステムを使用します。動作します。
バイナリファイルは、これらのコード(通常は「オペコード」と呼ばれます)と、オペコードが作用する情報(「引数」)のセットです。
現在、アセンブリ言語はコンピュータ言語であり、言語の各コマンドワードはプロセッサ上の1つのオペコードを表します。アセンブリ言語コマンドとプロセッサオペコードの間には、直接1:1の変換があります。これが、x386プロセッサのコーディングアセンブリがARMプロセッサのコーディングアセンブリと異なる理由です。
逆アセンブルは単純にこれです。プログラムはバイナリ(マシンコード)を読み取り、オペコードを同等のアセンブリ言語コマンドに置き換え、結果をテキストファイルとして出力します。これを理解することが重要です。コンピューターがバイナリーを読み取ることができる場合は、オペコードテーブルを手に持って手動で(ick)、または逆アセンブラーを介して、バイナリーを読み取ることもできます。
逆アセンブラにはいくつかの新しいトリックがありますが、逆アセンブラは最終的には検索と置換のメカニズムであることを理解することが重要です。そのため、それを禁止するEULAは、最終的に熱風を吹き込みます。コンピューターがプログラムデータを読み取ることを一度に許可したり、コンピューターがプログラムデータを読み取ることを禁止したりすることはできません。
(誤解しないでください。そうする試みがありました。曲ファイルのDRMと同様に機能します。)
ただし、分解アプローチには注意が必要です。変数名は存在しません。そのようなことはあなたのCPUには存在しません。ライブラリ呼び出しは地獄のように混乱し、多くの場合、さらにバイナリを逆アセンブルする必要があります。そして、組み立ては、最高の状態で読むのは地獄のように難しいです。
ほとんどのプロのプログラマーは、頭を悩ませることなく、座ってアセンブリ言語を読むことはできません。アマチュアにとって、それは起こらないでしょう。
とにかく、これはやや大雑把な説明ですが、お役に立てば幸いです。誰もが私の側の虚偽表示を自由に訂正することができます。久しぶりです。;)
朗報です。IDA Pro は現在、古いバージョンは無料です: http://www.hex-rays.com/idapro/idadownfreeware.htm
適切なデバッガーであれば、これを行うことができます。OllyDbgを試してください。(編集: パラメータを WinAPI 呼び出しにデコードする優れた逆アセンブラもあります!)
マルウェアが何をするのかを理解しようとしているだけなら、ファイルシステム、レジストリ、ポートなどにアクセスしようとするたびに報告する無料のツールProcessMonitorのようなものの下で実行する方がはるかに簡単かもしれません...
また、無料のVMWareサーバーのような仮想マシンを使用すると、この種の作業に非常に役立ちます。「クリーンな」イメージを作成し、マルウェアを実行するたびにそのイメージに戻ることができます。
もちろん、IDA Proを見てください。彼らは評価版を提供しているので、試してみることができます。
アセンブリで表示すると情報が得られるかもしれませんが、仮想マシンを起動して動作を確認するのが最も簡単だと思います。ただし、開いている共有や、ジャンプできるようなものがないことを確認してください;)
ブーメランもチェックする価値があるかもしれません。
Immunity Debuggerについて誰も何も言わなかったなんて、まだ信じられません。
Immunity Debugger は、エクスプロイトの作成、マルウェアの分析、およびバイナリ ファイルのリバース エンジニアリングを行うための強力なツールです。最初は Ollydbg 1.0 ソース コードに基づいていましたが、名前解決のバグが修正されました。簡単に拡張できるPython APIがサポートされているため、Python スクリプトを記述して分析に役立てることができます。
また、Corelan チームの Peter が書いた mona.py という優れたツールがあります。
あなたが欲しいのは、「逆アセンブラ」と呼ばれるソフトウェアの一種です。
クイックグーグルはこれをもたらします:リンク
プログラムを実行して、コンピューターに感染せずにプログラムが何を実行するかを確認する場合は、VMWareやMicrosoft VPCなどの仮想マシン、またはSandboxIEなどのプログラムをサンドボックス化できるプログラムで使用します。
時間がない場合は、マルウェアを cwsandbox に送信します。
http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/
HTH
エクスプローラースイートは、あなたが望むことをすることができます.