iOS 逆向:動態(tài)調試其它APP的兩種姿勢

動態(tài)調試其它APP的兩種姿勢:

1. 拿到可執(zhí)行文件動態(tài)調試APP,有兩種方案:

1.1 通過開發(fā)證書簽名,修改應用的權限文件,用Xcode直接Attach應用進程ID
Code signing Entitlements中有一項很重要的key值,就是get-task-allow,
get-task-allow決定了這個app能否被Xcode調試。一般來說,上架了的程序,這個key值為空,默認為NO。
步驟:
        1. ldid -e ./wework > ./wework.plist    
        2. 修改wework.plist 中的 get-task-allow:YES
        3. ldid -Swework.plist ./wework
        4. chmod 755 ./wework
        5. 用開發(fā)證書重新打包并安裝至越獄機上
1.1.1 我以企業(yè)微信為例子:
Xocde Attach wework進程
1.1.2 通過Xcode調試工具看UI界面:
由此可見:
    1. 企業(yè)微信登錄所在的控制器是:WWKWeChatLoginViewController
    2. 點擊微信登錄按鈕調用的方法是:loginButtonClicked:
通過Xcode查看界面UI
1.1.3 通過Hopper Disassembler工具查看loginButtonClicked:在內存中具體位置
Hopper Disassembler工具查看函數(shù)具體的內存地址
1.1.4 由于使用了ASLR技術,斷點得加上一段偏移
        breakpoint set - a 時得加上這一段偏移
        image list -o -f | grep wework  
        breakpoint set -a  0x00000001009f8a88(hopper里的方法地址)+0x00000000000e4000(地址偏移)
斷點打印成功

1.2 通過Debugserver + Reveal + LLDB調試APP

1.2.1 我以調試微信APP為例
步驟:   
     1. 先開個命令行轉發(fā)端口: python tcprelay.py -t 22:10010
     2. 再開個命令行轉發(fā)端口: python tcprelay.py -t 10011:10011
     3. 開個命令行登錄手機:
             3.1 ssh root@localhost -p 10010 
             3.2 debugserver *:10011 -a "WeChat"
     4. 開個命令行登錄手機:
             4.1 ssh root@localhost -p 10010  
             4.2 實用cycript調試應用  
     5. 開個命令行使用LLDB:
             5.1  lldb
             5.2 process connect connect://localhost:10011
成功Attch 上微信APP
1.2.2 通過Reveal找到需要調試的視圖
WechatIMG432.png
1.2.3 找到點擊聲音鎖登錄調用的函數(shù)onLastUserVoicePrintLogin:
點擊聲音鎖登錄調用的函數(shù)
1.2.4 通過Hopper Disassembler工具查看onLastUserVoicePrintLogin:在內存中具體位置
Hopper Disassembler工具查看onLastUserVoicePrintLogin:在內存中具體位置
1.2.5 由于使用了ALSR技術,所以斷點應該這樣打:
        image list -o -f | grep WeChat  
        breakpoint set -a  0x000000010245e318(hopper里的方法地址)+0x00000000000f4000(地址偏移)
斷點打印成功
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容