返回介绍

基础用法

发布于 2025-01-02 22:31:47 字数 2016 浏览 0 评论 0 收藏 0

  • Frida 的 Python API 接口是一种底层接口的封装,而且功能也是相当的有限,你可以把这些接口当作是一种底层核心接口封装的示例代码来看待。强烈建议大家看下 frida/core.pyfrida/tracer.py 的代码来学习下底层的具体细节。

模块枚举

  • enumerate_modules() 函数枚举当前进程中所有加载的模块。
  • 执行如下代码:
  • 应该会看到下面的输出结果:
  • 其中, base_address 是这个模块的加载基地址。

枚举内存块

  • enumerate_ranges(mask) 函数枚举当前进程中已经映射到进程地址空间中的所有内存块。
  • 执行如下代码:
  • 应该能看到如下输出:
  • 其中, base_address 是这个内存块的起始地址。 enumerate_ranges() 的 mask 参数表示你要枚举的内存块的保护属性类型,支持 rwx ,也可以直接填写 - 表示任意类型

内存读写

  • read_bytes(address, n) 函数在目标进程中从 address 这个地址开始,连续读取 n 个字节。
  • write_bytes(address, n) 函数在目标进程中从 address 这个地址开始,连续写入 n 个字节。
  • 比如执行如下代码:
  • 执行完毕之后,应该能看到如下结果:
  • 执行如下代码:
  • 执行完毕之后, 相应的内存块的值会被更新成 frida 这个字符串的值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文