C 通过LLDB调试OSX应用程序的发布版本

C 通过LLDB调试OSX应用程序的发布版本,c,assembly,reverse-engineering,lldb,cracking,C,Assembly,Reverse Engineering,Lldb,Cracking,我试图通过LLDB调试OSX桌面应用程序(MacOSCatalina10.15.3) lldb path/to/Electron.app >>> Current executable set to 'path/to/Electron.app' (x86_64). 之后,我可以成功地将断点添加到调试器中,但当我尝试使用run或process launch运行应用程序时,它总是给出: 错误:进程退出,状态为-1(错误1) 另一个附加到pid的问题。它给我一个错误,无法附加到进程

我试图通过LLDB调试OSX桌面应用程序(MacOSCatalina10.15.3)

lldb path/to/Electron.app
>>> Current executable set to 'path/to/Electron.app' (x86_64).
之后,我可以成功地将断点添加到调试器中,但当我尝试使用
run
process launch
运行应用程序时,它总是给出:

错误:进程退出,状态为-1(错误1)

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

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

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

在macOS上,调试器只能附加到一个进程,前提是该进程已使用适当的权限将自己标记为愿意被调试。Xcode通常使用此权限构建调试构建,而不使用此权限发布构建。当lldb尝试附加到不希望调试的进程时,您会看到这样的错误。这是一个低信息错误,因为拒绝连接的代理与lldb隔离,无法提供更多信息


但是,请注意,您不需要运行程序来反汇编它。在调试二进制文件时,如果加载了二进制文件,反汇编命令也会起作用。

在macOS上,只有当某个进程以适当的权限将自己标记为愿意被调试时,调试器才能附加到该进程。Xcode通常使用此权限构建调试构建,而不使用此权限发布构建。当lldb尝试附加到不希望调试的进程时,您会看到这样的错误。这是一个低信息错误,因为拒绝连接的代理与lldb隔离,无法提供更多信息


但是,请注意,您不需要运行程序来反汇编它。反汇编命令在加载二进制文件以及调试二进制文件时也可以使用。

我只是找到了调试的方法,并且没有限制任何根访问权限。。。 这是关于苹果的系统完整性保护

如果您愿意禁用系统完整性保护,只需小心并了解您在做什么

这篇文章介绍了如何禁用系统完整性保护

我只是找到了调试的方法,并且没有限制任何根访问权限。。。 这是关于苹果的系统完整性保护

如果您愿意禁用系统完整性保护,只需小心并了解您在做什么

这篇文章介绍了如何禁用系统完整性保护

我明白。实际上,我想看看这个程序是如何使用RAM布局的,所以我想破解这个程序。你有什么想法和我分享破解OSX。。。我也会在寻找,谢谢我理解。实际上,我想看看这个程序是如何使用RAM布局的,所以我想破解这个程序。你有什么想法和我分享破解OSX。。。我也会在寻找,谢谢