如何在 Linux 上动态插入 Python 中的 C 函数(无需 LD_PRELOAD)?

2024-04-14

我如何在运行时(不LD_PRELOAD),拦截/挂钩 C 函数,例如fopen()在 Linux 上,就像 Windows 上的 Detours 一样?我想从 Python 执行此操作(因此,我假设该程序已经在运行 CPython VM)并重新路由到 Python 代码。我只需要挂钩共享库函数就可以了。我还想在不必改变程序运行方式的情况下执行此操作。

一个想法是基于以下基础推出我自己的工具ptrace(),或者重写发现的代码dlsym()或在 PLT 中,并定位ctypes-生成的C可调用函数,但我想我应该先在这里问。谢谢。


您会从一位 ltrace 开发人员那里找到一种方法来做到这一点。看这个帖子 http://timetobleed.com/extending-ltrace-to-make-your-rubypythonperlphp-apps-faster/,其中包含一个完整的补丁,以便捕获动态加载的库。为了从 python 调用它,您可能需要创建一个 C 模块。

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

如何在 Linux 上动态插入 Python 中的 C 函数(无需 LD_PRELOAD)? 的相关文章

  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 如何在不丢失注释和格式的情况下更新 YAML 文件 / Python 中的 YAML 自动重构

    我想在 Python 中更新 YAML 文件值 而不丢失 Python 中的格式和注释 例如我想改造 YAML 文件 value 456 nice value to value 6 nice value 界面类似于 y yaml load
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 使用 z = f(x, y) 形式的 B 样条方法来拟合 z = f(x)

    作为一个潜在的解决方案这个问题 https stackoverflow com questions 76476327 how to avoid creating many binary switching variables in gekk

随机推荐

  • SWFUpload 还活着吗?

    我正在考虑在我的网站上使用 SWFUpload 但我看到最后一个版本是在 2010 年 3 月 而且它还是一个测试版 看起来 SWFUpload 的开发就停止了 这个项目还活着吗 还有其他选择吗 在我看来 SWF上传看起来很死 自 2010
  • 通过访问器函数使用重载的operator[]

    我有一个访问器函数 它返回对类型 std map 的 const 引用 myMap t const getMap const return paramMap 该类型有一个重载 操作员 然后使用的语法是什么 直接从 getter 函数获取操作
  • 为什么 git checkout 不创建新的跟踪分支?

    TLDR 如果 X 作为远程分支存在 则git checkout X应该创建它的本地分支 就我而言 对于单个分支来说 情况并非如此 远程存储库有一个master release 和其他一些分支 比如refactor update I do
  • React-Native iOS 应用程序构建失败 - 打印:条目,“:CFBundleIdentifier”,不存在

    我正在本地 Mac OS X El Capitan 机器上运行一个反应本机应用程序 我已经安装了所需的依赖项 但该应用程序仍然无法在 iOS 模拟器中启动 这是输出 BUILD FAILED The following build comm
  • 清单中的 ClassPath 不起作用

    我的 jar 中的文件结构是 com my Main class META INF MANIFEST MF RXTXcomm jar Manifest mf 组成 Manifest Version 1 0 Main Class com my
  • 无法加载文件或程序集“System.Web.Providers”

    你好 这是我的配置文件
  • Fork 系统调用失败后 rax 中的返回值是多少?

    我知道打电话fork 在C中如果有错误将返回 1 但我想知道当你调用时错误返回值是什么sys fork在装配中 我通常会假设它也返回 1 但我已经处理过 sys brk 并且汇编中的原始系统调用返回与 C Brk 包装器不同的东西 有谁知道
  • Node.js 未处理的拒绝错误

    我的代码中出现未处理的拒绝错误 但跟踪不会告诉我导致该错误的原因 我认为这是webp cwebp导致问题的电话 当我运行代码时 我成功转换了图像和日志状态 然后遇到了未处理的拒绝 貌似我没有进入最后两个 then 阻塞 因为没有控制台消息被
  • 当模块内且选择标准发生更改时,如何更新 Shiny 中的 DT 数据表

    我尝试制作一个闪亮的模块来使用 DT 包呈现来自数据帧的数据 我想使用一个模块来对 DT 表选项 如语言和其他选项 进行标准设置 我希望用户能够以交互方式选择数据的不同子集 然后能够将数据视为 DT 表 子集的选择将在模块外部生成 因为我希
  • 如何在 Vue.js 中使用“img src”? [复制]

    这个问题在这里已经有答案了 我的 Vue js 模板中有这个 img src media avatars joke avatar alt 它位于一个呈现笑话的循环内 其他字段渲染得很好 但对于图像 我在控制台中收到此错误 src media
  • 使用 kotlin 自定义风格中的 ClassNotFoundException

    我定义了自己的风格并设置了sourceSet sourceSets main java srcDirs src main kotlin WORKS myflavor java srcDirs src myflavor kotlin DOES
  • LinearLayout 使用 java 代码动态设置边框颜色,无需 XML

    我对这个问题做了一些研究 但还没有发现类似的东西 首先 我使用 ShapeDrawable 制作线性布局的边框 然后我尝试在 LinearLayout 上设置背景颜色 但颜色未设置然后我注释了两行 ShapeDrawable 然后在设置线性
  • 将 GMT 时间转换为 EST

    我的 sql 服务器位于 GMT 我需要获得 EST 等效 tz 不知何故 EST 是错误的 select now convert tz now GMT EST convert tz now GMT EST interval 10 minu
  • 计算 Java 集合中出现次数的优雅方法

    给定一个可能有重复项的对象集合 我希望最终得到每个对象的出现次数 我通过初始化一个空的来做到这一点Map 然后迭代Collection并将对象映射到其计数 每次映射已包含该对象时增加计数 public Map
  • .NET 通过时区名称获取时区偏移量

    在数据库中 我将所有日期 时间存储为 UTC 我知道用户的时区名称 例如 美国东部标准时间 为了显示正确的时间 我想我需要将用户的时区偏移量添加到 UTC 日期 时间 但是我如何获得时区名称的时区偏移量 谢谢你 您可以使用TimeZoneI
  • 计算字符串中最大连续 RE 组的数量[重复]

    这个问题在这里已经有答案了 如何计算字符串中连续字符串组的最大数量 import re s HELLOasdHELLOasdHELLOHELLOHELLOasdHELLOHELLO Give me the max amount of con
  • SwiftUI - 如何在 macOS 上将 onCommand 与 NSMenuItem 结合使用

    我正在尝试找到在 macOS 上将 NSMenuItem 与 SwiftUI onCommand 连接的最佳解决方案 目前我正在做以下事情 在 AppDelegate 中 我创建了一个虚拟函数 以便能够列出第一响应者收到的操作列表的函数 I
  • IntelliJ 工件 JAR 文件:无法找到或加载主类

    我在 IntelliJ 中创建了一个 JAR 工件 可以选择将 JAR 文件提取到目标 JAR 看起来像这样 我正确填写了清单信息 我使用 ZIP 检查了 JAR 文件的内容 它包含 jar 文件 正确填充的 MANIFEST MF 和我的
  • 隐藏文件输入在提交时不保留值

    我有一个带有假按钮的隐藏文件输入和用于浏览器显示一致性的输入 我目前也可以看到原始输入 并且发现使用它上传文件一切运行正常 然而 使用 dummyfile 中的按钮通过 javascript 触发点击 该值将按预期加载 并且在 UI 中也是
  • 如何在 Linux 上动态插入 Python 中的 C 函数(无需 LD_PRELOAD)?

    我如何在运行时 不LD PRELOAD 拦截 挂钩 C 函数 例如fopen 在 Linux 上 就像 Windows 上的 Detours 一样 我想从 Python 执行此操作 因此 我假设该程序已经在运行 CPython VM 并重新