|
1、需要自己注意脚本加载时机 app启动后进行attach.可以使用-f参数frida来生成已经注入的进程(先注入Zygote为耗时操作),通常配合–no-pause使用.
frida -U -f org.citra.emu -l test.js
2、经常hook不上的原因?
(1)要hook的函数是不是正好被打了热补丁?
(2)hook的进程是否正确,比如com.tencent.mm有好几个进程
(3)hook中可能出现“函数名参数完全相同,但返回值不同的情况”,这种情况frida暂时无法实现,收到测试此情况代码编译不会通过,但编译后可以改bytecode,不影响执行结果
这种情况可以枚举函数的overloads属性,挨个hook,或者使用数组索引hook,例如a.overloads[1].implement=xxxx
(4)使用enumerateLoadedClasses报“VM::GetEnv failed”错误
enumerateLoadedClasses需要在Java.perform()下使用,
(5)Failed to spawn: unable to find application with identifier ‘org.citra.emu’
如果包名是正确的,应该是这个包名是一个服务,没有启动窗口(launch activity), 此时只能靠启动后抢时间的方式来attach, spawn行不通
|
|