美文网首页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