1. 程式人生 > >iOS LLDB + debugserver 進行遠端除錯APP

iOS LLDB + debugserver 進行遠端除錯APP

要開始學習一些iOS逆向的一些東西,除錯別人的app自然是必不可少的工作,這個時候除錯利器GDBLLDB自然浮現在腦袋裡。可是試驗後發現用GDB除錯並不好用,而且蘋果推的也是LLDB,所以需要使用LLDB來進行除錯工作。使用LLDB就不像使用GDB進行除錯那麼方便,使用GDB的話直接在Cydia裡面安裝好GDB之後,ssh到你的裝置就可以開始工作了,使用LLDB遠端除錯你越獄裝置上的APP稍微麻煩一點。

準備工作:

1.裝置

一臺越獄了的裝置(裝上OpenSSH)

一臺裝有XcodeMAC

2.環境

2.1,iOS裝置與Mac接入同一個區域網中

2.2使用ssh登入,ssh

[email protected],輸入密碼,預設都是alpine

2.3 ls /Developer/usr/bin 

檢視是不是有debugserver,如果沒有,說明你的手機沒有加入開發裝置,那麼你可以將裝置連線到mac,開啟Xcode,新增裝置,完成之後,debug server就是自動copy到裝置中的剛才提到的目錄

2.4 將裝置中的debugserver拷貝到mac上的指定目錄(例如:/Users/xxx/app

      cd /Developer/usr/bin 

      scp debugserver  [email protected]:指定目錄

2.5 重新簽名上面的

debugserver,重新開啟另外一個終端Terminal

 2.5.1 用xcode建立了的 entitlements.plist放在指定目錄,裡面建立了下面4key,都是YES

    • com.apple.springboard.debugapplications
    • run-unsigned-code
    • get-task-allow
    • task_for_pid-allow

 2.5.2 進行簽名

cd/Users/xxx/app
           codesign -s - --entitlements entitlements.plist -f debugserver

 2.5.3 簽名完成之後將debugserver

複製到你的越獄裝置裡,但是最好不要複製到你裝置上的debugserver所在的目錄,可以執行如下命令

           scp debugserver [email protected]:/usr/local/

3.準備除錯

3.1 返回ssh登入裝置的終端,或者是重新登入裝置

3.2 開啟你想要除錯的APP

3.3 執行 ps aux找到自己想要除錯的APP的資訊,示例如下:

mobile    4113   0.1  1.4   800256  13900   ??  Ss    3:24PM   0:00.38 /var/mobile/Containers/Bundle/Application/9EED7F27-CC78-4EEC-9BDB-132ED541520E/TOCRDemo.app/TOCRDemo

3.4 debugserver所在的目錄下執行./debugserver *:(PID) -a "app-name”,示例如下:

./debugserver *:4113 -a "TOCRDemo"

顯示資訊如下,表明進入等待遠端除錯狀態:

[email protected](#)PROGRAM:debugserver  PROJECT:debugserver-340.3.51.1

 for arm64.

Attaching to process TOCRDemo...

Listening to port 4113 for a connection from *...

3.5 在新建Terminal中輸入命令:lldb

進入lldb環境之後,輸入命令:process connect connect://ClientIP:Port,此處的Port是除錯的APP在裝置上執行的PID

顯示以下資訊表明遠端連線成功


5.除錯開始

LLDB官方說明:LLDB

至此,你需要學習一下彙編咯。

相關推薦

iOS LLDB + debugserver 進行遠端除錯APP

要開始學習一些iOS逆向的一些東西,除錯別人的app自然是必不可少的工作,這個時候除錯利器GDB和LLDB自然浮現在腦袋裡。可是試驗後發現用GDB除錯並不好用,而且蘋果推的也是LLDB,所以需要使用LLDB來進行除錯工作。使用LLDB就不像使用GDB進行除錯那麼方便,使用

對 CasperJS 進行遠端除錯

CasperJS執行在PhantomJS之上,其實也是啟用PhantomJS的遠端除錯功能 PhantomJS 是一個無圖形介面的瀏覽器,它支援各種Web標準:DOM處理,CSS選擇器,JSON,Canvas和SVG。且支援win,linux,osx平臺。 遠端除錯 遠端除錯允許通過另一個基於WebKi

Pycharm對openstack進行遠端除錯

總共分三步: 一. 安裝samba(非必須的) 二. 安裝並配置pycharm 三. 修改openstack的程式碼(以nova為例) 一.為了實現遠端程式碼的map要首先進行如下設定 安裝sa

使用IDA 進行遠端除錯

從4.8 版開始,IDA PRO 支援通過TCP/IP 網路對x86/AMD64 Windows PE 應用程式和Linux ELF 應用程式進行遠端除錯。所謂“遠端除錯”是指通過網路除錯在另一個網路上的計算 機執行的程式碼的過程: l 執行IDA PRO介面的計算機被

Eclipse進行遠端除錯linux 環境的tomcat配置 更新maven web專案

在網上找了找關於遠端除錯的配置,記錄在這裡以備後續查詢! 平常我們都是用windows開發,但是有時候需要將tomcat部署到linux下去執行,比如執行shell指令碼。這個時候我們就需要在linux環境下進行除錯。我們可以利用myeclipse的遠端除錯功能,來進行操

idea中對springboot進行遠端除錯

springboot官方文件:https://docs.spring.io/spring-boot/docs/1.1.x/maven-plugin/examples/run-debug.html 科普一下:為什麼要遠端除錯? 當我們的專案部署到遠端的伺服器的

intellij idea用tomcat進行遠端除錯

1.  首先在IDEA中check out出來你要除錯的工程的程式碼,然後在IDEA開啟這個工程。 2.  因為我們用的是Tomcat,所以在IDEA中點選右上角那個“Edit Configurations”按鈕,然後在彈出的介面中點選左上角的加號,選擇tomcat ser

使用VS進行遠端除錯

開發環境在A主機上(有原始碼,已安裝VS),執行環境在B主機上(無原始碼,未安裝VS,只有可執行程式exe或dll,以及對應的pdb檔案)。 在A主機上使用相同版本的原始碼,對B主機上正在執行的程式進行除錯。 1. 找到A主機上的遠端除錯監視器程式,通常在目錄 D:\Pro

gradle啟動springboot專案進行遠端除錯

gradle+springboot+idea專案進行遠端除錯,分為以下2步 1 首先在伺服器(例如:100.10.100.200)使用gradle 啟動springboot專案,啟動的時候需要設定啟動jvm引數,有兩種途徑    方法1: build.gradle的boot

Flume原始碼分析—利用Eclipse對Flume原始碼進行遠端除錯分析環境搭建(一)

一、引言 最近在學習瞭解大資料分析相關的工作,對於其中用到的收集部分用到了flume,特意花了點時間瞭解了一下flume的工作原理及工作機制。個人瞭解一個新的系統首先從概略上了解一下其基本原理後,接著從原始碼入手瞭解其部分關鍵實現部分,最後會嘗試去修改部分內容

IDEA 14在MAC下如何對tomcat進行遠端除錯

在開發過程中,有時需要進行遠端除錯,使用IDEA如何進行遠端除錯呢,其實很簡單,首先tomcat需要開啟遠端除錯,如何開啟呢?參考另一篇文章。 然後在IDEA中設定如下: 1、開啟配置頁面 2、新增遠端除錯配置 3、進行引數配置 其中Host為遠端伺服器的地址,當然

如何對生產環境的JAVA應用進行遠端除錯

JAVA自身支援除錯功能,並提供了一個簡單的除錯工具--JDB,類似於功能強大的GDB,JDB也是一個字元介面的除錯環境,並支援設定斷點,支援執行緒線級的除錯。  1.在伺服器上的程序啟動引數中新增:

使用Eclipse+tomcat進行遠端除錯

轉自http://blog.csdn.net/sunyujia/article/details/2211109 今天決定做件有意義的事,寫篇圖文並茂的blog,為什麼要圖文並茂?因為很多事可能用語言也說不明白,從以前我發表的一篇文章可以看得出來,http://blog.cs

Eclipse 進行遠端除錯Windows Tomcat配置

以前看到別人使用除錯遠端程式碼感覺好牛逼的樣子,前一段時間想學來著,但是由於實際工作中暫時沒有用上最終沒學會,好悲傷!今天終於需要用了,Google+Baidu了一堆,終於將Windows Tomcat遠端除錯給學會了,不吹牛逼了,進入正題。 1. 配置windows to

GDB遠端除錯錯誤解決 使用GDB 7.2版本進行遠端除錯時出現:Remote ‘g’ packet reply is too long錯誤

GDB遠端除錯錯誤解決使用GDB 7.2版本進行遠端除錯時出現:Remote ‘g’ packet reply is too long錯誤,需要修改gdb程式碼解決,辦法是:修改gdb/remote.c檔案,遮蔽process_g_packet函式中的下列兩行:if (bu

window系統tomcat進行遠端除錯

1.命令列啟動遠端除錯 java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -jar xxx.jar 2.tomcat將引數新增到Java Options: 3.idea

通過Intellij IDEA對tomcat進行遠端除錯

前提 intellij idea 14 ultimatelinuxjdk 1.8tomcat 7.0.x 1. 配置Intellij IDEA 新增配置,選擇tomcat Server->Remote 選擇startup/connection標籤->d

利用webstrom以及sftp,supervisor進行遠端除錯node.js

概述 開發oj使用lrun進行判題時間的控制和檢測。lrun使用了linux特有的特性,故只能再linux下執行他,伺服器使用docker部署的話也是需要linux環境。之前做實驗的時候是採取的手動上傳手動重啟node,開發效率非常之低。 現在通過這webs

一步一步用debugserver + lldb代替gdb進行動態除錯(整理與補充)

原文章出處:http://bbs.iosre.com/t/debugserver-lldb-gdb/65/12 *** 以下部分內容摘自《iOS應用逆向工程》第二版,以iOS 8為環境編寫,應該也支援iOS 7,請大家注意。 *** 因為Apple已經棄gdb投lldb,所以隨著我動態除錯的次數越來越頻繁,

hbuilder 連線夜神模擬器,對app進行模擬器除錯

分別啟動hbuilder 和夜神模擬器 對app進行模擬器除錯之前需要安裝好android-sdk tools 不會安裝的請看我的另一篇文章https://blog.csdn.net/qfxlw/article/details/83098051和https://blog.csdn.net/