ios开发安全之----代码的混淆

1.首先在项目里面创建一个Config文件夹,然后创建两个文件,分别是

然后将混淆脚本写入confuse.sh文件里面

!/usr/bin/env bash

TABLENAME=symbols

SYMBOL_DB_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/symbols"

STRING_SYMBOL_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/func.list"

HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/TestCodeConfuscation.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 TestCodeConfuseUse_TestCodeConfuscation_h

define TestCodeConfuseUse_TestCodeConfuscation_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

-------------此脚本来自念茜的微博
2.然后将此Config导入Xcode项目里面,在设置Run Script

在Xcode-->Target--->Build Phases--->添加Run Script

3.然后command + B ,发现运行报错(Permission denied)
解决方案:

终端输入进入Config目录,输入 chmod 755 confuse.sh , 回车。会生成两个新文件。

4.将需要混淆的方法名和属性放入func.list里面,编译运行生成新的混淆后的方法名在Config里面的.H文件里。

5.最后通过class-dump反编译回来的方法名是混淆之后的方法名。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言: 在iOS移动端开发中很多时候在考虑安全问题的时候只是单纯的请求体加密,但是在一个用户量级很大的App上就会...
    退役程序猿阅读 11,359评论 2 17
  • class-dump 可以很方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完善...
    无沣阅读 3,688评论 1 0
  • 1.终端 cd Desktoptouch confuse.sh 随便找个编辑器打开 confuse.sh文件。拷贝...
    客三消阅读 5,947评论 2 50
  • 刚刚说了使用宏定义的方式来隐藏头文件方法名。感觉比较low,有没有更好的方法来做呢。 创建 confuse.sh,...
    iOS谢先森阅读 3,892评论 1 2
  • 如果眼泪可以解决所有问题,也许这一辈子的眼泪都要提前透支了。 今天早晨被老师的一条信息打乱了所以计划,原本在一个月...
    今聿阅读 5,503评论 0 0