"專注實踐:解析lldb砸殼實戰(zhàn)技巧"

上一篇文章: "舉一反三:iOS逆向App簽名"

"金蛋破殼:iOS應用砸殼工具解密",介紹了如何通過工具砸殼,讀者朋友可以先閱讀一下。

本篇文章,我們將使用LLDB進行手動砸殼操作,以增強對iOS應用程序的逆向分析能力。

  • LLDB砸殼實現(xiàn)的原理

使用lldb砸殼是一種常見的逆向工程技術(shù),旨在繞過iOS應用程序的加密保護,以便進行更深入的分析和調(diào)試。

通過lldb連接到運行中的應用程序,找到其可執(zhí)行文件的內(nèi)存地址,并將其內(nèi)容dump到本地文件中。

這樣,我們就可以繞過加密保護,獲得對應用程序的完全訪問,并進行后續(xù)的逆向分析工作。

本篇以某App為例,進行砸殼

下載好你想砸殼的App
  • 我們找到App的可執(zhí)行文件
 ps -ax | grep app

 4215 ??         0:13.06 /var/containers/Bundle/Application/5C560292-9C39-4080-9D7A-3D83413EB127/app/app
  • 把可執(zhí)行文件拷貝到電腦,通過otool 查看二進制文件的信息
otool -arch arm64 -l 二進制 | grep -C5 LC_ENCRYPTION
       cmd LC_MAIN
   cmdsize 24
  entryoff 2361676
 stacksize 0
Load command 12
          cmd LC_ENCRYPTION_INFO_64
      cmdsize 24
     cryptoff 16384
    cryptsize 34504704
      cryptid 1
          pad 0
cryptid為1,即為加密
  • 我們通過lldb進行進程附加
(lldb) image list
[  0] E11692A0-C528-3ADD-8B12-6BA7F7F8D51F 0x0000000100b80000 /private/var/containers/Bundle/Application/5C560292-9C39-4080-9D7A-3D83413EB127/app/二進制 (0x0000000100b80000)
  • memory read --force -outfile ./Decrypted.bin --binary --count 34504704 0x0000000100b80000+16384
34504704 bytes written to 'Decrypted.bin'

獲取解密的數(shù)據(jù)Decrypted.bin

  • 用解密后的數(shù)據(jù)替換原加密數(shù)據(jù)
dd seek=16384 bs=1 conv=notrunc if=./Decrypted.bin of=二進制 
  • MachOView -> LC_ENCRYPTION_INFO 修改cryptid為0

在脫殼后,我們需要驗證一下class-dump是否可行,以確認解密的Mach-O文件是否成功解密。

砸殼成功后,使用工具對其進行分析,例如 class-dump、Hopper、IDA 等,以查看其中的內(nèi)容。

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

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

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