#!/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