swift实现代码混淆详解-kb88凯时官网登录

来自:网络
时间:2023-07-25
阅读:
目录

1. 新建相关文件

新建文件confuse.shfunc.list

创建文件方式如下:

$ cd ~/desktop/ceshi
$ touch confuse.sh
$ touch func.list

最终结果如下:


swift实现代码混淆详解

2. 导入文件至项目

将创建的confuse.sh文件以及func.list文件导入项目
最终结果如下

swift实现代码混淆详解

3. 修改项目配置

3.1 修改targets配置

如果没有runscript。请点击红框内 进行新增

swift实现代码混淆详解

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实现代码混淆详解

希望本文所述对大家的swift开发和学习有所帮助。

返回顶部
顶部
网站地图