iOS源码混淆

作者: 明T_Tve灬䒚 | 来源:发表于2018-01-25 17:06 被阅读228次

出于对自己生产出代码的尊重,要对其负责,保护她的隐私,不被别人发现。我们希望在开发时一直保留清晰可读的程序代码,方便自己。同时,希望编译出来的二进制包含乱七八糟的混淆后的程序代码,恶心他人。

不讲了,发现完全控制不住自己,直接上问题。

iOS源码混淆

  • 强项目安全性
  1. 使用classdump对原程序进行dump,可以dump出所有源程序的函数所有信息:源程序所有函数类型,变量全部泄露。(下期在分享一下如何对源程序进行dump)在安全性的角度来讲,该项目已经处于高风险阶段了。比如:银行的客户端,交易平台等等。

  2. 首先需要得到两个文件 confuse.sh 和 func.list,

1)打开终端:cd -> 你工程的路径
2)创建两文件:touch -> confuse.sh and fund.list

  1. 打开工程加入刚创建好的两个文件


    addfile.png
  1. 当打开confuse.sh文件,里面并没有内容,里面是一个脚本文件,在最下面
  1. 在.pch中添加代码
#ifdef __OBJC__     
#import//添加混淆作用的头文件
#import"codeObfuscation.h" 
#endif  

6.添加Run Script

$PROJECT_DIR/confuse.sh
run script.jpg
  1. 添加脚本权限,confuse.sh这个脚本默认的权限是关闭的,打开终端到当前文件路径下,添加命令行$:
 chmod 755 confuse.sh
  1. 现在开始源码的混淆,打开func.list


    func.png

如上图所示,现在要混淆ViewDragController的方法,将这些方法名称粘出来贴到func.list中。如下图:


funclist.png

OK,这个时候已经大功告成了,咱们验证一下结果。

funcend.png

ps:这里有点局限性,大型项目只能对相对重要的方法、属性进行混淆,全部混淆工作量很大,当然这也是一个优点。

感谢阅读!!!

confuse.sh脚本内容


TABLENAME=symbols
SYMBOL_DB_FILE="symbols"
STRING_SYMBOL_FILE="func.list"
HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.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 Demo_codeObfuscation_h
#define Demo_codeObfuscation_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

相关文章

网友评论

    本文标题:iOS源码混淆

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