教你如何反編譯app,拿到加密方式

2021-09-20 01:29:19 字數 2515 閱讀 3721

安卓是apk 現在基本上apk都是經過加密的 想動態脫殼沒一定的技術是搞不定的

ios是ipa 今天我主要講的是這個

準備好反編譯裝置

1.一套越獄的ios手機 我的裝置是iphone6 ios8.3 已越獄

2.乙個mac系統 可以是vmware上的mac 黑蘋果 或者直接用自己的mac電腦 我為了方便就用了黑蘋果(如何搞黑蘋果可以看我之前發表的部落格)

準備反編譯環境

1. 越獄手機上

1.1 cydia上面安裝 openssh 安裝成功後 可以remote到你的手機 預設的密碼是 alpine

2. mac機器上面準備好 lldb remote debug 環境 (lldb是什麼具體可以搜尋google)

2.1 配置debug server 從 

獲得debugserver 然後複製到桌面(中間的那個 

devicesupport

可以根據具體路徑替換)

2.2 光有這個不行 還得弄下簽名

建立乙個 檔案叫 entitlements.plist 然後用 xcode開啟進行編輯寫入

輸入命令 codesign -s - --entitlements entitlements.plist -f debugserver 之後 把這個 debugserver 傳回 手機裝置 的 /usr/bin/debugserver (可以使用itools工具)

反編譯實驗開始

在mac系統上 ssh連線 手機裝置

2 用clutch -d 2命令進行解密操作

我直接用itools匯出ipa包

這裡有乙個獲取驗證碼的的請求

請求的url裡面有乙個sign引數 一看就知道這個是md5加密

接下來我們就是要拿到這個md5是如何生成的

用ida開啟ipa包(第一次開啟需要花點時間)

按shift+f12開啟 搜尋string關鍵字 "sign"

雙擊進入

繼續雙擊進入 function

按 f5

這裡我們可以得知 加密的類叫 bfcrytor 裡面有乙個 md5方法

在function列表搜尋一下 果然有

好了 已經成功找到了 加密md5的類和方法名稱了

接下來開始最重要的步驟了 要根據 類和方法名稱找到 程式執行的 記憶體位址 然後對這個記憶體位址進行下斷點

1.把ipa包copy到mac系統裡面 然後 用

class

-dump-h

-a-s

-oheaders/

dump出來的標頭檔案裡面標記了 imp 的位址 輸入到 header資料夾

在該資料夾搜尋剛剛我們找到的類名稱 bfcryptor 用xcode開啟

記錄下這個記憶體位址 0x0000000100241e30

lldb 掛載

再開啟另外乙個bash 執行本地命令

> lldb

> platform select remote-ios

> process connect connect://iosip:8888

過一會兒就會看到下面這個就代表掛載成功

獲取 aslr 偏移量

那麼 斷線的記憶體位址 的演算法 就是 基址 + 偏移量

也就是md5 方法的記憶體位址 = 0x00000000000fc000 +

0x0000000100241e30

用下面的命令進行下斷點

用 po 命令列印引數 發現 arg3就是我們md5加密前的資料

接下來 就寫乙個模擬請求實驗一下

請求成功了!!!!!

總結:

iOS應用如何防止被反編譯

ios應用如何防止被反編譯,移動網際網路時代,安卓應用被破解 反編譯早已不是什麼新聞。但是,黑客的胃口是不容小覷的,他們的魔爪又伸向了ios應用,ios應用開發者也必須注意了,看看ios應用如何防止被反編譯 先來看下,ios應用都存在哪些容易被反編譯的風險 1內購破解 ios應用需防反編譯風險之一 ...

iOS 應用如何防止被反編譯

眾所周知,ios系統安全性非常高,很少出現漏洞,幾乎不會中毒的情況。然而隨著技術的不斷的進步和各位工程師的不懈努力,ios的漏洞被發現的越來越多。隨著各種ios安全隱患的出現,人們逐漸認識到,ios跟android一樣也面臨嚴重的安全問題。那麼ios應用都有哪些安全性問題呢?作為一名ios開發工程師...

app反編譯遇到360加固,傻瓜式脫殼

電腦安裝安卓 模擬器,我使用的是雷電模擬器 推薦 開啟模擬器,準備安裝軟體 1.需要脫殼的軟體 2.xp 框架.直接在模擬器應用商店搜尋即可 3.易開發.4.mt 管理器.推薦 當然你用別的檔案管理器也行.打上對勾,然後重啟模擬器.然後開啟易開發.許可權都給上就完了.然後你模擬器邊上會出現以下小懸浮...