FRIDA输出打印
console.log()
console.warn()
console.error()
console之hexdump
打印内存中的地址
target参数可以是ArrayBuffer或者NativePointer,而options参数则是自定义输出格式可以填这几个参数offset、lengt、header、ansi
var libc = Module.findBaseAddress('libc.so');
console.log(hexdump(libc, {
offset: 0,
length: 64,
header: true,
ansi: true
}));
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 .ELF............
00000010 03 00 28 00 01 00 00 00 00 00 00 00 34 00 00 00 ..(.........4...
00000020 34 a8 04 00 00 00 00 05 34 00 20 00 08 00 28 00 4.......4. ...(.
00000030 1e 00 1d 00 06 00 00 00 34 00 00 00 34 00 00 00 ........4...4...
send(终于知道send是干什么的了)
nd是在python层定义的on_message回调函数,jscode内所有的信息都被监控script.on(‘message’, on_message),当输出信息的时候on_message函数会拿到其数据再通过format转换, 其最重要的功能也是最核心的是能够直接将数据以json格式输出,当然数据是二进制的时候也依然是可以使用send
process 对象
Process.id:返回附加目标进程的PID
Process.isDebuggerAttached():检测当前是否对目标程序已经附加
Process.enumerateModules()会枚举当前所有已加载的so模块,并且返回了数组Module对象
function frida_Process() {
Java.perform(function () {
var process_Obj_Module_Arr = Process.enumerateModules();
for(var i = 0; i < process_Obj_Module_Arr.length; i++) {
console.log("",process_Obj_Module_Arr[i].name);
}
});
}
setImmediate(frida_Process,0);
Process.enumerateThreads():枚举当前所有的线程,返回包含以下属性的对象数组:id.state,context
Process.getCurrentThreadId():获取此线程的操作系统特定 ID 作为数字(感觉没用)
module对象
Process.EnumererateModules()方法返回了就是一个Module对象
Module对象的属性
1 name 模块名称
2 base 模块地址,其变量类型为NativePointer
3 size 大小
4 path 完整文件系统路径
Module.load() //加载指定so文件,返回一个Module对象
function frida_module(){
Java.
const hook = Module.load("libhello.so");
console.log("模块名称:",hook.name);
console.log("模块地址:",hook.base);
console.log("模块大小:",hook.size);
console.log("路径:",hook.path);
}
Process.EnumererateModules()
function frida_Module(){
Java.perform(function(){
var process_Obj_Module_Arr = Process.enumerateModules();
for(var i = 0; i < process_Obj_Module_Arr.length; ++i)
{
if(process_Obj_Module_Arr[i].path.indexOf("hello") != -1)
{
console.log("模块名称:",process_Obj_Module_Arr[i].name);
console.log("模块地址:",process_Obj_Module_Arr[i].base);
console.<