美文网首页
代码混淆

代码混淆

作者: 追梦赤子心Year | 来源:发表于2019-08-25 18:04 被阅读0次

方式1:自动混淆

1. 步骤:

1.新建项目
2.终端,cd “工程目录”
3.终端输入>

touch confuse.sh
touch func.list

4.打开项目目录,新建文件夹,取名“confuse”,将以上两个文件移动到此文件夹中
5.打开工程,导入“confuse”,新建pch文件CodeConfuse.h

创建结果
6.在confuse.sh文件中添加代码
#!/usr/bin/env bash

TABLENAME=symbols
SYMBOL_DB_FILE="symbols"
STRING_SYMBOL_FILE="$PROJECT_DIR/CodeConfuse/confuse/func.list"

CONFUSE_FILE="$PROJECT_DIR/CodeConfuse"

HEAD_FILE="$PROJECT_DIR/CodeConfuse/confuse/CodeConfuse.h"

export LC_CTYPE=C

#取以.m或.h结尾的文件以+号或-号开头的行 |去掉所有+号或-号|用空格代替符号|n个空格跟着<号 替换成 <号|开头不能是IBAction|用空格split字串取第二部分|排序|去重复|删除空行|删掉以init开头的行>写进func.list
grep -h -r -I  "^[-+]" $CONFUSE_FILE  --include '*.[mh]' |sed "s/[+-]//g"|sed "s/[();,: *\^\/\{]/ /g"|sed "s/[ ]*</</"| sed "/^[ ]*IBAction/d"|awk '{split($0,b," "); print b[2]; }'| sort|uniq |sed "/^$/d"|sed -n "/^safety_/p" >$STRING_SYMBOL_FILE


#维护数据库方便日后作排重,以下代码来自念茜的微博
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 CodeConfuse_h
#define CodeConfuse' >> $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

解析:项目中safety_开头的方法需要做安全处理

文件前缀

7.Xcode-->Target-->Build Phases-->添加Run Script

修改.sh文件路径
8.配置pch文件,并引入CodeConfuse
#ifndef PrefixHeader_pch
#define PrefixHeader_pch

#import "CodeConfuse.h"

#endif /* PrefixHeader_pch */

9.关于报错:
· Permission Denied sh文件权限被拒绝
· cd到confuse.sh文件夹目录下,输入命令 chmod 755 confuse.sh

参考自:iOS自动代码混淆

相关文章

  • Android项目的代码混淆

    代码混淆: 代码混淆有两种重要功能。其一,混淆代码。其二,优化代码。有的混淆是根据自己写得代码有关,需要根据异常错...

  • iOS 初探代码混淆(OC)

    iOS 初探代码混淆(OC) iOS 初探代码混淆(OC)

  • ProGuard详解

    Android分享:代码混淆那些事Android代码混淆之混淆规则Android-Dev-Favorites An...

  • Android代码混淆

    待整理。。。 参考: Android混淆从入门到精通 Android代码混淆之混淆规则 代码混淆规则配置文件:pr...

  • iOS-代码混淆加固策略

    iOS-代码混淆加固策略 iOS-代码混淆加固策略

  • iOS应用安全之代码混淆

    iOS应用安全之代码混淆iOS应用安全之代码混淆

  • 代码混淆

    混淆就是在你不想开源代码的时候对代码进行混淆处理,让代码即使被反编译也难以阅读,而且还可以精简编译后程序的大小 一...

  • 代码混淆

    傻瓜式模板

  • 代码混淆

    iOS代码混淆----自动 app 安全(一): 代码混淆防止反编译查看真实的头文件函数声明 iOS安全攻防(二十...

  • 代码混淆

    什么是混淆? 代码混淆:花指令,是将计算机程序的代码,转换成一种功能上等价,但是难以阅读和理解的形式的行为。 代码...

网友评论

      本文标题:代码混淆

      本文链接:https://www.haomeiwen.com/subject/wuhkectx.html