iOS逆向工程之Hopper+LLDB调试第三方App

来源:互联网 发布:ubuntu grub2启动顺序 编辑:程序博客网 时间:2024/05/17 01:06

前言

我开发logos tweak 项目的时候,通常 利用iosre的hopper、theos、MonkeyDev、运行时常用的API 进行开发。结合Cycript、hopper、KNHook、以及AFLEXLoader进行分析快速找到入口。

  • 项目例子: tweak集成CocoaAsyncSocket
  • KNHook
  • [program named debugserver (found in Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/) is responsible for attaching to a target process.

1、usbmuxd
2、配置debugserver

参考文章这里写链接内容

三、debugserver的开启与LLDB的连接

1.开启debugserver

在越狱设备中,我们就可以通过下方命令行来开启debugserver了,我们此处以调试微信App为例。
下方的命令就是启动debugserver来监听来自任何IP地址的接入,
iOS设备的接入端口是12345,所要调试的App为“WeChat”。命令如下:

  debugserver host:port --attach=<process_name>
iPhone:/usr/bin root# debugserver *:12345 -a "WeChat"debugserver-@(#)PROGRAM:debugserver  PROJECT:debugserver-320.2.89 for armv7.Attaching to process WeChat...Listening to port 12345 for a connection from *...

2.LLDB连接debugserver

LLDB连接debugserver可以使用WIFI进行连接,可是WIFI是不稳定的,而且特别的慢,所以此处我们要使用usbmuxd进行LLDB和debugserver的连接。

(1)进行端口的转发

和第一部分中的内容相同,我们使用usbmuxd进行端口的转发,将上述的“12345”端口对接到Mac本地的某个端口,
此处我们使用“12345”端口。进入到usbmuxd-1.0.8目录下的python-client下执行下方的命令。

devzkndeMacBook-Pro:python-client devzkn$ python tcprelay.py -t 12345:12345Forwarding local port 12345 to remote port 12345

(2)Mac端LLDB的接入

进行端口转发后,接下来我们就开始进入lldb模式,然后进行debugserver的连接了。
首先在terminal上输入lldb命令,然后输入下方的地址进行连接。因为我们使用usbmuxd进行了端口的转发,因此可以使用本地的环回测试地址来进行debugserver的连接。

process connect connect://127.0.0.1:12345

下方是连接后的结果,LLDB与debugserver建立完成后,我们就可以使用lldb来调试微信这个应用了。

devzkndeMacBook-Pro:~ devzkn$ lldb(lldb) process connect connect://localhost:12345Process 7291 stopped* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP    frame #0: 0x361e7708 libobjc.A.dylib`objc_release + 8libobjc.A.dylib`objc_release:->  0x361e7708 <+8>:  ldrb   r1, [r1, #0x10]    0x361e770a <+10>: tst.w  r1, #0x2    0x361e770e <+14>: itt    ne    0x361e7710 <+16>: movne  r1, #0x1

WeChat”这个进程在虚拟内存相对于模块基地址的偏移量。

(lldb) image list -o -f[  0] 0x00082000 /private/var/mobile/Containers/Bundle/Application/01ECB9D1-858D-4BC6-90CE-922942460859/WeChat.app/WeChat(0x0000000000086000)

四、Hopper +LLDB