Hook 导出函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// hook 导出函数
function hookTest1() {
var addAddr = Module.findExportByName("libxiaojianbang.so", "Java_com_xiaojianbang_app_NativeHelper_add");
console.log(addAddr);

if (addAddr != NULL){
Interceptor.attach(addAddr,{
onEnter:function (args) {
console.log(args[0]);
console.log(args[1]);
args[2] = ptr(1000);
console.log(args[2]);
console.log(args[3]);
console.log(args[4]);

},
onLeave:function (retval) {
console.log(retval);
console.log(retval.toInt32());
}
})
}
}
function main(){
Java.perform(function () {
hookTest1();
})
}

setImmediate(main)

hook 修改函数参数返回值

修改onEnter 参数的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function hookTest1() {
var addAddr = Module.findExportByName("libxiaojianbang.so", "Java_com_xiaojianbang_app_NativeHelper_add");
console.log(addAddr);

if (addAddr != NULL){
Interceptor.attach(addAddr,{
onEnter:function (args) {
console.log(args[0]);
console.log(args[1]);
args[2] = ptr(1000); // 这里这个可以修改参数的值,ptr是 new Nativepointer 的简写
console.log(args[2]);
console.log(args[3]);
console.log(args[4]);

},
onLeave:function (retval) {
console.log(retval);
console.log(retval.toInt32());
}
})
}
}

修改onLeave的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function hookTest1() {
var addAddr = Module.findExportByName("libxiaojianbang.so", "Java_com_xiaojianbang_app_NativeHelper_add");
console.log(addAddr);

if (addAddr != NULL) {
Interceptor.attach(addAddr, {
onEnter: function (args) {
console.log(args[0]);
console.log(args[1]);
args[2] = ptr(1000);
console.log(args[2]);
console.log(args[3]);
console.log(args[4]);

},
onLeave: function (retval) {
retval.replace(123999) // 通过replace 去修改返回值参数
console.log(retval);
console.log(retval.toInt32());
}
})
}
}
相关文章
评论
分享
  • Hook jni 主动调用

    Hook jni 主动调用要对hellofromc 进行主动调用,修改返回值,但是这里不能直接通过replace去修改返回值,而是要通过newstringutf 去修改返回值。 1234567891011121314151617181...

    Hook jni 主动调用
  • jni函数hook

    jni函数hook(计算 地址方式)12345678910111213141516171819202122232425262728293031323334353637function hookTest9() { Jav...

    jni函数hook
  • Hook 计算非导出函数地址

    hook 读写内存数据对string字符串,可能是加密的,可以通过直接hook 加载的内存数据来读取解密状态的字符串 123456789读取内存字符串数据function hookTest7() { var soAdd...

    Hook 计算非导出函数地址
  • Hook dlopen

    hook dlopen在刚开始hook 我们必须使得app加载so 才能hook, 我们可以hookdlopen 获取到so在那加载,在高版本中有一些so会走android_dlopen_ext 1234567891011121314...

    Hook dlopen
  • Hook 获取指针参数的返回值

    Hook 获取指针参数的返回值在c语言中,一般都会以指针传递返回的值 ,没有return 或者return为true hook sub_750 打印参数和输出 12345678910111213141516171819functio...

    Hook 获取指针参数的返回值
  • Hook Java层通杀

    Hook 通杀Hook 普通方法和修改函数参数返回值fradaserver 是手机端的, android低版本 frida 尽量低版本 fridaserver版本要与frida库版本一致 不同平台用不同fridaserver 不要和...

    Hook Java层通杀
  • Hook so 导入导出表

    hook so 导入导出表启动frida打开两个cmd 窗口 12345第一个cmd窗口adb shellsucd /data/local/tmp./fx // 这个是frida-server-12.8.14-android-x86...

    Hook so 导入导出表
  • 最右登录协议分析

    Hey, password is required here. 184ec4c94e65a4b619ea732bd39a29aaf452514072ddb6dff084e29ad47fa9af...

    最右登录协议分析
  • 攻防世界-RememberOther

    RememberOther附件下载https://adworld.xctf.org.cn/media/task/attachments/476d9022bb0449c09c0b1e24f0686b66.zip 分析先安装 然后看看逻辑...

    攻防世界-RememberOther
  • 攻防世界-Ph0en1x-100

    Ph0en1x-100附件下载https://adworld.xctf.org.cn/media/task/attachments/f6adc401d0eb472892a4ac4481f76a85.apk 分析上手第一步还是看app逻...

    攻防世界-Ph0en1x-100
Please check the comment setting in config.yml of hexo-theme-Annie!