清除 Mac OS X 上的缓冲区缓存

2023-11-26

有没有办法以编程方式清除Mac上的缓冲区缓存,最好是用C语言?

基本上,我正在寻找 10.5(及更高版本)的等效源purge命令。EDIT:我现在看到这是 CHUD 工具的一部分,但似乎无法直接获得该工具的源代码。但是,我仍在寻找一些代码来执行相同的操作。


我已经反汇编了有问题的函数(_utilPurgeDiskBuffers)来自 CHUD 框架。该函数似乎不是很复杂,但由于我不是 MacOS 程序员,因此导入和调用的 sys API 对我来说没有多大意义。

API 做的第一件事是调用另一个函数,即_miscUtilsUserClientConnect_internal。该函数似乎建立了与 CHUD 内核扩展的连接。
为此,它调用_getCHUDUtilsKextService它尝试通过使用以下命令枚举所有 kext 来定位 CHUD 内核扩展:IORegistryCreateIterator从 I/O 套件导入。找到kext后,通过以下方式打开它_IOServiceOpen.

此时,我们已经连接到 CHUD kext(至少这是我从反汇编列表中了解到的)。

最后一个电话IOConnectMethodStructureIStructureO就这样完成了,我猜它发挥了真正的魔力。
在不知道该函数的一些内部细节或签名的情况下,这些参数对我来说没有意义。

不过,这是反汇编:

__text:4B0157A7 lea     eax, [ebp+var_1C]
__text:4B0157AA mov     dword ptr [esp+14h], 0
__text:4B0157B2 mov     [esp+10h], eax
__text:4B0157B6 mov     [esp+0Ch], eax
__text:4B0157BA mov     dword ptr [esp+8], 0
__text:4B0157C2 mov     dword ptr [esp+4], 0Eh
__text:4B0157CA mov     [esp], edx
__text:4B0157CD call    _IOConnectMethodStructureIStr

注意var_1C之前已经被清零了。

希望你们中的一些人能够从这些系统调用中获得更多意义。如果您想了解更多信息,请告诉我。

Update:
要开始使用,只需采取AppleSamplePCIClient.cIO 套件 SDK 中的示例。这基本上与 CHUD 工具中的清除应用程序的作用相同。
您唯一需要更改的是最终参数_IOConnectMethodStructureIStr称呼。从上面的反汇编列表中获取它们。我无法测试所有这些东西,因为我没有 Mac。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

清除 Mac OS X 上的缓冲区缓存 的相关文章

随机推荐

  • 如何解析字典字符串?

    我正在尝试将字符串转换为字典dict函数 像这样 import json p id 12589456 d dict p print d id 但我收到以下错误 ValueError dictionary update sequence el
  • Datatables 1.10 通过 jquery“检查全部”

    我知道这可能看起来很原始 但我一整天都在尝试实现它 也许是因为我无法完全理解如何使用 API 我正在使用 DataTables 1 10 0 我有一个带分页的表功能 每一行都有一个复选框 我需要一个 检查所有按钮 来检查所有页面中的所有复选
  • 通过参数列表过滤 SQL 查询

    我有一个查询 我想返回与值列表关联的所有行 您可以非常简单地将其写为 select from TableA where ColumnB in 1 2 3 5 我可以在 C 中生成此查询并执行它 然而这显然不太理想 因为它不使用参数 在尝试缓
  • 从片段在我的工具栏上设置副标题

    我在从片段设置工具栏中的副标题时遇到一些问题 我在 setSubTitle 处不断收到空指针异常 Override public void onActivityCreated Bundle savedInstanceState super
  • 如何一起使用 mongoose unique、skip 和 limit

    我需要使用skip and limit用于分页 以及distinct因为不返回相等的值 If i use MyModel find distinct blaster function err results res render index
  • 选择控制设置初始值

    我们知道 随着InputSelect我们不能同时使用 bind value 和 onchange 但如果我们使用后者 与select反而InputSelect 我们如何设置与第一个不同的初始值 例如 在此示例中设置为 2018 年 变量的值
  • 根据另一个指定拒绝列表条件的 DataFrame 过滤 Spark DataFrame

    我有一个largeDataFrame 多列和数十亿行 和smallDataFrame 单列和 10 000 行 我想过滤所有行largeDataFrame每当some identifier栏目中的largeDataFrame匹配中的某一行s
  • 使用自定义键对 python 中的元组进行排序

    你好 我正在尝试以自定义方式对元组列表进行排序 例如 lt 2 4 4 5 5 2 必须排序 lt 5 2 2 4 4 5 Rules 如果 a 1 b 0 则 b 元组大于 a 元组 如果 a 0 b 1 a 元组大于 b 元组 我已经实
  • Unix 单行交换/调换多个文本文件中的两行?

    我希望使用 sed 或 awk 等 UNIX 工具根据多个文本文件中的行号交换或转置行对 例如 交换第 10 行和第 15 行的位置 例如 我相信这个 sed 命令应该在单个文件中交换第 14 行和第 26 行 sed n 14p infi
  • .NET - WindowStyle = 隐藏 vs. CreateNoWindow = true?

    当我开始一个新流程时 如果我使用 WindowStyle Hidden or the CreateNoWindow true 的财产ProcessStartInfo class 正如Hans所说 WindowStyle是传递给进程的一个建议
  • R 网络图中的顶点框架宽度

    我的问题如下here 关于如何更改 igraph 中的顶点框架宽度 随着 igraph 的更新 建议的解决方案似乎不再有效 有人有解决方案吗 或者可能知道另一个为网络提供可变顶点帧宽度的包 Thanks 您可以定义具有框架宽度参数的新顶点形
  • 当存在 32 位 Office 时手动安装 64 位 MS Access ODBC 驱动程序

    我想要手动安装 MS Access 64 位 odbc 驱动程序 由于我们公司使用的加载项 无法卸载 32 位 Office 并安装 64 位 Office 我下载了 AccessDatabaseEngine x64 exe 并使用 Win
  • MySQL/写入文件错误(错误代码 28)

    我的一个网络应用程序出现以下错误 Query3 failed Error writing file tmp MY1fnqpm Errcode 28 INSERT MailList removed the rest of the query
  • 如何格式化“角矩”的“am-time-ago”指令?

    现场演示 我用am time ago显示相对时间戳的指令 span span 默认情况下 其格式为 一天前 5 天前 等 如何将格式更改为 1d 5d 3h 等 您可以在配置或应用程序启动的某个位置自定义人性化 moment lang en
  • 如何从 Jmeter 执行 java 类

    有没有办法从jmeter执行java类 我已经用maven程序集打包了我的类 并将其放在JMETER HOME的lib文件夹中 然后我在测试用例中创建了 BSF Listener 并写道 import my package name App
  • Bash:保留命令行上输入的带有空格的字符串? [复制]

    这个问题在这里已经有答案了 我想允许用空格捕获字符串 以便 echo n Enter description read input echo input 会产生 gt Enter description My wonderful descr
  • 如何在Webpack中加载SVG图像?

    我想使用加载 SVG 文件svgo 加载程序在 Webpack 中 但出现以下错误 css loader modules localIdentName 名称 中出现错误 local 散列 base64 5 autoprefixer load
  • Android NotificationListenerService onNotificationPosted 触发两次

    我收听 WhatsApp 消息等通知 但每次有通知进入时 NotificationListenerService 都会触发两次 有谁知道这个问题吗 这是 AndroidManifest xml 中的一个片段
  • GSON 抛出“预期预期有名称,但第 1 行第 8 列为 NUMBER”?

    我正在尝试解析像这样的 JSON 字符串 使用生成的 URLhttp www json generator com total 86 jsonrpc 2 0 id 1 result startDate 14 03 2012 meetingI
  • 清除 Mac OS X 上的缓冲区缓存

    有没有办法以编程方式清除Mac上的缓冲区缓存 最好是用C语言 基本上 我正在寻找 10 5 及更高版本 的等效源purge命令 EDIT 我现在看到这是 CHUD 工具的一部分 但似乎无法直接获得该工具的源代码 但是 我仍在寻找一些代码来执