私の友人がFacebookからマルウェアをダウンロードしましたが、自分に感染することなくそれが何をするのか知りたいです。私はあなたが本当に.exeを逆コンパイルすることができないことを知っています、しかし私は少なくともアセンブリでそれを見ることができますか、あるいはデバッガを取り付けることができますか?
.NETの実行ファイルではなく、CLIヘッダーではないと言うように編集します。
デバッガを使用すると、プログラムAssemblyを対話的に進めることができます。
逆アセンブラを使用すると、プログラムAssemblyをより詳細に表示できます。
デコンパイラーを使用すると、プログラムの記述内容を知っていれば、プログラムを部分的なソースコードに戻すことができます(これは、次のような無料のツールで確認できます)。 as PEiD - プログラムがパックされている場合、最初にそれをアンパックする必要がありますOR Detect-it-Easy あなたがどこにもPEiDが見つからない場合DIEは github について強力な開発者コミュニティを持っています。
あなたがしていることに関係なく役に立つかもしれないいくつかの関連ツールは ResourceHacker (無料)のようなリソースエディタと Hex Workshop (市販)のような良い16進エディタです。
さらに、マルウェア分析を行っている(またはSICEを使用している)場合は、すべてを仮想マシン内で実行すること、つまり VMware Workstation をお勧めします。 SICEの場合は実際のシステムをBSODから保護し、マルウェアの場合は実際のシステムをターゲットプログラムから保護します。マルウェア分析については、VMware here で読むことができます。
個人的には、Olly、WinDbg、W32Dasm、そしていくつかの小さなユーティリティツールを使っています。
また、逆アセンブル、あるいはデバッグさえすることを忘れないでください。 他の人の ソフトウェアは通常最低でもEULAに違反しています:)
psoulのあなたの質問に対する優れた投稿の答えは私が彼の良い仕事を再現することはしませんが、なぜこれがすぐに完全に有効であるか、ひどくばかげた質問であるかを説明するのに役立つと思います。結局のところ、これは学ぶ場所ですね。
現代のコンピュータプログラムは、人間が読めるテキスト命令の本体(「ソースコード」と呼ばれる)の入力から始まり、コンピュータが読める命令本体(「バイナリ」または「マシン」とも呼ばれる)で終わる一連の変換を通して生成される。コード")。
コンピュータが一連のマシンコード命令を実行する方法は、最終的には非常に簡単です。プロセッサがとることができる(たとえば、メモリから読み取る、2つの値を加算する)ことができる各アクションは、数値コードによって表される。数字の1が悲鳴を意味し、数字の2が笑いを意味し、それに応じて悲鳴または笑いをすることを期待して1または2のいずれかでカードを保持しているなら、私は基本的にコンピュータが使用するシステムと同じシステムを使用します。動作します。
バイナリファイルとは、それらのコード(通常は「オペコード」と呼びます)とオペコードが作用する情報(「引数」)のことです。
現在、アセンブリ言語は、言語内の各コマンドWordがプロセッサ上の厳密に1つのオペコードを表すコンピュータ言語です。アセンブリ言語コマンドとプロセッサのオペコードの間には、1対1の直接変換があります。 x386プロセッサ用のAssemblyのコーディングがARMプロセッサ用のAssemblyのコーディングと異なるのはこのためです。
逆アセンブリは単にこれです。プログラムはバイナリ(マシンコード)を読み取り、命令コードをそれと同等のアセンブリ言語コマンドに置き換え、その結果をテキストファイルとして出力します。これを理解することが重要です。あなたのコンピュータがバイナリを読むことができれば、あなたはまたあなたの手にあるオペコードテーブルを使って(ick)または逆アセンブラを通してバイナリを読むことができます。
逆アセンブラにはいくつかの新しいトリックがありますが、逆アセンブラは最終的には検索と置換のメカニズムであることを理解することが重要です。それを禁じるEULAが最終的に熱風を吹いているのはそのためです。あなたは一度にコンピュータがプログラムデータを読むことを許可することも、コンピュータがプログラムデータを読むことを禁止することもできません。
(誤解しないでください。そうしようとする試みがありました。彼らは曲ファイルのDRMと同じように動作します。)
ただし、分解方法には注意点があります。変数名は存在しません。そのようなことはあなたのCPUには存在しません。図書館への電話は地獄のように混乱しやすく、さらにバイナリを分解する必要があります。そして、議会は最高の条件で読むのが地獄として難しいです。
ほとんどのプロのプログラマーは頭痛を感じずに座ってアセンブリ言語を読むことはできません。アマチュアにとってそれは起こりそうにない。
とにかく、これはいくぶん詳細に説明されています、しかし私はそれが助けになることを願っています。誰もが私の側の虚偽の記載を訂正することができます。それはしばらく経ちました。 ;)
良い知らせIDA Proは、現在、旧バージョンでは無料です。 http://www.hex-rays.com/idapro/idadownfreeware.htm
まともなデバッガなら誰でもこれを実行できます。 OllyDbg を試してください。 (編集:WinAPI呼び出しのパラメータをデコードすることさえできるすばらしい逆アセンブラがあります!)
x64dbg
は、積極的に管理されている優れたオープンソースのデバッガです。
確かに、 IDA Pro をご覧ください。あなたはそれを試すことができるように彼らは評価版を提供しています。
あなたが欲しいのは "逆アセンブラ"と呼ばれる種類のソフトウェアです。
クイックグーグルはこれを生み出す: http://www.geocities.com/~sangcho/disasm.html
マルウェアが何をしているのか把握しようとしているだけなら、無料ツール Process Monitor のようなものの下で実行する方がはるかに簡単です。ファイルシステム、レジストリ、ポートなどにアクセスしようとするたびに...
また、無料の VMWareサーバー のような仮想マシンを使用すると、このような作業に非常に役立ちます。あなたは「きれいな」イメージを作り、それからあなたがマルウェアを実行するたびにそれに戻ることができます。
アセンブリでそれを表示するための情報を入手することができますが、最も簡単な方法は仮想マシンを起動してその動作を確認することです。あなたがオープンシェアを持っていないか、あるいはそれが飛び越えることができるようなものを持っていないことを確認してください;)
Boomerang もチェックする価値があります。
私は誰も Immunity Debugger について何も言わなかったとは信じられません。
Immunity Debuggerは、エクスプロイトを作成し、マルウェアを分析し、バイナリファイルをリバースエンジニアリングするための強力なツールです。当初Ollydbg 1.0のソースコードに基づいていましたが、名前付きのバグが修正されました。拡張性を容易にするためによくサポートされたPython APIを持っているので、解析に役立つPythonスクリプトを書くことができます。
また、CorelanチームのPeterが、 mona.py という優れたツールという優れたツールを作成したという優れた人もいます。
あなたは逆コンパイルexeファイルのために非常に良いdotPeekを使用することができます。これは無料。
時間がない場合は、マルウェアをcwsandboxに送信してください。
http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/
HTH
Explorerスイート はあなたが望むことをすることができます。