天天看点

iOS逆向动态调试

1.拷贝越狱手机/Developer/usr/bin目录下的debugserver到Mac电脑,在mac端输入

scp -P 2222 [email protected]:/Developer/usr/bin/debugserver ~/debugserver
           

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

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

<plist version="1.0">
    <dict>
        <key>com.apple.springboard.debugapplications</key>
        <true/>

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

        <true/>

        <key>task_for_pid-allow</key>

        <true/>

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

        <true/>
    
    </dict>
</plist>
           

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

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

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

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

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

5.终端里输入: scp -P 2222 ./debugserver [email protected]:/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逆向动态调试

继续阅读