Frida官方手册 - 基础用法

发布者:freakish
发布于:2017-10-19 12:33

基础用法

  • 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 这个字符串的值

声明:该文观点仅代表作者本人,转载请注明来自看雪