Swift_代码混淆

1. 新建相关文件

新建文件confuse.shfunc.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
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值