iOS 方法名混淆 代码混淆

一.目的:

1.通过审核
原因是规避代码相似度极高而过不了机审.增加代码.代码混淆

2.安全需要
对安全性能要求较高的产品.防止别人通过class-dump反编译你的应用得到源码

文章主要讲解方法名混淆的问题。如有问题,还请大神指点! OK let do it

二.执行:

1.打开终端 先cd到工程的目录下 创建两个脚本文件
confuse.sh
func.list

*****$ cd /Users/king/Desktop/test 
*****$ touch confuse.sh
*****$ touch func.list
屏幕快照 2018-11-22 下午2.36.35.png

接下来把这两个文件加到工程中


屏幕快照 2018-11-22 下午3.08.38.png

在confuse.sh 中加入脚本代码.脚本代码来自念茜姐姐(博客:)如下
https://blog.csdn.net/yiyaaixuexi/article/details/29201699


#!/usr/bin/env bash

TABLENAME=symbols
SYMBOL_DB_FILE="symbols"

//下边这三个要行需要根据自己文件路径

STRING_SYMBOL_FILE="$PROJECT_DIR/BaseFrame/func.list"
CONFUSE_FILE="$PROJECT_DIR/BaseFrame/"
HEAD_FILE="$PROJECT_DIR/BaseFrame/Supporting Files/codeObfuscation.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 "/^HYF_/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 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

然后在func.list 中加入需要混淆的方法名 (随意写两个方法名)

HYF_Function1
HYF_Function2

另再创建一个.h文件 codeObfuscation.h 并加入方法名

#ifndef Demo_codeObfuscation_h
#define Demo_codeObfuscation_h

#define HYF_Function1 JIUHkoTUOpodkHJK
#define HYF_Function2 BpfFGCqvmxHVCtct

#endif

再把codeObfuscation.h 的头文件加入到.pch 文件 配置pch文件这里不再阐述了哈


屏幕快照 2018-11-22 下午3.28.03.png

[图片上传中...(WechatIMG1.jpeg-103601-1542872148151-0)]
这时在配置一下路径就差不多啦


WechatIMG1.jpeg

第四步点击加号 new run script phase 就会出现第五步啦


屏幕快照 2018-11-22 下午3.37.19.png

设置好confuse.sh路径就好了

接下来直接调用一下该方法就行了

-(void)HYF_Function1
{
    //打印方法名
    NSLog(@"Current method: %@",NSStringFromSelector(_cmd));
}

到这里就收工了.中途有可能会出现报小红点点.有可能的情况

1.路径配置问题

处理.仔细检查路径的问题.修改好正确的就OK

2.没有权限问题

回到终端执行代码.开放权限

chmod 755 coufuse.sh

大功告成.有啥问题欢迎评论哦

demo URL :
https://github.com/kingiiyy/Confuseshell

更新时间: 2018-11-25

Oh no 刚刚收到个不好的消息.现在iOS的审核机制越来越严格了.添加这个脚本会直接导致审核被拒绝了..代码混淆是为了过机审那一关..可还是被拒绝了

屏幕快照 2018-11-22 下午5.08.25.png
WechatIMG3.jpeg

同志们需要混淆代码用到脚本的慎重使用了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 由于iOS系统的封闭性,相对于安卓来说,iOS开发过程中代码混淆可能就显得并不是得非有不可了。但是在安全性(可通过...
    提呐个莫阅读 7,827评论 11 41
  • app风靡的时代,总有一些奇葩的需求。为了刷量,刷排名,制作壳包,为了通过苹果爸爸审核,想到代码混淆,垃圾代码等策...
    二斤寂寞阅读 22,912评论 11 52
  • 对于IOS来说,由于系统是封闭的,APP上架需要通过App Store,安全性来说相当高。但是对于大厂和知名APP...
    it彭于晏阅读 1,116评论 0 1
  • 代码易读字符串混淆 混淆分许多思路,比如: 1)花代码花指令,即随意往程序中加入迷惑人的代码指令 2)易读字符替换...
    Mikayla321阅读 7,492评论 5 13
  • iOS表面上看来是比android安全的多的,在网络上针对android的加密保护也比iOS多得多,但是这并不意味...
    张囧瑞阅读 6,204评论 7 30