iOS代碼混淆

蒙娜麗胖· 2021-01-19

前言

今天主要想說的是iOS的代碼混淆,為什么想做代碼混淆?為了APP的安全,為了防止別人破殼輕易破解我們代碼;還有就是做馬甲包了,我們知道馬甲包的市場需求很大,但是不能花費過多的精力在開發上,畢竟只是個馬甲,沒必要花費太多的成本!

混淆工具

網上搜了一下,開源免費的混淆都在轉載念茜大姐大的sh腳本的混淆方法,或者在念茜的腳本基礎上二次開發,大家去看過就知道念茜的這篇博客是在14年寫的,那時我剛做iOS沒多久?,而且那時候中國區審核還沒有那么嚴格,若果你現在還使用那種方法進行混淆,你肯定會收到蘋果的2.3.1 大禮包?,所以我們還是探索別的混淆方法吧,不要再挖墳了!

ZFJObsLib主要是通過Python寫的混淆工具,具體功能有方法混淆、屬性混淆、類名混淆、添加垃圾代碼、自動創建垃圾類、刪除注釋、修改資源文件Hash值、加密字符串、翻新資源名、模擬人工混淆、混淆文件名、混淆文件目錄、混淆詞庫、混淆日志、映射列表、敏感詞過濾、圖片壓縮、爬蟲服務、修改項目名、翻新項目UUID、自動備份混淆項目、自定義忽略屬性、自定義忽略函數、自定義忽略類名、界面顏色魔改、APP圖片主題色替換,具體的如下:

下載地址

ZFJObsLib混淆工具全面支持OC與Swift語言開發的項目?。?!

(1)下載地址:

  https://gitee.com/zfj1128/ZFJObsLib_dmg(主更新地址)

  https://github.com/zfjsyqk/ZFJObsLib(備更新地址)

(2)使用問答:

  http://zfjobslib.top/qahelp.html

混淆日志

進行混淆的部分日志,混淆的時候會自動生成混淆日志《ZFJ混淆日志.log》,便于開發者修改部分報錯,在混淆界面下方的《打開混淆日志》按鈕打開:

忽略路徑

我們在混淆的時候,我們可以根據自己的實際情況選擇需要忽略混淆的文件或者文件夾,所以我添加了混淆忽略文件和忽略文件功能,如下圖: 特別說明:多級目錄混淆情況,如果想忽略的目錄在多個文件夾中有重名的,比如你想忽略Home下面的Models文件夾,但是在Home文件夾和Mine文件夾都有個Models文件夾,你可以這樣設置'Home/Models'就OK了!So Easy!??????

如果想過濾擁有相同前綴的類,比如ZFJ_TouchClass.h/ZFJ_TouchClass.m/ZFJ_MyButton.h/ZFJMyButton.m,可以設置‘ZFJ+’就可以對以‘ZFJ_’開頭的類進行過濾忽略;

如果想過濾擁有相同后綴的類,比如ZFJName.h/ZFJName.m/ABCName.h/ABCName.h,可以設置‘+Name’就可以對以‘Name’結尾的類進行過濾忽略。

注意:很多人都在問,為什么我明明設置了忽略,為什么右邊的日志還會打印被忽略的文件或者文件夾?需要注意的是,忽略只針對屬性混淆、函數混淆、類名混淆才有用,忽略是不回去讀取混淆原有的屬性、函數、類名,但是并不意味著不去跑一邊了!

還有就是pod是無法混淆的,因為pod需要管理員權限才能修改,所以軟件沒有權限修改,如果想混淆,把pod里面的庫拖進工程中! 使用問答

在使用的時候要是有什么問題,可以先看看《ZFJObsLib-iOS代碼混淆軟件使用問答(Q&A)》

在軟件可以在系統欄-幫助-使用問答查看,如下圖:

軟件功能

??????ZFJObsLib有很多功能,大家可以根據自己的實際使用情況自行選擇!??????

在此附上一些過包大佬常用的功能截圖,僅供參考,這些大佬最牛逼的一個月過了三四十個,還有人一天一份代碼混淆五次過了四個,一個是因為bug:

仙居天天乐棋牌下载 吉林麻将秘籍 新疆18选7官方网站 山东福彩3d论坛 混合过关计算器 宁夏11选5杀号技巧 期货投资周报表 微乐微乐吉林麻将 皇冠nba比分网 11选5时时彩游戏规则 1237期七星彩开奖结果 天津11选5分析 广东11选5开奖信息 188篮球比分网 比特币挖矿机设备 刮刮乐点石成金玩法 黑龙江时时彩开奖时间