美文网首页Des's iOS
ios开发安全之----代码的混淆

ios开发安全之----代码的混淆

作者: 莼蓝Oo | 来源:发表于2017-06-15 15:49 被阅读588次
    1.首先在项目里面创建一个Config文件夹,然后创建两个文件,分别是

    然后将混淆脚本写入confuse.sh文件里面

    !/usr/bin/env bash

    TABLENAME=symbols

    SYMBOL_DB_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/symbols"

    STRING_SYMBOL_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/func.list"

    HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/TestCodeConfuscation.h"

    export LC_CTYPE=C

    维护数据库方便日后作排重

    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 TestCodeConfuseUse_TestCodeConfuscation_h

    define TestCodeConfuseUse_TestCodeConfuscation_h' >> $HEAD_FILE

    echo "//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

    -------------此脚本来自念茜的微博
    2.然后将此Config导入Xcode项目里面,在设置Run Script

    在Xcode-->Target--->Build Phases--->添加Run Script

    3.然后command + B ,发现运行报错(Permission denied)
    解决方案:

    终端输入进入Config目录,输入 chmod 755 confuse.sh , 回车。会生成两个新文件。 4.将需要混淆的方法名和属性放入func.list里面,编译运行生成新的混淆后的方法名在Config里面的.H文件里。

    5.最后通过class-dump反编译回来的方法名是混淆之后的方法名。

    相关文章

      网友评论

      本文标题:ios开发安全之----代码的混淆

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