美文网首页
IOS逆向_动态调试:debugserver

IOS逆向_动态调试:debugserver

作者: 一杯开水 | 来源:发表于2019-11-02 11:28 被阅读0次

    1. 动态调试的概念;

    2. Xcode动态调试的原理;

    3. 通过debugserver调试APP;


    1. 动态调试的概念;

            􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝􏰎􏰏􏰐􏰑􏰒􏰓􏰔􏰕􏰖􏰗􏰘􏰙􏰚􏰅􏰛􏰜􏰝􏰞􏰟􏰕􏰠􏰡􏰢􏰣􏰅􏰤􏰥􏰦􏰅􏰧􏰣􏰋􏰨􏰩􏰏􏰝将程序运行起来,通过断点、打印等方式,查看参数、返回值、函数调用的流程。


    2. Xcode动态调试的原理;

    xcode调试原理

                 2.1  LLDB:LLDB全称为low level debugger,是xcode自带的动态调试工具,可用于c,c++,objective-c,全盘支持iOS,OSX以及iOS模拟器。

                        LLDB有以下四个功能:①.在特定的情况下暂停程序;②.在特定的情况下启动程序;③.在程序停止的情况下检查程序内部;④.在程序停止的情况下改动程序,观察执行过程。

                2.2 debugServer:debugserver是运行在iOS程序中的,顾名思义,作为server端,它接受与来自服务端,也就是LLDB传送过来的命令,继而执行的操作。再把执行结果返回给LLDB,默认情况下, iOS并没有安装debugserver,只有在设备连接了一次xcode之后,并在window->device中添加此设备之后,debugservercai才会别安装到iOS中,默认位于Developer/usr/bin目录下;默认的debugserver只用用户调试我们自己的app。

                2.3 Xcode调试的局限性:􏰄􏱏􏱐􏱑􏰘􏰕􏱒􏱓􏰋􏰌􏰖􏰗一般情况下,智能调试通过Xcode安装到手机上的􏱉􏱊􏰫APP。


    3. 通过debugserver调试任意APP;

                3.1 默认情况下,/Developer/usr/bin/debugserve(此文件夹是只读属性的)缺少一定的权限,只能调试通过Xcode安装的APP,无法调试其他APP(例如:测试平台安装的APP、APP Store下载的APP)。

    debugserver

                3.2 如果希望调试其他APP,需要对debugserver重新签名(签名详细操作步骤)、签上以下两个权限:

                           ①.  get-task-allow;

                           ②. task_for_pid-allow;

    添加权限

                3.3 将重新签名的debugserver放到手机的/usr/bin目标,便于找到debugserver的指令;

                3.4 让debugserver附加到某个APP进程;

                        debugserver *:􏳬􏳭􏳂 端口号 -a 􏲬􏰏 进程ID||进程名称

    实例

                       3.5 新建终端页面,进入LLDB,开始进行调试(输入lldb后,APP会进入断点模式):

    实例

                    3.6 通过debugserver启动某个APP应用程序:

                        ¥ debugserver -x auto *:端口号 APP可执行文件的路径。


    (PS : 其中有部分章节是从前人的文章中搬运过来整理而成,这些文章里已经对部分知识点解释的很清楚明了了,我也没有更好的表达方式,所以站在巨人的肩膀上,我只是一个整理者加了部分自己的理解。)

    相关文章

      网友评论

          本文标题:IOS逆向_动态调试:debugserver

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