2

MonoTouchは実際のアプリ内でdllを使用しているため、このアプローチはどの程度安全ですか?たとえば、誰かがMono.Security.dllを使用している場合、そのdllを、メソッドを実装してアプリにコードインジェクション攻撃を実行するdllと交換することはできませんか?

4

1 に答える 1

10

このアプローチはどれほど安全ですか?

私が知っている既存のものと同じくらい:-)

誰かがそのdllを交換できませんでしたか

いいえ、いくつかの理由があります。

  • アプリケーション ファイルは変更できません。それはデジタル署名を壊し、iOS はそれを実行しません。それだけで MitM 攻撃が取り除かれます。

  • すべての .dllからのコードは、(AOT コンパイラによって) ネイティブ コードに既にコンパイルされており、メインの実行可能バイナリの一部です。新しい .dll を交換しても、実行されるコードは変更されません。

  • デバイスに展開された .dll は削除されます(リリース ビルド用)。内部に IL (コード) はありません。これは役に立たないためです (iOS では JIT を実行できません)。IL コード (デバッグ ビルドなど) を含む .dll を追加しても、実行されません (やはり JIT が必要になります)。

.dll が展開されるのはなぜですか? メタデータ用 (リフレクションを使用する場合など)

最後の注意: MonoTouch は、Objective-C と同じように、ネイティブの ARM 実行可能ファイルを生成します。

于 2012-05-24T16:28:01.243 に答える