iOS-移动架构师iOS备忘录@IT·互联网

代码混淆 md5 + base64

2017-03-05  本文已影响2517人  灯泡虫

念茜(iOS 一姐!)CSDN 代码混淆地址

针对念茜代码混淆中的脚本,做了一些修改,用md5 + base64替换了原文中的随机数(缺点:如果一个类中随机出两个一样的数就会有问题)。

注意点:需要先用HomeBrew 安转一个shell md5支持插件

brew install md5sha1sum

脚本代码如下:

#!/usr/bin/env bash  
  
TABLENAME=symbols  
SYMBOL_DB_FILE="symbols"  
STRING_SYMBOL_FILE="func.list"  
HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.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  
}  

  
rm -f $SYMBOL_DB_FILE  
rm -f $HEAD_FILE  
createTable  
  
touch $HEAD_FILE  
echo '#ifndef YouHui_codeObfuscation_h
#define YouHui_codeObfuscation_h' >> $HEAD_FILE
echo "//confuse string at `date`" >> $HEAD_FILE  
cat "$STRING_SYMBOL_FILE" | while read -ra line; do  
    if [[ ! -z "$line" ]]; then
        base=$(echo -n $line |md5sum |base64 | sed 's/\=//g')
        echo $line $base
        insertValue $line $base
        echo "#define $line $base" >> $HEAD_FILE
    fi  
done  
echo "#endif" >> $HEAD_FILE
  
sqlite3 $SYMBOL_DB_FILE .dump

喜欢的朋友们可以点个赞哈~

上一篇下一篇

猜你喜欢

热点阅读