Frida-JSAPI:Module使用

模块

Module对象的属性

  • name
    模块的名称,字符串
  • base
    模块的基址,类型为NativePointer
  • size
    模块的大小,单位是字节
  • path
    模块在文件系统中的完整路径,类型为字符串

Module对象的方法

  • enumerateImports()
    枚举模块导入表,返回一个包含以下属性的对象数组:

    • type
      字符串,指定类型为 function 或 variable
    • name
      导入项的名称,类型为字符串
    • module
      模块名称,类型为字符串
    • address
      绝对地址,类型为 NativePointer
    • slot
      存储导入项的内存位置,类型为 NativePointer
  • enumerateExports()
    枚举模块导出表,返回一个包含以下属性的对象数组:

    • type:
    • 字符串,指定类型为 function 或 variable
    • name:
    • 导出项的名称,类型为字符串
    • address:
    • 绝对地址,类型为 NativePointer
  • enumerateSymbols()
    枚举模块符号表,返回一个包含以下属性的对象数组:

    • isGlobal:
      布尔值,指定符号是否是全局可见的
    • type:
      字符串,指定类型
    • section:
      如果存在,则是一个对象,包含以下属性
      • id
      • protection
    • name:
      符号名称,类型为字符串
    • address:
      绝对地址,类型为 NativePointer
    • size:
      如果存在,为一个数字,指定符号的大小,以字节为单位
  • enumerateSections()
    枚举模块的各个节,返回一个包含以下属性的对象数组:

    • id:
    • 包含节索引、段名称(如果适用)和节名称的字符串
    • name:
      节名称,类型为字符串。
    • address:
      绝对地址,作为 NativePointer。
    • size:
      大小,以字节为单位。
  • findExportByName(exportName), getExportByName(exportName)
    返回名为 exportName 的导出项的绝对地址。如果找不到这样的导出项,以 find 开头的函数将返回 null,而以 get 开头的函数将抛出一个异常。

  • Module.findBaseAddress(name), Module.getBaseAddress(name)
    返回名为 name 的模块的基址。如果找不到这样的模块,以 find 开头的函数将返回 null,而以 get 开头的函数将抛出一个异常。

  • Module.findExportByName(moduleName|null, exportName), Module.getExportByName(moduleName|null, exportName)
    返回名为 exportName 的导出项在 moduleName 模块中的绝对地址。如果模块未知,你可以传入 null 代替其名称,但这样的搜索可能会很耗时,应该避免这样做。如果在找不到这样的模块或导出项的情况下,以 find 开头的函数将返回 null,而以 get 开头的函数将抛出一个异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值