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
- iOS逆向工程之Hopper+LLDB调试第三方App
- iOS逆向工程之Hopper+LLDB调试第三方App
- iOS逆向工程之Hopper+LLDB调试第三方App
- iOS逆向工程使用LLDB的USB连接调试第三方App
- iOS逆向工程之使用LLDB
- iOS逆向工程之Hopper中的ARM指令
- iOS逆向工程之Hopper中的ARM指令
- iOS逆向工程之Hopper中的ARM指令详解
- Hopper Disassembler基础使用-iOS逆向工程
- iOS逆向工程之给App脱壳
- iOS逆向工程之App脱壳
- iOS逆向工程之App脱壳
- iOS逆向工程之App脱壳
- iOS逆向工程之App脱壳
- LLDB远程动态调试三方app
- 在非越狱设备上使用 LLDB 调试第三方 App
- Hopper + LLDB
- 写给 iOS 开发者的 Hopper + lldb 简介
- 文件上传获取属性时:File has been moved
- hdu5776sum
- 5种方法告诉你怎么从图片中提取文字
- 任学堂说科技:人工智能正在给银行界带来一次风暴
- excel中大神级别的操作技巧,每一个都是绝世操作,厉不厉害!
- iOS逆向工程之Hopper+LLDB调试第三方App
- 牛逼的代码注释之佛祖保佑
- ie 64bit调用activex控件
- 基于Nodejs在远程服务器部署静态资源
- Mathematics for computer science-Propositions
- OpenResity + nginx + mysq配置
- 接口自动化测试 – Java+TestNG 测试 Restful Web Service
- Linux C/C++编程手册查阅方法
- Linux(Ubuntu)下如何安装JDK