iOS 馬甲包 (二)代碼混淆 (利用工具spamCode或者iOSMixProject)

spamCode Git下載地址
https://github.com/oneyian/SpamCode
iOSMixProject Git地址
https://github.com/JourneyYoung/iOSMixProject
KLGenerateSpamCode
https://github.com/klaus01/KLGenerateSpamCode

前言:這三種工具是為了應對應用的審核(Guideline 4.3 Design Spam),避免蘋果機審檢測概率。spamCodeiOSMixProject都是基于KLGenerateSpamCode改進,用法相同

主要功能

  1. 修改工程名
  2. 修改類名前綴
  3. 掃描工程中的代碼,生成同等數(shù)量的 Category 文件,文件中及是同等方法數(shù)量的垃圾代碼。
  4. 修改 xxx.xcassets 文件夾中的 png 資源文件名。
  5. 刪除代碼中的所有注釋和空行。

參數(shù)說明

  • (必填) 源碼文件夾絕對路徑(如:/Users/kelei/Documents/work/git/projectName/source)

  • -modifyProjectName [原名稱]>[新名稱] 修改工程名。程序會修改原名稱-Swift.h、Podfile、原名稱-Bridging-Header.h、源碼文件夾絕對路徑、原名稱.xcodeproj和原名稱.xcworkspace的名稱和內(nèi)容。Podfile被修改后需要手動pod install

  • -modifyClassNamePrefix [工程文件 xcodeproj 絕對路徑] [原前綴]>[新前綴] 修改源代碼類名前綴。程序會掃描源碼文件夾絕對路徑下的 .h .swift 文件,修改文件名,修改使用該類名的代碼,修改工程文件中的文件名。文件名有原前綴的會修改成新前綴,如:原前綴ViewController變成新前綴ViewController;沒有原前綴的會增加新前綴,如:ViewController變成新前綴ViewController。

  • -spamCodeOut [垃圾代碼文件輸出目錄] [垃圾代碼方法增加的參數(shù)名] 生成垃圾代碼。程序會掃描源碼文件夾絕對路徑下的 .m .swift 文件中的類和方法,并生成category和extension文件,文件中的方法是在代碼原方法的基礎上增加垃圾代碼方法增加的參數(shù)名參數(shù)。如:-spamCodeOut /dir AppLog,- (void)setupKeys {}>- (void)setupKeysAppLog:(NSString *)appLog {},- (void)foo:(NSString *)str {}>- (void)foo:(NSString *)str appLog:(NSString *)appLog {}

  • -ignoreDirNames [忽略文件夾名稱字符串] 忽略這些文件夾,對-modifyClassNamePrefix和-spamCodeOut參數(shù)有效。目前只會忽略源碼文件夾絕對路徑下一級的這些目錄。如:/p/s -ignoreDirNames categorys,那么/p/s/categorys會被忽略,但/p/s/viewControllers/categorys不會忽略。

  • -handleXcassets 修改xxx.xcassets文件夾中的 png 資源文件名,同時也Contents.json文件中的關聯(lián)名稱,不會影響代碼中使用圖片。

  • -deleteComments 刪除工程目錄下 .h .m .swift 文件中的注釋和空行。

使用案例(以spamCode為例)
使用前

  1. 下載spamCode以及你要混淆的項目
    image.png
  1. 打開spamCode工程切換到配置參數(shù)的地方,具體步驟如下

    image.png

    image.png

  2. 參數(shù)配置(參數(shù)說明見上)

    image.png

(1).修改類名: -modifyClassNamePrefix [xcodeproj文件的絕對路徑,不是pod安裝后的那個打開文件] [舊類前綴]>[新類前綴], LXW是舊類前綴,XX是新類的前綴
(2)修改方法名:-chageAPIPrefix [舊方法名前綴]>[新方法名前綴] 注意,前綴要有“”才能被識別,如果之前工程中沒有xx下劃線開頭來命名方法的,此項不要勾選,Demo_是原先方法名的前綴,LXW_是新方法名的前綴
(3)修改工程的名稱:-modifyProjectName [原工程名]>[新工程名]
(4)垃圾代碼生成:-spamCodeOut /Users/lixuewen/Desktop/confusion/confusionDemo_test/垃圾代碼 垃圾代碼文件夾路徑 [垃圾代碼參數(shù)] ccc就是垃圾代碼的參數(shù)
(5) 如果用到了修改項目名,最好分兩批先修改方法名等,最后在修改項目名,因為修改項目名稱之后其他的絕對路徑就發(fā)生了變化,會報錯。如果碰見報錯或者修改不成功,就重新填寫參數(shù),那個失敗了就單獨怕那個

注:


image.png
  1. 點擊colse,運行項目,查看效果

修改前

image.png

修改后(生成的垃圾代碼需要手動拖拽)

image.png

如果出現(xiàn)了下圖的報錯

20170822163615162.png

解決方法:

cmd + shift + k 
cmd + option + shift + k 
重啟 Xcode
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,816評論 9 468
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,732評論 0 5
  • 母親騎著電動三輪車,車上是她剛剛從梨園里摘下的梨子,最上面的幾個梨子隨著道路的顛簸不時的跳動,它們被太陽曬得金黃的...
    貓線團閱讀 372評論 2 2
  • (一)前言 多年以后,當我和富貴聊起當年他給我做培訓的場景,富貴露出他那鮮艷的牙床子,用手撥弄他那稀疏的頭頂。哈哈...
    軒軒說閱讀 722評論 0 4

友情鏈接更多精彩內(nèi)容