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 指正。
轉載請註明出處!