search
LoginSignup
1

More than 5 years have passed since last update.

posted at

updated at

Theosのlogify.plがメソッド探しにかなり便利。

この記事は iOS Jailbreaking Advent Calendar 2015 の18日目の記事です。

はじめまして

おそらく初めましての方が多いと思いますので少し自己紹介を。。(緊張気味)
ちくわと申します。m(_ _)m

まだ中2(14歳)なので少々日本語がオカシイところ、英語がオカシイ所はどうかお許し下さいm(_ _)m

本題

メソッドを特定する時に%logを使ってsyslogに吐かせますが、

例えばこんなヘッダファイルがあって、

@interface FooClass : NSObject
{
}

- (void)amethod:(id)arg1;
- (bool)bmethod:(id)arg1;

@end


全てのメソッドの動作を確認したい時は
Tweakのコードは

%hook FooClass
-(void)amethod:(id)arg1{
 %log;
 %orig;
}
-(bool)bmethod:(id)arg1{
 bool r=%orig;
 NSLog(@"%d",r);
 return r;
}
%end

こんな感じです。
今回の場合はメソッドが少ないので簡単ですが、メソッドが大量にある場合はかなり面倒です。

そこで役立つのがlogify.pl!

使い方はいたって簡単です。
ターミナルで
~$ $THEOS/bin/logify.pl ヘッダファイルまでのパス
と打つと…

~$ $THEOS/bin/logify.pl ヘッダファイルまでのパス
%hook FooClass
-(void)amethod:(id)arg1{
 %log;
 %orig;
}
-(bool)bmethod:(id)arg1{
 bool r=%orig;
 NSLog(@"%d",r);
 return r;
}
%end
~$ 

とこの様に自動でコードを生成してくれるんです!
あとはリダイレクトで
$THEOS/bin/logify.pl ヘッダファイルまでのパス > Tweak.xm
でTweak.xmに書き出せますね。

いちいち$THEOS/bin/logify.plと打つのも面倒なのでPATH$THEOS/bin/を追加してあげると便利です。

知ってるわそんなの!ヽ(`Д´)ノ
みたいな記事でしたが、ここまで読んでくださった方ありがとうございます。
もっといい方法や、間違っている所があればコメント欄で教えてもらえるとありがたいです

ではでは~

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1