hook so 导入导出表

启动frida

打开两个cmd 窗口

1
2
3
4
5
第一个cmd窗口
adb shell
su
cd /data/local/tmp
./fx // 这个是frida-server-12.8.14-android-x86的缩写
1
2
3
第二个cmd窗口
adb froward tcp:27042 tcp:27042
frida -U com.xiaojianbang.app -l hookso.js

编写frida 脚本

获取导入函数信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
先打印一下导入函数名
function hookso(){
var imports = Module.enumerateImports("libxiaojianbang.so")
for(var i = 0; i < imports.length; i++){
console.log(JSON.stringify(imports[i]));
}
}
function main(){
Java.perform(function () {
hookso();

})
}

setImmediate(main)

可以看到导入的函数、模块、地址

获取某导入函数的信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function hookso(){
var imports = Module.enumerateImports("libxiaojianbang.so")
for(var i = 0; i < imports.length; i++){
//console.log(JSON.stringify(imports[i]));
if (imports[i].name == "strncat")
console.log(JSON.stringify(imports[i]));

}
}
function main(){
Java.perform(function () {
hookso();

})
}
setImmediate(main)

获取导出函数信息

1
2
3
4
5
6
7
8
9
10
11
12
13
function hookso(){
var exports = Module.enumerateExports("libxiaojianbang.so")
for(var i = 0; i < exports.length; i++){
console.log(JSON.stringify(exports[i]));
}
}
function main(){
Java.perform(function () {
hookso();

})
}
setImmediate(main)

获取导出函数地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


function hookso(){
// 获取导出函数地址
var addr = Module.findExportByName("libxiaojianbang.so","Java_com_xiaojianbang_app_NativeHelper_add")
console.log(addr)
}
function main(){
Java.perform(function () {
hookso();

})
}


setImmediate(main)
相关文章
评论
分享
  • 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 导出函数和修改函数参数返回值

    Hook 导出函数123456789101112131415161718192021222324252627282930// hook 导出函数function hookTest1() { var addAddr =...

    Hook 导出函数和修改函数参数返回值
  • Hook Java层通杀

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

    Hook Java层通杀
  • 最右登录协议分析

    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!