美文网首页
Xcode动态调试原理【转】

Xcode动态调试原理【转】

作者: 化二缺 | 来源:发表于2020-04-01 15:58 被阅读0次
image

当Xcode识别手机设备时, Xcode会自动将 debugserver 安装到 iPhone上

Xcode创建一个项目调试app时候,中间介质是这个debugserver, lldb命令传给debugserver,debugserver将命令转给app,app将反馈信息给debugserver debugserver将返回给lldb

<举个粟子>:
创建一个 testApp, 运行到iOS8.1的越狱手机上

debugserver目录位置是:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/De viceSupport/8.1/DeveloperDiskImage.dmg
双击DeveloperDiskImage.dmg  下面的 /usr/bin/debugserver 目录中找到debugserver

默认情况下 /Developer/usr/bin/debugserver 缺少一定权限Xcode,只能调试通过Xcode安装的app,无法调试其它app (来自 App Store的app) 这时候需要动态调试app

image

如果希望调试其它app,需要对debugserver重新签名, 签上2个权限

  • get-task-allow
  • task_for_pid-allow
当然你也可以将SpringBoard的权限导出 给debugserver
// 将debugserver拷贝到桌面,导出他的权限步骤
1. ldid -e debugserver > debugserver.entitlementns  // 导出debugserver权限
2. 给debugserver 添加 get-task-allow  和  task_for_pid-allow  权限
3. ldid -Sdebugserver.entitlementns  debugserver // 将新的权限赋值给debugserver

将重新签好权限的debugserver 放到手机 /usr/bin 目录,便于找到debugserver 指令(可以在命令行敲出...)
将debugserver 放到 usr/bin 下面后 还是不能正常使用 ,做如下操作:

给debugserver 添加执行权限 ,就可以了!

image

debugserver附加到某个APP进程:

<debugserver *:端口号 -a 进程名字>
<通过USB来调试app, 如果这样的话 需要更改 usb.sh 文件>

*:端口号 使用 iPhone的某个端口启动debugserver
服务(不是系统和已经使用的端口就可以)

-a 进程 输入app的进程信息(进程ID或者名称)

启动 LLDB : 命令行输入lldb

image
image image

监听成功:

image image

终端已经成功监听后 手机卡住 点击按钮无反应
输入 c 停止 卡住状态 如下图:

image image

</article>

1人点赞

日记本

作者:majianjie
链接:https://www.jianshu.com/p/53bfaa81cbb9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • iOS逆向 | 如何通过LLDB实现动态调试

    Xcode动态调试的原理 Xcode动态调试的原理,涉及到两个工具,LLDB以及debugserver。debug...

  • Xcode动态调试原理【转】

    当Xcode识别手机设备时, Xcode会自动将 debugserver 安装到 iPhone上 Xcode创建一...

  • iOS逆向:动态调试

    目录一,Xcode动态调试的原理二,终端动态调试的原理三,建立连接四,LLDB常用命令五,ASLR 一,Xcode...

  • IOS逆向_动态调试:debugserver

    1. 动态调试的概念; 2. Xcode动态调试的原理; 3. 通过debugserver调试APP; 1. 动态...

  • 十二 iOS逆向-动态调试

    动态调试概念 Xcode动态调试原理 调试任意第三方App LLDB简介 一 动态调试概念 就是在程序运行的过程中...

  • 【逆变】动态调试_lldb

    XCode动态调试原理 debugserver 一开始存放在Mac的XCode里面(/Applications/X...

  • iOS逆向-动态调试

    动态调试 将程序运行起来,通过断点,打印等方式,查看参数,返回值,函数调用流程等 Xcode动态调试原理 xcod...

  • Xcode动态调试原理

    当Xcode识别手机设备时, Xcode会自动将 debugserver 安装到 iPhone上 Xcode创建一...

  • Class - dump

    逆向原理 动态调试 通过界面调试Cycript\Xcode LLDB!静态分析 利用我们之前学习的汇编代码,分析三...

  • 动态调试

    动态调试简介 将程序运行起来,通过下断点,打印等方式,查看参数,返回值,函数调用流程等。 Xcode的动态调试原理...

网友评论

      本文标题:Xcode动态调试原理【转】

      本文链接:https://www.haomeiwen.com/subject/jwdauhtx.html