来着 FBI 的 WARNING

栏目: IOS · 发布时间: 7年前

内容简介:目前已经支持以下一些通用的简单的静态代码检测规则:未来也许会支持更多...

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

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

@property

  1. NSString 和 Block 需要使用 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

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

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

Notes

本仓库中会包含 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 。

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

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

来着 FBI 的 WARNING

Effects

来着 FBI 的 WARNING
来着 FBI 的 WARNING

Questions

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

互联网时代

互联网时代

《互联网时代》主创团队 / 北京联合出版公司 / 2015-2-1 / 49.80元

【编辑推荐】 1、人类正进入一个充满未知的时代,《互联网时代》不仅告诉你现在,还告诉你未来。 2、中央电视台《互联网时代》是全球第一部全面、系统、深入、客观解析互联网的纪录片,同名图书容量巨大,除纪录片内容,更包含大量尚未播出的内容。 3、中央电视台继《大国崛起》《公司的力量》《华尔街》等之后的又一重磅力作。10个摄影组,制作近3年,在全球14个国家和地区拍摄,6位“互联网之父”......一起来看看 《互联网时代》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具