web-dev-qa-db-ja.com

OSXでのhackmeチャレンジ.exeファイルのリバースエンジニアリング(逆コンパイル)

私はリバースエンジニアリングの世界で完全に初心者です。OSXで.exeファイルを逆コンパイルできるのは苦痛です。

OSX用の.exeの優れた逆コンパイラー、またはどこで見つけることができるかについてのヒントを誰かが知っていますか? 「存在しないこと」のような概念上の間違いはありませんか? :Pグーグルはそれについてかなり混乱しています。

ところで、私はこれらのアプリが違法なアプリケーションを持っている可能性があることを知っていますが、非常に合法なものもあります(このサイトでは新しいものはありません、私は推測します:P)オンラインウォーゲームのいくつかのレベルに合格する(または、少なくとも、そうだと思う)。具体的には、これ: http://www.yashira.org/index.php?mode=Retos&resp=inforeto&level=126 (スペイン語)

あなたの時間をどうもありがとう! :D

EDIT:@YoavAnerは、リンクされたページがログインを必要とすることを私の目にもたらしました(ありがとう、@ YoavAner:D)。ウォーゲーム(または特にこのレベル)に興味がある場合は、レベルにアクセスするために登録する必要があります。

6
Palantir

GNU binutils 実行可能ファイルを人間が読み取れる、または少なくともプログラマが読み取り可能なアセンブリソースコードに逆アセンブルできるobjdumpユーティリティを含めます。ツール自体がどのアーキテクチャで実行されているかに関係なく、コンパイルされたサポート対象のターゲットに対してこれを行うことができます。特に、Windowsを分解することができます.exeファイルは、MacOS Xで実行している場合でも使用できます。

(GNU binutilsを多数のバイナリターゲットをサポートしてインストールすると、実際にツールが実行されているものだけでなく、GNU binutilsのソースコードをダウンロードする必要があります。 、適切なクロスターゲットオプションを使用して再コンパイルします。ドキュメントが含まれています。逆アセンブルされたバイナリで何でもできる人は、そのようなタスクを簡単に実行できるはずです。)

もちろん、分解はリバースエンジニアリングの最初のステップにすぎません。 2番目のステップは、頭の中で行う多くの難しい思考です。

注:ここでは.exeはWindowsバイナリファイルで、x86オペコードが含まれていました。最近では、.NETアセンブリ、つまりx86オペコードではなく [〜#〜] cil [〜#〜] の場合もあります。その場合、 これらのもの のような特定の逆アセンブラを使用する必要があります。 MacOS Xでも動作し、オープンソースで無料です。そして、あなたはまだたくさん考える必要があります。

4
Thomas Pornin

IDA Pro は、バイナリソフトウェアの単一の最適な静的分析であると広く考えられています。デバッグもサポートしますが、この分野では他のツール( Immunity DebuggerollydbgWinDbg など)がさまざまなシナリオでより良い場合があります。バイナリを実行してデバッグするつもりはない(そしてできない)ので、心配する必要はありません。

IDAの最新バージョン は、Windowsに加えてLinuxおよびMac OS Xをサポートします( バージョン6.0以降 )。残念ながら、それは一種の高価です。 非商用利用の場合は無料 ダウンロードがありますが、これは5.0バージョンであり、Windowsでのみ動作します。

ただし、 IDA 6.3の評価版 をダウンロードできます。これにはいくつかの制限がありますが、あなたにとって最も重要な制限は次のとおりです: "作業を保存できません 、使用後はタイムアウトし、それ自体は分解されません。」しかし、しばらく試してみると、ここで提案されている他のツールと比較して、500ドルの価値があることがわかる場合があります(ただし、 64ビットをサポートし、価格は2倍になります)。

IDAはあなたの質問への答えです。なぜなら、無料のソリューションだけが必要であると指定しなかったからです。逆アセンブラのいくつかのリストを以下に示します。 REC Studio 4 のように、多くは無料です。Shadokは彼の回答で述べていますが、IDAに近いものはありません。

3
conio

私はあなたの質問と少し混乱しています...あなたの場合のリバースエンジニアリングは、それを理解するためにバイナリを実行することを意味するので、MacOsXで.exeファイルを実行する必要があります。

したがって、最初に、DarWine(Wine for MacOSX)を確認する必要があります。Wineは、.exeファイルを実行できる代替のWin32環境です。この後、Windowsの場合と同様にデバッガ(OllyDbg、Iceなど)を接続できます(wine appdbでゲームとwineの互換性を確認することを忘れないでください)。

ところで、以前にいくつかの単純なソフトウェアをクラックしてリバースエンジニアリングを学ぶことをお勧めします(Googleのハックチャレンジをご覧ください。たくさんあります)。現実のソフトウェアは少し難しいからです。

2
anonymous

シマンテックの次の2つの記事をご覧ください。
リバースエンジニアリングの敵対的コード
エイリアンオートプシー:LinuxでのWin32トロイの木馬のリバースエンジニアリング

これら2つの記事で使用されているツールは、基本的なGNUツール(diff、grep、hexedit ...)、Wine、gdb、IDA Pro(フリーウェアバージョン)です。
興味のある他の2つのツールは REC Studio[〜#〜] nasm [〜#〜] です。

上記のツールはすべてOSXをサポートしています。

1
Shadok

手頃な価格の手頃な(〜US $ 60)ツールは Hopper です。これは 価格と機能のバランスが良い より高価(〜US $ 1129)ですが、より強力です IDA Pro 。始めたばかりの場合、これはほとんどの逆アセンブラよりも使いやすい優れたツールであり、比較的経済的です。

1
Andrew Odri

stringを使用して、それがコードであると言うことができるその外観を取得することができます

int main(){
fprintf(stderr ,"hello Word");
}

そして端末に書き込みます

$strings file.exe

カーネルからのリクエストだけでなく、実際の機能を取得したい場合は、ida proなどのツールを使用する必要があります。

0
daniel