2011-10-24 10 views
5

iPhoneで/ debugging/disassemblingバイナリを使って遊んできました。iPhone実行ファイル(MACH-O)解読

最初の障害は、バイナリが暗号化されており、デミムブラーがそれらを読み取れないことです。これは、gdbから復号化されたファイルの内容をダンプすることで解決できます。

私の質問1.

  1. に設定LC_ENCRYPTION_INFOセクションでencryption_idを持っているすべてのMACH-Oの実行のために(プログラム開始時にその場で行われる)のバイナリの復号化についてですがありますファイルを復号化するツールですか?どんな勧告?
  2. プロセスの仕組みに関する情報はありますか?明らかにそれは AES暗号化ですか?どんなキーが使われていますか? 自分のプログラムで簡単に複製できますか?

ありがとうございました!脇には/ etcクラッキング/ハッキングについて

+0

ですから、他の開発者のアプリをクラックする方法ですについて尋ねていますか?私はStackOverflowがこの問題を尋ねる正しい場所であるかどうかは分かりません。なぜなら、主な焦点は開発のことであり、他者が開発したリバースエンジニアリングアプリケーションではないからです。私はあなたがハッカーや著作権侵害サイトの方が良いかもしれないと思います。 –

+2

本当ですか?スタックオーバーフローにはリバースエンジニアリングサウンドもあると思った! (あなたのスタックにあまりにも多くのデータをあふれさせるように) もっと深刻なことに、私はこれがすべての開発者のための一般的な知識であり、タブー地下のものではないと思います。 – pracheta986919

+0

user986919あなたのアプリにセキュリティを実装することはできません。ハッカーがどのように侵入を試みるかを知らずに一般的にコンパイルされたアプリケーションをリバースエンジニアリングすることができれば、あなた自身でもう少し難読化することができます。 – Daniel

答えて

7

倫理的な質問、の詳細を説明しましょう:

  • OS Xではバイナリ復号化が(愛情DSMOSとして知られている)のMacOS X.Kextを盗むしないでくださいすることにより行われます。
  • iOSでは、バイナリ復号はFairPlay kextによって実行されます。

    いずれの場合も、カーネルMach-Oローダーがこれを担当します。 の場合、実際にに詳細を入力する必要があります。復号化を処理するApple Protectページャです。 XNU用語では、 "ページャ"は、VMページを取得してバッキングストア(スワップ、メモリマップファイルなど)から取得するコンポーネントです。 http://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651

    正しく述べたように、この暗号化は容易に敗北さ - - ジェイルブレイクデバイス上でAppleは、カーネルの仕様をカバーする素晴らしい本がありますのkextを呼び出しポケットベル(上記の2つのうちの1つ)

    を守ります(またはroot特権を持つPC)では、Mach VM APIを使用して復号化されたイメージを読み取ることができます。これは実際には上記の書籍で言及されており、これを実行するためのサンプルツール(他のVMトリックの中でも)があります。また、Stefan Esserには、DYLD_INSERT_LIBRARIESを使用して、ロード時に単純な.dylibをプロセスアドレス空間に挿入することによって、バイナリを復号化する単純なツールがあります。 github.com> stefanesser> dumpdecrypted。

希望は、これは

TGに役立ちます

関連する問題