shell脚本初试(代码混淆)

#!/usr/bin/env bash

获取指定长度的方法-随机字符串 参数为$1

ramdomMethodString() { openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c $1 }

获取指定长度的参数-随机字符串 参数为$1

ramdomParmString() { openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 6 }

获取随机参数类型

getParmType(){ array=(NSString* int BOOL) index=[RANDOM%3] echo {array[index]} }

指定脚本操作的路径

runShellPath='iPhoneBrowser/Controllers' #存储混淆配置文件的路径 ObfuscatedCodePath="/Users/a123451/Desktop/ObfuscatedCode" #混淆配置文件完整路径 ObfuscatedCodeName=/Users/a123451/Desktop/ObfuscatedCode/ObfuscatedCode.txt #在桌面创建存储混淆配置文件的文件夹 if [ ! -d "/ObfuscatedCode" ];then mkdir ObfuscatedCodePath else  rm -rObfuscatedCodePath mkdir ObfuscatedCodePath  echo "文件夹已存在" fi #获取指定目录下.h文件里的方法名 array1=(grep -h -r -I "^[-+]" $runShellPath --include '.h' |sed "s/[+-]//g"|sed "s/[();,: ^/{]/ /g"|sed "s/[ ]</</"| sed "/^[ ]IBAction/d"|awk '{split(0,b," "); print b[2]; }'| sort|uniq |sed "/^/d" ) #获取指定目录下.h文件里的类名 array2=(grep -h -r -I  "^@interface"runShellPath --include '.h' |sed "s/@interface//g"|cut -d ':' -f 1|sort|uniq ) #获取指定目录下.h文件里的协议名 array3=(grep -h -r -I  "^@protocol"runShellPath --include '.h' |sed "s/@protocol//g"|cut -d '<' -f 1|sort|uniq )

echo ${array1[*]}

echo ${array2[*]}

echo ${array3[*]}

resultArray=() for method in ${array1[*]}; do

length=${#method} #方法名长
methodRamdom=`ramdomMethodString $length` #根据方法名长度获取随机字符串长度
parmName1=`ramdomParmString` #获取参数名1
parmName2=`ramdomParmString` #获取参数名2
parmType=`getParmType`	#参数类型
echo $method--$methodRamdom--$parmName1--$parmType--$parmName2 >>$ObfuscatedCodeName
复制代码

done

转载于:https://juejin.im/post/5ab2b31df265da2377194dcf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值