iOS全局自動化代碼混淆工具!支持cocoapod組件代碼一并混淆

STCObfuscator

STCObfuscator 是用來進行object-c代碼混淆的工具,在模擬器DEBUG環境下運行生成混淆宏,
混淆的宏可以在其他環境下進行編譯,支持Cocoapod代碼混淆.

怎么使用!

相關博客:https://blog.csdn.net/cating1314/article/details/80189295

如果你的工程支持cocoapod,你可以直接添加!
pod "STCObfuscator"(注:請用最新版本,最好更新下master repo)

把下面的代碼加入到Appdelegate didFinishLaunchingWithOptions方法里,

#import "STCObfuscator.h"

#if (DEBUG == 1)
    [[STCObfuscator obfuscatorManager] confuseWithRootPath:[NSString stringWithFormat:@"%s", STRING(ROOT_PATH)] resultFilePath:[NSString stringWithFormat:@"%@/STCDefination.h", [NSString stringWithFormat:@"%s", STRING(ROOT_PATH)]] linkmapPath:[NSString stringWithFormat:@"%s", STRING(LINKMAP_FILE)]];
#endif

然后完成下面步驟的設置
image.png

步驟1、

在 Build Settings->Preprocessor Macros->DEBUG 中添加環境變量
LINKMAP_FILE=$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt 
和
ROOT_PATH="${SRCROOT}" 
(注:工程盡量不要放在中文路徑下)
image.png

步驟2、

在 Build Settings 開啟Write Link Map File, 設置成 YES
image.png

步驟3、

將下面的腳本添加到 Build Phases
dir=${SRCROOT}
file_count=0
file_list=`ls -R $dir 2> /dev/null | grep -v '^$'`
for file_name in $file_list
do
temp=`echo $file_name | sed 's/:.*$//g'`
if [ "$file_name" != "$temp" ]; then
cur_dir=$temp
else
if [ ${file_name##*.} = a ]; then
    find -P $dir -name $file_name > tmp.txt
    var=$(cat tmp.txt)
    nm $var > ${file_name}.txt
    rm tmp.txt
fi
if [ ${file_name##*.} = framework ]; then
    find -P $dir -name ${file_name%%.*} > tmp.txt
    var=$(cat tmp.txt)
    nm $var > ${file_name}.txt
    rm tmp.txt
    fi
fi
done
image.png

步驟4、

在預編譯文件最前面中添加以下代碼
#if (DEBUG != 1)
#import "STCDefination.h"
#endif
image.png

步驟5、

在DEBUG環境下用模擬器運行工程,在STCDefination.h頭文件中生成混淆的宏。
所有的混淆符號會保留在工程目錄下的confuse.json。 
image.png
可用于bug上報后反混淆的文件
image.png

步驟6、

把工程目錄下STCDefination.h頭文件加入工程。
混淆后,如果工程增加代碼,需要再次混淆,先清空STCDefination.h里面的內容,不能留任何空格和換行,然后pod update,再次在模擬器DEBUG環境下運行。
image.png

步驟7、

在 RELEASE 環境下運行工程,實現代碼混淆。
混淆前逆向。
image.png
混淆后逆向。
image.png

轉載于:https://www.mianshigee.com/project/chenxiancai-STCObfuscator/

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容