gpt4 book ai didi

iphone - iPhone 设备上的 gdb 未在断点处停止

转载 作者:行者123 更新时间:2023-12-03 20:15:31 27 4
gpt4 key购买 nike

我正在调试没有符号表的 iPhone 应用程序。该设备已越狱,我通过传递 pid 将 gdb 本地附加到设备上(在 gdb 中启动应用程序似乎无法在 iOS 5 上工作)。我设置的断点都没有被触发。我将断点设置在类转储的偏移量处,但我认为由于 iOS 5 中的 ASLR,它们没有被击中。

我尝试使用此处的脚本删除 MH_PIE 标志 http://src.chromium.org/viewvc/chrome/trunk/src/build/mac/change_mach_o_flags.py?view=markup otool 显示操作正确。但是,更改后应用程序不再启动。

是我设置的断点错误还是因为 ASLR?如果是随机化,那么我如何在设备上有效地禁用它?

最佳答案

如果您只想使用 GDB 调试应用程序,那么通过 MH_PIE 标志禁用 ASLR 就可以了。由于该程序修补了二进制文件,因此您将需要退出该应用程序。使用名为 ldid 的程序(来自 Cydia 中名为“Link Identity Editor”的包),您可以对应用程序进行伪代码设计。

root# cd /var/mobile/Applications/*/Example.app/
root# mach_flags --no-pie Example
root# ldid -s Example
root# gdb
(gdb) attach -waitfor Example

然后只需点击应用程序的图标即可。该应用程序将显示为挂起。从此时开始,返回 GDB,它应该被加载。现在,只需使用 b *0x<address> 设置断点即可并且您可以完全忽略 ASLR,因为它已被禁用。

关于iphone - iPhone 设备上的 gdb 未在断点处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9374701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com