2

ピン/コード値を検証し、 true の場合は「検証済み」、 false の場合は「検証されていない」と出力する単純な IOS アプリケーションを開発しました。

次に、製品を選択してアプリをアーカイブし、「myapp.app」として取得してIOS電話にアップロードしました。その後、GDBを使用してアプリケーションを(PoC)としてクラックしようとしましたが、ブレークポイントは次のとおりです。

#(gdb) ブレーク -[viewController isValidCode]

関数「-[viewController isValidCode]」が定義されていません。

今後の共有ライブラリのロード時にブレークポイントを保留にしますか? (y または [n])

このエラーの原因は何ですか? アプリを使用する前に指定する必要がある設定はありますか? XCode のアーカイブ手順で。

共有ライブラリのシンボルの読み取り。終わり

共有ライブラリのシンボルの読み取り ...........完了

共有ライブラリのシンボルの読み取り + 完了

*mach_msg_trap () の 0x3b442eb4*

4

1 に答える 1

1

製品をアーカイブすると、「リリース」モードでビルドされ、デバッグ シンボルが取り除かれます。lldbまたはgdb、セグメント内の情報を利用して__OBJCメソッド名を取得しようとせず、デバッグ シンボルのみに依存しています。あなたがする必要があるのは、特定のアドレス、つまり gdb でブレークすることです:b *0x123450x12345の実装のアドレスです-[viewController isValidCode]。そのアドレスを取得するには、xcode によって生成されたアセンブリを確認できます。または、より現実的には、「不明な」バイナリで行うように。otoolまたはclass-dumpユーティリティなどのツールを使用できます(-A および-Hオプションを調べてください)

于 2013-07-06T19:30:20.400 に答える