#!/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
confuse.sh腳本文件
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 使用腳本打包在給ipa命名時,因為用到了build和version,所以需要讀取Info.plist文件內(nèi)容。1、...
- 1、執(zhí)行 “vim test.sh” 創(chuàng)建一個新的shell腳本,腳本 test.sh 的內(nèi)容如下: 2、給新創(chuàng)建...
- 原因是window編寫的腳本上傳到linux服務器存在換行報錯提示,報錯信息如圖 解決方案如果centos服務器安...