目录
1. 新建相关文件
新建文件confuse.sh
和func.list
创建文件方式如下:
$ cd ~/desktop/ceshi $ touch confuse.sh $ touch func.list
最终结果如下:
2. 导入文件至项目
将创建的confuse.sh
文件以及func.list
文件导入项目
最终结果如下
3. 修改项目配置
3.1 修改targets配置
如果没有runscript
。请点击红框内
进行新增
runscript
内输入的文本
$project_dir/confuse.sh
3.2 修改指令文件
3.2.1 打开confuse.sh文件,复制并粘贴一下文本
#!/usr/bin/env bash 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
3.2.2 修改指令文件权限
$ cd ~/desktop/ceshi $ chmod 755 confuse.sh
3.3 修改需要混淆的方法名文件
打开func.list
文件,在文件内输入需要进行方法名混淆的方法名
示例如下:
imagecompress blurimage viewdidload
3.4 修改pch文件配置
1、如果没有prefixheader.pch
这种文件,则需要新建一个
2、打开prefixheader.pch
文件
#ifndef prefixheader_pch #define prefixheader_pch // include any system framework and library headers here that should be included in all compilation units. #import "codeobfuscation.h" #endif /* prefixheader_pch */
4. 运行效果
运行com b
希望本文所述对大家的swift开发和学习有所帮助。