目录1. 新建相关文件2. 导入文件至项目3. 修改项目配置3.1 修改TARGETS配置3.2 修改指令文件3.2.1 打开confuse.sh文件,复制并粘贴一下文本3.2.2
新建文件confuse.sh
和func.list
创建文件方式如下:
$ cd ~/Desktop/ceshi
$ touch confuse.sh
$ touch func.list
最终结果如下:
将创建的confuse.sh
文件以及func.list
文件导入项目
最终结果如下
如果没有RunScript
。请点击红框内+
进行新增
RunScript
内输入的文本
$PROJECT_DIR/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
$ cd ~/Desktop/ceshi
$ chmod 755 confuse.sh
打开func.list
文件,在文件内输入需要进行方法名混淆的方法名
示例如下:
imageCompress
blurImage
viewDidLoad
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
运行com+B
--结束END--
本文标题: Swift实现代码混淆详解
本文链接: https://www.lsjlt.com/news/158519.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0