#!/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
index]}
}
指定脚本操作的路径
runShellPath='iPhoneBrowser/Controllers'
#存储混淆配置文件的路径
ObfuscatedCodePath="/Users/a123451/Desktop/ObfuscatedCode"
#混淆配置文件完整路径
ObfuscatedCodeName=/Users/a123451/Desktop/ObfuscatedCode/ObfuscatedCode.txt
#在桌面创建存储混淆配置文件的文件夹
if [ ! -d "/ObfuscatedCode" ];then
mkdir ObfuscatedCodePath
mkdir
(grep -h -r -I "^[-+]" $runShellPath --include '.h' |sed "s/[+-]//g"|sed "s/[();,: ^/{]/ /g"|sed "s/[ ]</</"| sed "/^[ ]IBAction/d"|awk '{split(
/d"
)
#获取指定目录下.h文件里的类名
array2=
runShellPath --include '.h' |sed "s/@interface//g"|cut -d ':' -f 1|sort|uniq
)
#获取指定目录下.h文件里的协议名
array3=
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