method swizzlingを行ってるクラスを探す

2017/4/10 2159hit
このエントリーをはてなブックマークに追加

unity-iosでプラグインを多数導入していると、swizzlingをたくさんしているせいで挙動が不安定になる事があります。
特にgoogleが作った行儀の悪いframework。。

※ swizzlingはframeworkへのdelegate登録で実装を入れ替える事です

バイナリの中でswizzlingされてると、誰が実装を入れ替えてるのかわからなくなります。
挙動が不安定な時に犯人を突き止める方法です


#include <unistd.h>
#import <objc/runtime.h>

>> in method
unsigned int numberOfClasses = 0;
Class *classes = objc_copyClassList(&numberOfClasses);
for (unsigned int i = 0; i < numberOfClasses; ++i) {
if (class_conformsToProtocol(classes[i], @protocol(UIApplicationDelegate))) {
const char *name = class_getName (classes[i]);
NSLog(@"%s", name);
}
}
<<


この例だと、起動シーケンス(UIApplicationDelegate)にswizzlingしているクラスを全部洗い出しを行っています。
まぁ、バイナリの中でやられると手が出せないんですけどね。。
犯人は探せます。

前:Unityで同期通信のデバッグ用にお手軽にクライアントを2個起動する方法 

コメント

名前:スーパーコピー代引き|投稿日:2019/04/01 12:08

ブランドコピー代引き 国内発送 スーパーコピー 代引き可能twitter.com/ashopxy. スーパーコピーブランド代引き対応日本国内発送後払い口コミ安全必ず届く専門店!
ブランドコピーhttps://twitter.com/ashopxy]]
スーパーコピー代引きhttps://twitter.com/ashopxy]]
ブランドコピー代引きhttps://twitter.com/postpay090]]

コメントを投稿する

名前URI
コメント