新 iTunes 中一个有趣的功能是它无法接受附加到它的调试器进程(如 F-Script 之类的严重工具) 这不仅会涉及检测方法,而且还需要某种进程来检查调试器在运行中附加自身,或者调试器在尝试附加自身时将发出的入口点方法。此外,它需要一种方法来告诉调试器离开(按原样)而不终止进程。问题是:如何?显然,每 X 秒轮询一次调试器效率低下,并且不允许它附加到给定进程(没有像 ptrace() 这样的覆盖)似乎非常私密。
问问题
705 次
1 回答
4
iTunes 正在调用ptrace(PT_DENY_ATTACH)
它设置P_LNOATTACH
阻止调试器(和其他进程,例如 F-Script 和 DTrace)附加到进程的标志。
请参阅是否可以从 DTrace 隐藏 OS X 应用程序?了解更多信息。
如果 iTunes 也积极使用检测方法来识别调试器,我不会感到惊讶。Apple 竭尽全力保护 iTunes 中的 DRM。
有许多书籍提供了保护 Cocoa 应用程序的方法,包括检测调试器。脑海中浮现出一些潜在的标题(我没有仔细检查这些内容,所以不要假设它们有检测方法):“Mac Hacker's Handbook”、“Hacking and Securing iOS Applications”、“Professional Cocoa Application Security”和“C 和 C++ 的安全编程手册”。
“Mac OS X 内部结构”和“Mac OS X 和 iOS 内部结构”可能在PT_DENY_ATTACH
.
于 2013-01-25T04:01:08.733 回答