FBI-WARNING
是一个使用Clang
在编译的时候对ObjC
代码进行静态分析的.dylib
库。html
目前已经支持如下一些通用的简单的静态代码检测规则:git
NSString
和Block
须要使用copy
关键字修饰。delegate
须要使用weak
关键字修饰。atomic
原子性修饰时候的提醒。property
不该该使用大写开头命名。property
不该该使用内存管理语义命名。@Property
方式定义属性。NS_ENUM/NS_OPTIONS
定义枚举,而不是使用enum
。将来也许会支持更多...github
若是想要增长或者修改规则的小伙伴能够看看笔者写的另外两篇入门的文章(大牛请略过) LLVM & Clang 入门 和 Clang Plugin 之 Debug 这两篇文章讲了怎么搭建环境和使用 Xcode 进行调试。xcode
当前代码中已经支持了可自定义过滤Framework
或者文件,在isVenderSourceCode()
函数中,将须要过滤的Framework
或者文件名
直接添加在venders
中就能够了。微信
本仓库中会包含FBI-WARNING
、FBI-WARNING-Tooling
、FWPluginDemo
和一个.dylib
库。函数
FBI-WARNING:它会编译生成一个.dylib
库,这个.dylib
库会用于直接集成到 Xcode 中。集成部分请参考 Xcode 集成 Plugin。学习
FBI-WARNING-Tooling:它是一个可直接使用适用于Xcode
调试的代码。逻辑代码和FBI-WARNING
是同样的(只是在加载方式和CMakeLists
的配置文件上有一些差别),更准确的来讲,FBI-WARNING
是将FBI-WARNING-Tooling
进行调试好的代码复制过去的。调试部分请参考 Clang Plugin 之 Debug。atom
笔者也是刚开始学习,代码写得不够规范还请各位大佬见谅。其余自定义规则,请有需求的或者感兴趣的同窗本身动动手。插件
欢迎对clang
和逆向
感兴趣的同窗添加微信一块儿交流(添加时请注明)。调试
Q: 更新了.dylib
以后,在Xcode
中从新运行怎么仍是原来那样呀,没有任何变化? A: 这时候须要对着对应的Xcode
项目,按住Shift
+Command
+K
,Clean
一次就行了。
若有内容错误,欢迎 issue 指正。
转载请注明出处!