この記事は iOS Jailbreaking Advent Calendar 2015 の18日目の記事です。
はじめまして
おそらく初めましての方が多いと思いますので少し自己紹介を。。(緊張気味)
ちくわと申します。m(_ _)m
- Twitter:@ChikuwaJB_blog
- Github:https://github.com/ChikuwaJB/
- CydiaUpdates.com:https://cydiaupdates.net/author/Chikuwa
まだ中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/
を追加してあげると便利です。
〆
知ってるわそんなの!ヽ(`Д´)ノ
みたいな記事でしたが、ここまで読んでくださった方ありがとうございます。
もっといい方法や、間違っている所があればコメント欄で教えてもらえるとありがたいです
~
ではでは~