文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
基础用法
- Frida 的 Python API 接口是一种底层接口的封装,而且功能也是相当的有限,你可以把这些接口当作是一种底层核心接口封装的示例代码来看待。强烈建议大家看下 frida/core.py 和 frida/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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论