博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
来着 FBI 的 WARNING
阅读量:6695 次
发布时间:2019-06-25

本文共 1114 字,大约阅读时间需要 3 分钟。

FBI-WARNING是一个使用Clang在编译的时候对ObjC代码进行静态分析的.dylib库。

目前已经支持以下一些通用的简单的静态代码检测规则:

@property

  1. NSStringBlock需要使用copy关键字修饰。
  2. delegate需要使用weak关键字修饰。
  3. 使用atomic原子性修饰时候的提醒。
  4. property不应该使用大写开头命名。
  5. property不应该使用内存管理语义命名。
  6. 应该使用@Property方式定义属性。

Method

  1. 方法名不应该使用大写开头命名。
  2. 方法名不应该使用内存管理语义命名。
  3. 方法参数名不应该使用大写开头命名。
  4. 方法体超过 XX(50) 行的提醒。

Class

  1. 类/分类名应该使用大写开头。
  2. 类/分类名应该使用自定义大写前缀开头。
  3. 类/分类名应该使用驼峰命名

Others

  1. 应该使用NS_ENUM/NS_OPTIONS定义枚举,而不是使用enum

未来也许会支持更多...

Custom

如果想要增加或者修改规则的小伙伴可以看看笔者写的另外两篇入门的文章(大牛请略过) 和 这两篇文章讲了怎么搭建环境和使用 Xcode 进行调试。

当前代码中已经支持了可自定义过滤Framework或者文件,在isVenderSourceCode()函数中,将需要过滤的Framework或者文件名直接添加在venders中就可以了。

Notes

本仓库中会包含FBI-WARNINGFBI-WARNING-ToolingFWPluginDemo和一个.dylib库。

FBI-WARNING:它会编译生成一个.dylib库,这个.dylib库会用于直接集成到 Xcode 中。集成部分请参考 。

FBI-WARNING-Tooling:它是一个可直接使用适用于Xcode调试的代码。逻辑代码和FBI-WARNING是一样的(只是在加载方式和CMakeLists的配置文件上有一些差异),更准确的来说,FBI-WARNING是将FBI-WARNING-Tooling进行调试好的代码复制过去的。调试部分请参考 。

笔者也是刚开始学习,代码写得不够规范还请各位大佬见谅。其他自定义规则,请有需求的或者感兴趣的同学自己动动手。

欢迎对clang逆向感兴趣的同学添加微信一起交流(添加时请注明)。

Effects

Questions

Q: 更新了.dylib之后,在Xcode中重新运行怎么还是原来那样呀,没有任何变化? A: 这时候需要对着对应的Xcode项目,按住Shift+Command+KClean一次就好了。

References

如有内容错误,欢迎 指正。

转载请注明出处!

你可能感兴趣的文章
【VBA编程】10.自定义集合
查看>>
SQLServer 维护脚本分享(08)临时数据库(tempdb)
查看>>
ServerSocketChannel API用法
查看>>
Javascript判断object还是list/array的类型(包含javascript的数据类型研究)
查看>>
设计模式(二)模板方法模式
查看>>
闰秒导致MySQL服务器的CPU sys过高
查看>>
网络抓包工具 wireshark 入门教程
查看>>
shell 编程每日100行
查看>>
Sublime Text 3新建工程
查看>>
maven GroupId 和ArtifactId的含义
查看>>
Mac下运行git报错"xcrun: error: invalid active developer path .."
查看>>
基于Dubbo框架构建分布式服务
查看>>
css sprite讲解与使用实例
查看>>
Golang 特性简介
查看>>
ubuntu安装wkhtmltopdf
查看>>
JMeter处理Cookie与Session
查看>>
qml demo分析(customgeometry-贝塞尔曲线)
查看>>
zookeeper工作原理、安装配置、工具命令简介
查看>>
@查看MySQL版本的方法
查看>>
火狐浏览器Firefox如何使用插件,火狐有哪些好用的插件
查看>>