LLDB動(dòng)態(tài)調(diào)試

1、連接iPhone手機(jī)

ssh root@123.123.12.123

2、找到啟動(dòng)的進(jìn)程

ps aux

3、找到目標(biāo)進(jìn)程,根據(jù)進(jìn)程名稱進(jìn)行調(diào)試

debugserver localhost:1234 -a jinchengmingcheng

或 根據(jù)進(jìn)程號(hào)進(jìn)行調(diào)試

debugserver localhost:1234 -a jinchenghao例如6666

此時(shí)終端結(jié)果

debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-123.3.23
 for arm64.
Attaching to process jinchengmingcheng...
Listening to port 1234 for a connection from localhost...
Waiting for debugger instructions for process 0.

注意:如果此時(shí)不用usb調(diào)試,需把localhost改為*或?qū)?yīng)手機(jī)IP地址,
命令如下:
debugserver *:1234 -a jinchengmingcheng

但這樣經(jīng)常報(bào)錯(cuò)
lldb報(bào)錯(cuò):
error: failed to get reply to handshake packet
debugserver報(bào)錯(cuò):
error: rejecting incoming connection from

4、用usb調(diào)試,因?yàn)閣ifi調(diào)試非常慢,且經(jīng)常報(bào)錯(cuò),所以這里做端口轉(zhuǎn)發(fā)后,再連接

4.1、下載http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.bz2

4.2、進(jìn)入cd到下載usbmuxd-1.0.8.tar.bz2的目錄中,并執(zhí)行如下命令

tar xjfv usbmuxd-1.0.8.tar.bz2
cd usbmuxd-1.0.8/python-client
python tcprelay.py -t 1234:1234

執(zhí)行結(jié)果

Forwarding local port 1234 to remote port 1234
Incoming connection to 1234
Waiting for devices...
Connecting to device <MuxDevice: ID 456 ProdID 0x7890 Serial 'jfieaojgiajgieiajgiajgijafiojeihguabghfhuehfuaeufu' Location 0x12340000>
Connection established, relaying data
Connection closed

5、新建終端

lldb

6、連接

(lldb) process connect connect://localhost:1234

注意:如果此時(shí)不做端口轉(zhuǎn)發(fā),即不走第4步,需要把localhost改成真實(shí)的手機(jī)IP地址,
可以用如下命令
process connect connect://123.123.12.123:1234
但這樣經(jīng)常遇到連接失敗,報(bào)錯(cuò)如下
error:failed to get reply to handshake packet

等一會(huì)就會(huì)出現(xiàn)

Process 6985 stopped
* thread #1, stop reason = signal SIGSTOP
    frame #0: 0x00000001b29000f4 libsystem_kernel.dylib`mach_msg_trap + 8
libsystem_kernel.dylib`mach_msg_trap:
->  0x1b29000f4 <+8>: ret    

libsystem_kernel.dylib`mach_msg_overwrite_trap:
    0x1b29000f8 <+0>: mov    x16, #-0x20
    0x1b29000fc <+4>: svc    #0x80
    0x1b2900100 <+8>: ret    
Target 0: (picsmagicartae) stopped.

此時(shí)輸入

c

能讓程序繼續(xù)運(yùn)行響應(yīng)外部事件

內(nèi)存真實(shí)地址 = Hopper或IDA中獲取的方法對(duì)應(yīng)的地址 + 模塊加載的基地址

7、對(duì)內(nèi)存真實(shí)地址設(shè)置調(diào)試斷點(diǎn)

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

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

  • 前言 說起動(dòng)態(tài)調(diào)試,大家普遍第一反應(yīng)是通過Xcode 安裝應(yīng)用到真機(jī),然后通過添加斷點(diǎn),添加打印等方式來動(dòng)態(tài)的調(diào)試...
    mark666閱讀 1,577評(píng)論 0 0
  • 1. 前言 若干年前,大家看到iPhone互相問好的第一件事是“你越獄了嗎”。據(jù)不完全統(tǒng)計(jì),早期有80%左右的iP...
    Wind_Z閱讀 13,552評(píng)論 3 40
  • Reveal 簡介 Xcode6開始蘋果已經(jīng)將Reveal查看自己開發(fā)程序界面信息的功能集成到了Xcode中, 程...
    stockholder閱讀 1,490評(píng)論 0 0
  • 1.需要一臺(tái)越獄的iPhone手機(jī) 最好是完美越獄的,越獄比較簡單,直接下載愛思助手或者是PP助手都可以一鍵越獄,...
    九龍閱讀 1,281評(píng)論 0 0
  • 1. 前言 若干年前,大家看到iPhone互相問好的第一件事是“你越獄了嗎”。據(jù)不完全統(tǒng)計(jì),早期有80%左右的iP...
    nongjiazhen閱讀 4,036評(píng)論 0 5

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