ios開發安全之----代碼的混淆

1.首先在項目里面創建一個Config文件夾,然后創建兩個文件,分別是

然后將混淆腳本寫入confuse.sh文件里面

!/usr/bin/env bash

TABLENAME=symbols

SYMBOL_DB_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/symbols"

STRING_SYMBOL_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/func.list"

HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/Config/TestCodeConfuscation.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

}

ramdomString()

{

openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 16

}

rm -f $SYMBOL_DB_FILE

rm -f $HEAD_FILE

createTable

touch $HEAD_FILE

echo '#ifndef TestCodeConfuseUse_TestCodeConfuscation_h

define TestCodeConfuseUse_TestCodeConfuscation_h' >> $HEAD_FILE

echo "http://confuse string at date" >> $HEAD_FILE

cat "$STRING_SYMBOL_FILE" | while read -ra line; do

if [[ ! -z "$line" ]]; then

ramdom=ramdomString

echo $line $ramdom

insertValue $line $ramdom

echo "#define $line $ramdom" >> $HEAD_FILE

fi

done

echo "#endif" >> $HEAD_FILE

sqlite3 $SYMBOL_DB_FILE .dump

-------------此腳本來自念茜的微博
2.然后將此Config導入Xcode項目里面,在設置Run Script

在Xcode-->Target--->Build Phases--->添加Run Script

3.然后command + B ,發現運行報錯(Permission denied)
解決方案:

終端輸入進入Config目錄,輸入 chmod 755 confuse.sh , 回車。會生成兩個新文件。

4.將需要混淆的方法名和屬性放入func.list里面,編譯運行生成新的混淆后的方法名在Config里面的.H文件里。

5.最后通過class-dump反編譯回來的方法名是混淆之后的方法名。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言: 在iOS移動端開發中很多時候在考慮安全問題的時候只是單純的請求體加密,但是在一個用戶量級很大的App上就會...
    退役程序猿閱讀 6,251評論 2 17
  • class-dump 可以很方便的導出程序頭文件,不僅讓攻擊者了解了程序結構方便逆向,還讓著急趕進度時寫出的欠完善...
    無灃閱讀 593評論 1 0
  • 1.終端 cd Desktoptouch confuse.sh 隨便找個編輯器打開 confuse.sh文件。拷貝...
    客三消閱讀 1,980評論 2 50
  • 剛剛說了使用宏定義的方式來隱藏頭文件方法名。感覺比較low,有沒有更好的方法來做呢。 創建 confuse.sh,...
    iOS謝先森閱讀 677評論 1 2
  • 如果眼淚可以解決所有問題,也許這一輩子的眼淚都要提前透支了。 今天早晨被老師的一條信息打亂了所以計劃,原本在一個月...
    今聿閱讀 1,622評論 0 0