越狱手机的动态调试

一、cycript

通过在手机上安装Cycript插件,通过usb或者wifi连接手机后,cycript -p xxxx依附相关进程,便可使用。

usr/bin中

导入自定义命令的cy文件

1、拷贝cy文件到usr/lib中。

scp -P 12345 cy电脑路径 root@localhost:/usr/lib/cycript0.9/

2、import自己的dy文件,便可写入cycript命令。

<< 补充
如果cy文件过多,我们导入的时候可以对其通过放置于不同的文件夹进行分类。

mv dyTest.cy ./dySource

二、Reveal

准备

1、在手机上安装RevealLoader或者Reveal2Loader插件。


2、在手机指定目录创建名为RHRevealLoader的文件夹。

Dyoung5s:/ root# cd Library
Dyoung5s:/Library root# pwd
/Library
Dyoung5s:/Library root# mkdir RHRevealLoader
Dyoung5s:/Library root# ls
Application Support  Keychains        MobileDevice       RHRevealLoader
Audio            LaunchAgents     MobileSubstrate    Ringtones
Caches           LaunchDaemons    PreferenceBundles  Updates
Filesystems      Lockdown         PreferenceLoader   Wallpaper
Frameworks       Logs         Preferences
Internet Plug-Ins    Managed Preferences  Printers

3、在mac上下载最新的Reveal,通过Help->Show Reveal Library in Finder ->iOS Library
将finder中的RevealServer.framework中的RevealServer可执行文件拷贝到之前手机创建的文件夹中。

scp -P 12345 RevealServer路径 root@localhost:/Library/RHRevealLoader

4、将手机中的RevealServer可执行文件重命名为动态库

Dyoung5s:/Library/RHRevealLoader root# mv RevealServer libReveal.dylib
Dyoung5s:/Library/RHRevealLoader root# ls
libReveal.dylib
使用

1、打开手机设置->Reveal->Enabled Applications->选择自己要进行调试的应用。


2、mac进入Reveal中,即可出现如下显示。

3、选择usb或者wifi调试进入调试界面,便可以动态调试界面。

三、lldb调试

1、对比手机和Xcode包内容中的debugServer
a -> 包内容中



b -> 手机目录:/Developer/usr/bin

c -> 对比得知,同系统下的debugserver是一样的。


2、为debugserver写入权限,并拷贝至手机的/usr/bin中。
a -> 创建名为entitlement.plist的权限文件。内容如下

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

b -> 将权限文件写入到debugserver中。通过ldid -e debugserver命令可以检查是否写入陈宫。

codesign -s - --entitlements entitlement.plist -f debugserver

c -> 将权限写入成功的debugserver文件拷贝至手机/usr/bin目录中。

scp -P 12345 debugserver root@localhost:/usr/bin

3、使用
a -> 开启server服务,并依附到某个进程。(*代表当前主机地址,9393是端口号)

Dyoung5s:/Developer/usr/bin root# debugserver *:9393 -a WeChat
debugserver-@(#)PROGRAM:debugserver  PROJECT:debugserver-320.2.89
 for arm64.
Attaching to process WeChat...
Listening to port 9393 for a connection from *...

b1 -> 电脑端进入lldb环境中,进行wifi连接

//192.168.0.21 手机ip地址。
process connect connect://192.168.0.21:9393

b2 -> 配置并进行usb连接
修改映射端口的脚本,加入手机开发的端口号:



通过执行脚本,便可检查脚本是否修改成功。



连接端口。
process connect connect://localhost:9393
补充

当手机开启端口并依附到进程中时,进程便进入暂停状态。这时如果下断点推荐通过内存地址的方式。

一些命令

  • process interrupt: 进程暂停。
  • c :进程继续。

其它详见lldb

参考链接:

  • debugserver的配置

你可能感兴趣的:(越狱手机的动态调试)