美文网首页ios 开发
iOS逆向-动态调试

iOS逆向-动态调试

作者: iOS小洁 | 来源:发表于2023-01-10 21:33 被阅读0次

    动态调试

    将程序运行起来,通过断点,打印等方式,查看参数,返回值,函数调用流程等

    Xcode动态调试原理

    xcode 的编译器发展历程:GCC --> LLVM

    xcode 的调试器发展历程:GDB --> LLDB

    LLDB 通过 debugserver 来调试app。debugserver 存放在xcode里面,当xcode识别到手机设备时,会自动将debugserver安装到iPhone上。

    在Xcode中路径 :/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/9.1/DeveloperDiskImage.dmg/usr/bin/debugserver

    Xcode只能调试通过Xcode安装的APP

    debugserver权限

    默认情况下debugserver缺少一定权限,只能调试通过Xcode安装的app,无法调试其他APP

    如果需要调试其他APP,需要对debugserver重新签名,签上两个调试相关的权限,get-task-allowtask_for_pid-allow

    将签好权限的debugserver放到/usr/bin目录,便于找到debugserver指令

    让debugserver附加到APP上

    debugserver *:端口号 -a 进程
    
    • *:端口号
      • 使用iPhone的某个端口启动debugserver服务(只要不是保留端口即可)
    • -a 进程
      • 输入app的进程信息(进程ID或者进程名称)

    Mac启动LLDB,链接手机上debugserver服务

    启动lldb

    lldb
    

    链接debugserver服务

    (lldb) process connect connect://手机IP地址:debugserver服务端口号
    

    使用lldb的c命令,让程序先继续运行

    接下来即可使用LLDB命令调试App

    通过debugserver启动APP

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

    相关文章

      网友评论

        本文标题:iOS逆向-动态调试

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