iOS逆向iOS_REiOS开发之常用技术点

debugserver + lldb环境搭建

2016-09-06  本文已影响1987人  胡小夜大叔
  1. 重签debugserver
    找到你Xcode的位置,右键打开包内容,然后按如下路径找到和你手机系统对应的DeveloperDiskImage.dmg


    D6A64ABA-54CE-40B6-BBC7-55A5FBEB5B8D.png

    打开DeveloperDiskImage.dmg,找到/usr/bin/debugserver


    9348A0BC-E590-4AEE-BDBD-5EDC0CC168F9.png
    拷贝一份debugserver到桌面上,之后我们就对桌面上的做操作
    cp /Volumes/DeveloperDiskImage/usr/bin/debugserver ~/Desktop/debugserver
    想让debugserver成功跑起来要做两件事
  1. 把重签名的debugserver放到手机上
    执行命令:
    scp -p 22 debugserver root@yourPhoneIp:/usr/bin/
    之后就可以用ssh登录手机,直接使用debugserver命令了。
    如果使用失败先看下debugserver有没有可执行权限,如果没有,则给予r权限:
    chmod 777 /usr/bin/debugserver
    (PS:其实还有一种方法,如果你手机连接过xcode做过任何调试,在你手机的 /Developer/usr/bin/ 目录下会有个debugserver,你也可以把这个传到电脑上,重签名后再传回到手机上,这样的好处是不用瘦身,这个debugserver对应的指令集就是手机的指令集)
  2. 远程调试
    手机上你可以通过命令开启debugserver:
    debugserver *:1212 -a <process name>
    参数大概说一下,这里的 * 是指任何ip都可以连接这个debugserver,1212是指连接端口,你可以设置一个没有被占用的,-a 后可以跟进程id,或进程名字。debugserver的wiki
    成功的话会有类似的log:
    debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 for arm64.
    Attaching to process WeChat...
    Listening to port 1212 for a connection from *...
    如果出现:
    error: failed to attach to process named: "" unable to start the exception thread
    请查一下签名那块的步骤,或者重新拿一个原始的重新签一下,要是觉得是ldid的问题,就换ldid。
    如果一切顺利,你手机端已经开启了debugserver。
    重新打开一个你电脑的终端,执行命令:
    imac3deiMac:Desktop hp$ lldb
    (lldb) process connect connect://yourPhoneIp:1212
    稍等一下,之后就会连接成功,然后就可以利用lldb的命令行,来调试连接的App了。lldb和GDB的对照表
上一篇下一篇

猜你喜欢

热点阅读