confuse.sh腳本文件

#!/bin/bash
# 這是Shell腳本,如果不懂shell,自行修煉:http://www.runoob.com/linux/linux-shell.html
# 以下使用sqlite3進行增加數(shù)據(jù),如果不了解sqlite3命令,自行修煉:http://www.runoob.com/sqlite/sqlite-tutorial.html

#數(shù)據(jù)表名
TABLENAME=symbols

#數(shù)據(jù)庫名
SYMBOL_DB_FILE="symbols"

#要被替換的方法列表文件
STRING_SYMBOL_FILE="$PROJECT_DIR/func.list"

#被替換后的宏定義在此文件里
HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/CodeObfuscation.h"

export LC_CTYPE=C

#維護數(shù)據(jù)庫方便日后做bug排查
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
}

#生成隨機16位名稱
randomString()
{
openssl rand -base64 64 | tr -cd 'a-zA-Z' | head -c 16
}

#刪除舊數(shù)據(jù)庫文件
rm -f $SYMBOL_DB_FILE

#刪除就宏定義文件
rm -f $HEAD_FILE

#創(chuàng)建數(shù)據(jù)表
createTable


#touch命令創(chuàng)建空文件,根據(jù)指定的路徑
touch $HEAD_FILE
echo '#ifndef CodeObfuscation_h
#define CodeObfuscation_h' >> $HEAD_FILE
echo "http://confuse string at `date`" >> $HEAD_FILE

#使用cat將方法列表文件里的內(nèi)容全部讀取出來,形成數(shù)組,然后逐行讀取,并進行替換
cat "$STRING_SYMBOL_FILE" | while read -ra line;
do
if [[ ! -z "$line" ]]
then
random=`randomString`
echo $line $random

#將生成的隨機字符串插入到表格中
insertValue $line $random

#將生成的字符串寫入到宏定義文件中,變量是$HEAD_FILE
echo "#define $line $random" >> $HEAD_FILE
fi
done

echo "#endif" >> $HEAD_FILE

sqlite3 $SYMBOL_DB_FILE .dump

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容