剛剛寫了如何使用class-tump查看app包頭文件?,那我們如何使我們保護我們app的安全呢,這里先簡單的介紹一種代碼混淆的方法,就是使用預編譯替換。
我們新建工程,然后加入PrefixHeader.pch和head.h文件,然后在head.h文件中添加宏,如圖
然后定義并實現兩個方法
-(void)xxxxxx;
-(void)test2;
-(void)xxxxxx{
NSLog(@"xxxxxx");
}
-(void)test2{
NSLog(@"test");
}
然后我們編譯之后進行打包
用歸檔工具打開ipa包,可以看到app文件,打開終端,輸入
class-dump -H /Users/xie/Desktop/confuseTest\ 2017-08-21\ 10-39-29/Payload/confuseTest.app? -o /Users/xie/Desktop/confuseTest\ 2017-08-21\ 10-39-29
可以看到已經將ipa中app包的頭文件導出到/Users/xie/Desktop/confuseTest\ 2017-08-21\ 10-39-29文件夾下。
打開viewController.h文件,可以看到
xxxxxx已經替換為宏定義的test,,所以我們代碼中可以添加預編譯宏來隱藏方法名。