通过LLDB调试OSX App的发行版

问题描述 投票:0回答:2

我正在尝试通过LLDB调试OSX桌面应用程序(Mac os catalina 10.15.3)。

lldb path/to/Electron.app
>>> Current executable set to 'path/to/Electron.app' (x86_64).

此后,我可以成功地将断点添加到调试器,但是当我尝试使用runprocess launch运行应用程序时,它总是会给我:

error: process exited with status -1 (Error 1)

还有附加到pid的另一个问题。它给我一个错误,无法附加到该进程。

lldb -p 41324
>>> error: attach failed: Error 1

为什么不能在调试器中反汇编程序?

c assembly reverse-engineering lldb cracking
2个回答
2
投票

在macOS上,调试器只能附加到某个进程,只要该进程已将自己标记为具有适当的权利,并且愿意将其标记为要调试。 Xcode通常使用此权利构建Debug版本,而没有此权利的Release版本。当lldb尝试附加到不想调试的进程时,这是您看到的错误。这是一个信息少的错误,因为拒绝连接的代理与lldb隔离,并且没有办法向我们提供更多信息。

但是请注意,您无需运行程序即可对其进行反汇编。在调试二进制文件时,也可以使用反汇编命令。


0
投票

我只是找到了一种调试方式,并且不限制任何root用户可访问性...关于苹果的系统完整性保护https://support.apple.com/en-us/HT204899

并且如果您愿意禁用系统完整性保护,请小心并知道您在做什么。

这里是有关如何禁用系统完整性保护的文章https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d

© www.soinside.com 2019 - 2024. All rights reserved.