首页
社区
课程
招聘
有遇到类似的问题吗?请求赐教
发表于: 2021-12-6 11:33 7162

有遇到类似的问题吗?请求赐教

2021-12-6 11:33
7162

测试环境:

手机:MI 5
系统:Android 8.0.0
Frida 版本:12.11.18

代码片段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var fopen = new NativeFunction(Module.findExportByName("libc.so","fopen"),"pointer",["pointer","pointer"]);
var fread = new NativeFunction(Module.findExportByName("libc.so","fread"), "int",["pointer","int","int","pointer"]);
var fgets = new NativeFunction(Module.findExportByName("libc.so","fgets"), "pointer",["pointer","int","pointer"]);
var fclose = new NativeFunction(Module.findExportByName("libc.so","fclose"),"int",["pointer"]);
var fseek =  new NativeFunction(Module.findExportByName("libc.so","fseek"),"int",["pointer","int","int"]);
var ftell = new NativeFunction(Module.findExportByName("libc.so","ftell"),"long",["pointer"]);
 
function ReadFile(path){
    var fp =   fopen(Memory.allocUtf8String(path),Memory.allocUtf8String("rb"));
    if (fp != null){
        fseek(fp,0,2);  // SEEK_END
        var size = ftell(fp);
        console.log("load size -> " + size);
        fseek(fp,0,0);  // SEEK_SET
        var buffer = Memory.alloc(size);
        fread(buffer, size, 1, fp);        
        fclose(fp);
    }
}

问题描述:

执行fread函数出错,出错信息 Error: invalid argument value,最初猜测第一个参数可能有问题,但已经测试过了第一个参数buffer不等于null,是合法的,那到底是哪一个参数无效呢?请高手赐教,谢谢!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 3581
活跃值: (724)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
已经解决了,是第二个参数的问题,第二个参数的类型object,实际需要的类型是int,所以需要用Number(size)转化一下就可以了。
2021-12-9 11:36
0
游客
登录 | 注册 方可回帖
返回
//