插入 OS X 系统调用

2023-12-15

我需要介入(调用我的函数而不是原始函数)一些 OS X 系统调用是为了克服闭源软件中的缺陷。

最好,生成的解决方案可以在 10.5 (Leopard) 及更新版本下工作,但我might如果论证足够有力,可以要求 10.6(雪豹)。

最好,生成的解决方案是可执行文件,但我可能会选择脚本。

优选地,所得解决方案能够插入(“窃取向量”)即使在目标应用程序运行之后,我也可以接受一种必须在应用程序加载时注入自身的技术。

最好是用 C 或 C++ 开发最终的解决方案,但我可以选择 Objective-C 或其他语言。

到目前为止,我已经尝试过:

1) DTrace脚本,教会了我很多东西,但是D语言的局限性(限流控制等)这对我正在做的事情来说是一个很大的痛苦,更不用说结果将是一个剧本,它不像我拍摄的那样整洁和独立。

2) DYLD_INSERT_LIBRARIES插入,在很多方面都很灵活,但可能是由于命名空间扁平化(我不会假装很理解这意味着什么),它可以很好地处理更简单的可执行文件,但会使我的目标应用程序窒息,即使我构建了一个实际上不插入任何调用的无所事事的库。

我最新的想法是尝试马赫星 (https://github.com/rentzsch/mach_star),但我首先要停下来询问 Stack Overflow 社区,他们总是比我知道的更多......

...接下来我应该看看除了 mach_star 之外的东西吗?


我认为您在 mach_star 上做出了正确的选择。

如果您确实想了解 darwin 链接加载器的工作原理等,我会花更多时间研究您的 DYLD 插入问题。但显然您正在寻找快速解决方案,而不是深入的学习体验。我怀疑任何人都无法在无法访问您的项目的情况下解决您遇到的问题。所以,这很可能是一个死胡同。此外,马赫覆盖和注入无论如何都更有趣。

马赫注入的基础知识实际上并不难,但是有很多事情你必须做对,其中大多数都没有很好的文档记录。在你得到可以在你的系统上运行的东西之前,你会犯 11 个问题,然后它就无法在你尝试的下一个函数中运行,然后它就无法在 10.5 或 10.8 上运行,并且...... mach_star 库为你包装了所有这些东西。那么,为什么不使用它呢?

我应该提到的是,自从英特尔出现之前我就没有使用过 mach_star。但看起来它仍在定期更新,包括 x86_64 和 10.7 以及 Xcode 4 等的更改。

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

插入 OS X 系统调用 的相关文章

  • Sublime Text 2中括号(圆括号)的智能缩进

    我有一个非常好的设置 可以从 sublime text 2 内部编辑和运行 maxscript 我最近想要的一件事是用普通圆括号模拟或复制大括号的行为 EDIT 抱歉 Chrome 决定我在那里完成编辑 而我还没有 如果我输入if x th
  • 编辑时可以在文本框控件内使用 Angular 的管道格式化程序吗?

    我已经声明了一种将大数字分成三位数组的格式 并像这样经常使用它 div Huge number i am huge make threesome div 现在 有一个对相应功能的请求 但在像这样的输入控件中实现
  • 通过 R 连接到 Azure SQL

    下面的代码允许我通过 R 连接到 Azure SQL 服务器 但是 我只能访问 主 数据库 而不能访问我在下面创建的两个数据库 表格显示为空白 有什么想法吗 谢谢 library RODBC library dplyr library DB
  • 基于生产的 Azure SQL 数据库沙箱

    我有一个大型 Azure Sql 数据库 我需要向团队提供一个沙箱 它是数据库的副本 但允许他们创建 sql 对象 沙箱中的数据需要与生产保持同步 我使用了弹性查询 但是性能并不理想 我查看了数据同步 但公司要求 AD 身份验证 定期恢复生
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 如何在输入时格式化 contenteditable div?

    我正在尝试编写一个函数 允许 contenteditable div 在用户输入 div 时执行一些自动格式化 到目前为止我只能让它在 IE 中运行 有人可以帮助我吗 function formatOnKeyUp if window get
  • 通过 Ajax 加载内容

    好的 我对 ajax 和从外部加载内容还很陌生 如果您能深入了解我的问题 我将不胜感激 我目前有一个空的隐藏 div 单击链接后应在其中加载 ajax 内容 div div 我目前有一个链接列表 它们都具有相同的类 我希望在单击时 空白 d
  • Windows 更新后 Active 设置为 False 时 TIdHttpServer 冻结

    我们有一个 Indy 版本 10 6 1 5235 TIdHttpServer 服务 多年来一直与 Delphi 2007 配合良好 在最新的 Windows 更新 KB4338815 和 KB4338830 之后 我们注意到当 TIdHt
  • uWSGI 皇帝权限被拒绝,除非 root

    我尝试使用二进制文件本身的标志 uid www data gid www data 并将其设置在我的配置中 uid www data gid www data 但套接字总是由我正在使用的帐户生成 因此我从 nginx 收到权限被拒绝的错误
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile
  • Pandas DataFrame 自定义 agg 函数奇怪的行为

    我想使用自定义函数沿轴聚合 Pandas DataFrame 但我无法弄清楚该函数应返回什么 df pd DataFrame np arange 50 reshape 10 5 您可以将 numpy 函数传递给DataFrame agg C
  • 使用 Hibernate 防止无限循环数据检索

    我想知道 想象一个场景 例如 POJO public class User private String userName private String name private String surname private List
  • JavaScript 开关(真)

    你好 我正在尝试处理 ajax json 响应 这是我的代码 success function j switch true case j choice1 alert choice2 break case j choice2 alert ch
  • 如何让 DataTemplate.DataTrigger 检查大于或小于?

    下列DataTemplate DataTrigger如果是 则使年龄显示为红色equal to 30 如果是的话 如何使年龄显示为红色比 更棒 30
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类
  • 将自定义属性添加到 Tk 小部件

    我的主要目标是向小部件添加隐藏标签或字符串之类的内容 以在其上保存简短信息 我想到创建一个新的自定义 Button 类 在本例中我需要按钮 它继承所有旧选项 这是代码 form tkinter import class NButton Bu
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma
  • 将一个 IEnumerable 拆分为多个 IEnumerable

    我是 linq 新手 我需要根据指示器将 Couple string text bool Indicator 类型的 IEnumerable 拆分为多个 IEnumerable 我尝试使用skipWhile 和 TakeWhile 但没有找
  • 为子元素提供属性时,如何为 React.cloneElement 分配正确的类型?

    我正在使用 React 和 Typescript 我有一个充当包装器的反应组件 我希望将其属性复制到其子组件 我正在遵循 React 的使用克隆元素的指南 https facebook github io react blog 2015 0
  • perfmon 性能计数器是否基于与 xperf 使用的 ETW 事件“幕后”相同的东西?

    我最近开始熟悉 perfmon 和 xperf Perfmon 使用性能计数器 xperf 使用 ETW Windows 事件跟踪 Perfmon 具有提供数据的对象 而 xperf 使用 提供者 组 作为这个领域的新手 我想问是否有人可以

随机推荐