iOS 混淆代码

1.终端

cd Desktop

touch confuse.sh

随便找个编辑器打开 confuse.sh文件。拷贝下面脚本进去。

#!/usr/bin/env bash

TABLENAME=symbols

SYMBOL_DB_FILE="$PROJECT_DIR/Confuse/symbols"

STRING_SYMBOL_FILE="$PROJECT_DIR/Confuse/func.list"

HEAD_FILE="$PROJECT_DIR/Confuse/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

2.在工程目录下创建一个COnfuse文件夹,然后将混淆脚本confuse.sh 放到如图位置


3.给工程添加一个Prefix.pch文件。然后修改

#ifdef __OBJC__

#import

#import

#import "codeObfuscation.h"  //这个是文件在目录下自己创建一个,然后加到工程里

#endif

4.配置Build Phase


5.创建函数名列表func.list,写入待混淆的函数名,如图:


文件放入脚本同级目录,如第一张图的文件目录结构

6.编译


如图为成功


参考:http://blog.csdn.net/yiyaaixuexi/article/details/29201699

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容