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