1

iPhoneのアプリの微調整を書き込もうとしています。私はObjectiveCとiPhoneの開発に精通していますが、Cydiaの脱獄の調整は行ったことがありません。ただし、rpetrichのダンプされたヘッダーを使用した調整に関するいくつかのチュートリアルは除きます。PoedCrackModを使用して復号化し、class-dump-zを使用してヘッダーを取得し、次にtheos/logosを使用してクラックされたアプリにパッチを適用することを検討しています。

私は先に進み、PoedCrackModを実行してアプリを復号化しました。これにより、.ipaファイルが生成されます。このファイルを抽出して、実際のアプリケーションバイナリを含む.appファイルを取得できます。

使えるより

class-dump-z -k -k -H -g -o ~/dumped_headers/ Foo

先に進み、ヘッダーファイルのディレクトリを取得します。これらのヘッダーを$THEOS/ include/Fooにコピーします。(ここで-gオプション[エクスポートされたクラスのみを表示]を使用する必要がありますか、それともエクスポートされていないクラスをフックすることもできますか?)

この時点で、次のようなtweak.xmファイルを作成できるはずです。

#import <Foo/Foo.h>

参考までに、makefileは次のようになります。

include theos/makefiles/common.mk

TWEAK_NAME = FooTweak
FooTweak_FILES = Tweak.xm

include $(THEOS_MAKE_PATH)/tweak.mk

先に進んでTweakをコンパイルしようとすると(この時点では何も実行されないはずです)、あらゆる種類の重複宣言エラーが発生します。これは正常ですか、それとも私は何か間違ったことをしていますか?

正常な場合、これを修正するにはどうすればよいですか?重複する宣言をコメントアウトしようとしました。その場合、コンパイルすることができます。メソッドが呼び出されたときにUIAlertViewsを作成する20以上のフックを挿入しましたが、いずれもトリガーされていないようです-呼び出されていないメソッドをフックしていないと思いますが、どちらかを作成していますヘッダーをダンプしたり、ヘッダーを微調整にインポートしたりするのに間違いがありますか?

誰かが私が間違っているかもしれないことについて何か洞察を持っていますか?

4

1 に答える 1

1

使ってはいけません #import <Foo/Foo.h>

その代わり

[ファイル]tweak.xm:

#import <substrate.h>

@interface FooToBeHookedHeader : NSObject {} // We take NSObject here as to avoid any errors.
- (void)fooMethod1; // Only put the methods you are hooking
- (void)fooInheritedMethod; // Inherited method (if hooking) as we are using NSObject up there :)
@end

%hook FooToBeHookedHeader
- (void)fooMethod1 {
// Do hooking stuff
} 
- (void)fooInheritedMethod {
// Do hooking stuff
}
%end

// Include any instance variables which you are modifying if any :)
// ~ SuperDev

FooTweak.plistにフックされているアプリ/フレームワークの識別子も含めます

于 2013-01-01T09:26:28.800 に答える