手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中

macOS内核调试介绍

来源£º本站整理 作者£º佚名 时间£º2018-12-21 TAG£º 我要投稿

对于技术大咖来说£¬调试内核是一件非常有趣且具有挑战的事情£¬除非调试过程中发生严重的异常£¬否则在一般情况下£¬他们是不会轻易放弃的¡£不过£¬技术开发商也知道这一点£¬他?#19988;?#22312;想法设法让内核调试变得越来越难¡£比如苹果公司就已经采取了一些措施£¬让macOS的内核调试变得越来越难£¬首先£¬将有关debug引导参数的文档信息隐藏在lock和key下£¬然后将内核调试工具包转移到Developer Account-only Downloads部分¡£虽然目前互联网上有很多关于在macOS上调试内核的文章£¬但其中很多都已经不实用了£¬比如有的文章会告诉调试人员£¬通过设置的NVRAM启动参数£¬但这个方法已经不再有效¡£甚至还有的文章停留在 “现在调试人员应该设置一个有效的调试会话”这样的层面£¡在这篇文章中£¬我尽我所能为大家提供最准确和最新的调试信息£¬包括正确的调试命令£¬正确的boot-args参数£¬?#27604;?#36824;有具体的调试示例¡£
开始在macOS上进行内核调试
调试时£¬要做的第一件事就是进行调试环境的设置和对测试设备的配置£¬调试人员需要有一个能进行调试的内核对象£¨在本文中£¬我使用的是iMac 2011作为调试器£©和一个用于调试的设备£¨本文使用的是MacBook Pro 2009£©¡£虽然调试人员可以使用我在以下讨论的各种方式将两者连接起来£¬但在本文的示例中£¬最好的方法£¨也是最可靠的£©似乎是通过两者之间的火线接口(firewire)£¨这是因为我的?#25945;?#35774;备都有firewire端口£©而不是USB-C¡£
硬件部分设置好以后£¬我们还需要运行一些软件¡£理论上调试人员可以调试RELEASE内核£¬但调试人员不是技术大咖£¬只是一个初学者时£¬调试Development内核就会轻松得多¡£默认情况下£¬macOS里会?#28304;?#19968;个位于/System/Library/ kernel /kernel中的RELEASE融合内核£¬其中kernel是Mach-O 64-bit executable x86_64¡£所以£¬我们可以通过导航到Apple Developer门户并下载内核调试工具包£¬来获得macOS版本的Development内核¡£令?#21496;?#35766;的是£¬苹果公司只是简单将该套件置于正常的¡¢免费的Apple开发者账户£¨ Apple Developer Account£©的lock中£¬按着我原来的想法£¬?#19968;?#20197;为苹果公司是将其置于付费的Apple开发者账户下载之中¡£
无论如何£¬一旦调试人员进入到Apple Developer Portal下载部分£¬调试人员就将看到如下内容¡£

这个过程非常的重要£¬这是因为调试人员会在以?#31995;?#36825;个列表中£¬找到适合于他们的特定macOS版本的内核调试工具包£¬下载后£¬里面包含调试人员将在调试中启动的内核£¬如果内核与调试人员的macOS版本不匹配£¬它将无法启动£¬甚至对对调试人员的文件¡¢计算机等造成损害¡£
为macOS版本找到合适的内核调试工具包£¨Kernel Debug Kit£©
要找到正确的内核调试工具包£¬调试人员必须知道他们的macOS版本和?#23548;?#30340;内部版本号¡£调试人员可以很容易的看到你正在运行的macOS版本£¬只要打开苹果的图标£¬按下“关于这台Mac”£¬然后在窗口中阅读出现的版本信息£¬例如“10.13.6版本”¡£
对于?#23548;?#30340;内部版本号£¬调试人员可以单击“关于这个Mac”窗口中的“版本”标签£¬也可以运行终端命令sw_vers | grep BuildVersion¡£在本文的示例中£¬运行sw_vers | grep BuildVersion命令会输出 “BuildVersion: 17G65”¡£
Last login: Sun Dec  2 03:58:16 on ttys000
Isabella:~ geosn0w$ sw_vers | grep BuildVersion
BuildVersion:    17G65
Isabella:~ geosn0w$
所以£¬就本文而言£¬我正在运行的macOS High Sierra£¨10.13.6£©的版本号为17G65¡£查看刚刚下载的工具包£¬我可以立即找到和我的版本?#35270;?#30340;工具£¬这样我就可以下载包含安装文件的.DMG文件£¬文件非常少¡£

准备调试器以供调试器调试
在调试器£¨即要调试其内核的设备£©上下载调试工具包后£¬双击安装DMG文件¡£在DMG文件中£¬调试人员将找到一个名为KernelDebugKit.pkg的文件£¬双击它并按照安装向导进行操作¡£安装完毕£¬会出现一个询问调试人员macOS登录密码的界面¡£你可以不理会这个询问£¬但请不要将此安装程序删掉£¬调试人员以后还会需要它¡£
安装完成后的界面看起来如下£º

安装完成后£¬调试人员会被导航到/Library/Developer/KDKs¡£在那里£¬调试人员将获得一个名为KDK_YOUR_VERSION_BUILDNUMBER.kdk的文件夹¡£在本文的示例中£¬该文件夹名为KDK_10.13.6_17G65.kdk¡£打开文件夹£¬调试人员会在其中找到另一个名为“System”的文件夹¡£导航到文件夹后£¬先进入“Library”£¬然后进入“Kernels”¡£在该文件夹中£¬调试人员将找到一些内核二进制文件£¬一些Xcode调试符号文件£¨.dSYM£©?#21462;?#19968;般情况下£¬调试人员对名为kernel.development的文件?#34892;?#36259;¡£
将kernel.development复制并?#31243;?#21040;在RELEASE内核二进制文件中运行的/ System / Library / Kernels /中¡£此时£¬调试人员的macOS上应该安装应该有两个内核£¬一个是RELEASE内核£¬另一个是DEVELOPMENT内核¡£
禁用调试器?#31995;ÄSIP
为了正确调试£¬调试人员可能需要在要调试其内核的计算机上禁用SIP£¨系统完整?#21592;?#25252;£©¡£为此£¬调试人员需在恢复模式下重新启动计算机¡£要做到这一点£¬必须重新启动设备£¬当调试人员看到启动界面打开时£¬按CMD + R£¬等待?#35813;?#38047;£¬使启动进入恢复模式用户界面£¬然后点击“Terminal”继续¡£
在恢复终端中£¬写入csrutil disable£¬然后重新启动计算机£¬此时只需正常启动即可¡£
设置正确的NVRAM boot-args
由于苹果公司一直在更新boot-args£¬因此调试人员在互联网上找到的设置参数可能已经没有用了¡£以下boot-args已经过测试£¬?#33539;?#21487;以在2018年的macOS High Sierra运行¡£

[1] [2] [3] [4] [5] [6] [7]  下一页

¡¾声明¡¿:黑吧安全网(http://www.rliwo.live)登载此文出于传递更多信息之目的£¬并不代表本站赞同其观点和对其真实性负责£¬仅适于网络安全技术爱好者学习研究使用£¬学习中请遵循国家相关法律法规¡£如有问题请联系我们£¬联系邮箱[email protected]£¬我们会在最短的时间内进行处理¡£
  • 最新更新
    • 相关阅读
      • 本类?#35753;?/li>
        • 最近下载
        ¹ºÂò²ÊƱȨÍþÍøÖ·
        手机上怎么买彩票双色球 微信上有人推荐买彩票 能合买彩票的平台 夫妻买彩票狂中30亿 买彩票心态 买彩票就买大乐透开奖结果 哪个平台买彩票安全吗 买彩票有买一个号的吗 怎么看走势图买彩票 如何在电脑上买彩票 美国几岁可以买彩票? 福彩工作人员买彩票 彩客网买彩票 能在微信上买彩票吗 怎么买彩票容易中