然后將混淆腳本寫入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
維護(hù)數(shù)據(jù)庫方便日后作排重
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 "http://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導(dǎo)入Xcode項(xiàng)目里面晶疼,在設(shè)置Run Script
3.然后command + B 华弓,發(fā)現(xiàn)運(yùn)行報錯(Permission denied)
解決方案:
5.最后通過class-dump反編譯回來的方法名是混淆之后的方法名。