官方API文档介绍
- Instruction.parse(target)
解析内存中 target 地址处的指令。
返回的对象具有的字段: address
: 此指令的地址(EIP),类型为 NativePointernext
: 指向下一条指令的指针,您可以使用 parse() 解析它size
: 此指令的大小mnemonic
: 指令助记符的字符串表示opStr
: 指令操作数的字符串表示operands
: 描述每个操作数的对象数组,每个对象至少指定类型和值,但可能还包含取决于架构的其他属性regsRead
: 此指令隐式读取的寄存器名称数组regsWritten
: 此指令隐式写入的寄存器名称数组groups
: 此指令所属的组名称数组toString()
: 转换为人类可读的字符串
我自己的demo
setImmediate(function(){var fun_addr = Module.findExportByName("libBileton.so","Java_com_example_hellojnitest_MainActivity_stringFromJNI");var ins = Instruction.parse(fun_addr)for(var i = 1;i<=10;i++){console.log("ins==>fun_addr:",ins);if(i<10){ins = Instruction.parse(ins.next);}}
})