我的第一个的正式的tweak

       为什么说第一个,因为之前做的tweak比较小,比如在别人的tweak上作了个小修改,在打包deb;或是网上找了源码,做了个anti-antidebug的小插件。本次我将逆向别人的一个app,并将dylib直接嵌入这个app。本人菜鸟,真的很菜,这里只是做个记录,给自己看,或是给新入坑菜鸟参考。

       本来想分析这个app的验证算法,自己hook它的NSURLConnection类的这个方法:

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse * _Nullable *)response error:(NSError * _Nullable *)error

然后在这个方法里写入自己的服务器验证代码,无奈,这个app在调用这个方法的前后用了加密和解密,实在很难分析。当然也可以nop掉这些加密解密代码,但这样对原app改动太多,容易出错。因此,现在想简单化处理:nop掉app里对有无注册的验证后的跳转,让这个程序直接不需要注册。然后,我在合适的地方插入自己的服务器注册验证。下面开始:

1、用reveal 看关键几个viewcontrol 类。(有个叫Flipboard/ FLEX (Flipboard Explorer),更强大,能在手机上直接看,不需要连接电脑,以后有空试试这个。)

2、用logify.pl 生成这几个viewcontrol 类的tweak.xm。刚生成后,编译会有问题,需要修改。比如

提示:

(1)error: expected selector for Objective-C method            - (void).cxx_destruct;

这是因为class_dump 头文件后,头文件里会有这个方法。只要在tweak.xm中把这个方法删掉即可。

(2) error: unknown type name 'CDStruct_c3b9c2ee'

经查找发现是一个方法的参数类型,因此我从class_dump 头文件中找到这个类型的定义,是个结构体,我把这个结构体定义放到tweak.xm中,结果报错更多,不知道啥原因,我只能先把CDStruct_c3b9c2ee 改成 id,先通过编译再说。

 

猜你喜欢

转载自www.cnblogs.com/iamonion/p/9860557.html
今日推荐