3

文書化されていない Web API を使用してアプリを構築するために、iOS アプリ内から定数 (シークレット トークンのようなもの) を見つけようとしています (ちなみに、私は違法なものには興味がありません)。これまでのところ、復号化されたアプリを Mac で実行できます (ジェイルブレイク + SSH + 復号化された実行可能ファイルをファイルとしてダンプ)。文字列コマンドを使用して読み取り可能な文字列のリストを取得できます。また、クラス ダンプ ツール ( http://stevenygard.com/projects/class-dump/) クラスのインターフェース定義 (ヘッダー) のリストを取得します。これにより、アプリの内部動作についてのアイデアが得られますが、探しているもの、つまり探している定数はまだ見つかりません。文字列コマンド ダンプには、文字通り何千もの文字列定義があります。NSString 定数の名前とその値を取得できる方法で文字列をダンプする方法はありますか。メソッドの実装の詳細は必要ありません。メソッドがコンパイルされており、取得できるのはアセンブリ コードだけであることはわかっています。しかし、文字列定数の名前 (文字列ダンプとクラス ダンプの両方) と文字列値 (文字列ダンプ) を取得できれば、それらを関連付ける方法があると思います。

ありがとう、

できる。

4

1 に答える 1

3

残念ながら、私が知らない黒魔術のツールが存在しない限り、または実行可能ファイルがデバッグ シンボルを使用してビルドされていない限り (そうではない可能性が高い)、いいえ。デバッグ シンボルがある場合は、デバッガーを介して実行し、変数名を取得できるはずです。

コンパイル時に、コンパイラは定数の名前を削除し、コード内のすべての定数をメモリ内のその位置のアドレス (通常は実行可能ファイル内と同じバイト オフセット) に置き換えます。このため、定数の元の変数名は失われ、値のみが残ります。したがって、どこにも定数が見つからない理由です。

シークレット トークンを見つけるために私が行うことは、アプリが作成するすべてのデータ トラフィックをキャプチャし、バイナリで同じパターンを探すことです。トークンが実際にそこにあり、何らかの形で難読化されていない場合、少なくともそれで大幅に絞り込むことができます。

幸運を!REは非常にやりがいがありますが、時には本当に最悪です.

于 2013-06-15T23:53:39.027 に答える