Swift實現(xiàn)代碼混淆詳解
1. 新建相關(guān)文件
新建文件confuse.sh
和func.list
創(chuàng)建文件方式如下:
$ cd ~/Desktop/ceshi $ touch confuse.sh $ touch func.list
最終結(jié)果如下:
2. 導(dǎo)入文件至項目
將創(chuàng)建的confuse.sh
文件以及func.list
文件導(dǎo)入項目
最終結(jié)果如下
3. 修改項目配置
3.1 修改TARGETS配置
如果沒有RunScript
。請點擊紅框內(nèi)+
進行新增
RunScript
內(nèi)輸入的文本
$PROJECT_DIR/confuse.sh
3.2 修改指令文件
3.2.1 打開confuse.sh文件,復(fù)制并粘貼一下文本
#!/usr/bin/env bash TABLENAME=symbols SYMBOL_DB_FILE="symbols" STRING_SYMBOL_FILE="func.list" HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.h" export LC_CTYPE=C #維護數(shù)據(jù)庫方便日后作排重 createTable() { echo "create table $TABLENAME(src text, des text);" | sqlite3 $SYMBOL_DB_FILE } insertValue() { echo "insert into $TABLENAME values('$1' ,'$2');" | sqlite3 $SYMBOL_DB_FILE } query() { echo "select * from $TABLENAME where src='$1';" | sqlite3 $SYMBOL_DB_FILE } ramdomString() { openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 16 } rm -f $SYMBOL_DB_FILE rm -f $HEAD_FILE createTable touch $HEAD_FILE echo '#ifndef Demo_codeObfuscation_h #define Demo_codeObfuscation_h' >> $HEAD_FILE echo "http://confuse string at `date`" >> $HEAD_FILE cat "$STRING_SYMBOL_FILE" | while read -ra line; do if [[ ! -z "$line" ]]; then ramdom=`ramdomString` echo $line $ramdom insertValue $line $ramdom echo "#define $line $ramdom" >> $HEAD_FILE fi done echo "#endif" >> $HEAD_FILE sqlite3 $SYMBOL_DB_FILE .dump
3.2.2 修改指令文件權(quán)限
$ cd ~/Desktop/ceshi $ chmod 755 confuse.sh
3.3 修改需要混淆的方法名文件
打開func.list
文件,在文件內(nèi)輸入需要進行方法名混淆的方法名
示例如下:
imageCompress blurImage viewDidLoad
3.4 修改pch文件配置
1、如果沒有PrefixHeader.pch
這種文件,則需要新建一個
2、打開PrefixHeader.pch
文件
#ifndef PrefixHeader_pch #define PrefixHeader_pch // Include any system framework and library headers here that should be included in all compilation units. #import "CodeObfuscation.h" #endif /* PrefixHeader_pch */
4. 運行效果
運行com+B
希望本文所述對大家的Swift開發(fā)和學(xué)習(xí)有所幫助。
相關(guān)文章
Swift HTTP加載請求Loading Requests教程
這篇文章主要為大家介紹了Swift HTTP加載請求Loading Requests教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02