C 通过LLDB调试OSX应用程序的发布版本
我试图通过LLDB调试OSX桌面应用程序(MacOSCatalina10.15.3)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 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。。。我也会在寻找,谢谢