iOS逆向动态调试

1.拷贝越狱手机/Developer/usr/bin目录下的debugserver到Mac电脑

2.对debugserver进行瘦身(iOS11可以不用瘦身,因为只支持64位构架的程序),在debugserver所在目录输入lipo -info debugserver . 在终端输入:lipo -thinarmv7 debugserver -output debug-server

3.在xcode里新建一个plist文件

com.apple.springboard.debugapplications

    <true/>

    <key>get-task-allow</key>

    <true/>

    <key>task_for_pid-allow</key>

    <true/>

    <key>run-unsigned-code</key>

    <true/>

然后把plist文件拷贝到电脑的debugserver同一个目录下 ,在终端输入

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

可以给我们的debugserver赋上task_for_pid权限。

4.然后在终端里输入: codesign -d --entitlements - ./debugserver

查看授权文件描述, plist文件写入的东西

5.终端里输入: scp -P 2222 ./debugserver root@localhost:/usr/bin/debugserver

将debugserver拷贝到手机

6.ps aux 查看手机进程

7.Mac切换到手机 cd /usr/bin/ 以后, 输入chmod +x debugserver,给权限

10.debugserver *:1234 -a WhatsApp

11.新开一个终端,先做端口转发:iproxy 1234 1234,这样能更快的连接,新开一个终端:lldb 回车,做了端口转发输入: process connectconnect://localhost:1234,没做端口转发输入

process connectconnect://IP

12.连接成功后,输入c继续,然后image list -o -f ,获取基地址

13.拷贝基地址,然后在Hopper里运行你砸完壳以后的 可执行文件,然后找你想调试的函数名,记录下这个函数名的偏移地址,

然后在终端输入br s -a ’基地址+0x偏移地址’,开始断点调试。
iOS逆向动态调试

上一篇:C++ string和char类型字符串转换代码


下一篇:二叉树+负载均衡+MySQL+Redis+高并发-拼多多Java开发1234面 终于上岸了