美文网首页应用安全
iOS全局自动化代码混淆工具!支持cocoapod组件代码一并混

iOS全局自动化代码混淆工具!支持cocoapod组件代码一并混

作者: 透支未来 | 来源:发表于2023-07-26 12:34 被阅读0次

    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/

    相关文章

      网友评论

        本文标题:iOS全局自动化代码混淆工具!支持cocoapod组件代码一并混

        本文链接:https://www.haomeiwen.com/subject/kzjkpdtx.html