Frida系统培训第十一课 SO层无符号函数hook

[复制链接]
查看1574 | 回复0 | 2024-10-10 18:15:52 | 显示全部楼层 |阅读模式

立即注册,突破游客限制,与技术大牛交流切磋,畅享海量资源,让你的技术之路不再孤单!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如果一个so层函数名字被抹去,你需要通过so基地址+函数偏移的方式进行hook。
其实也就是通过偏移进行hook,如下图通过偏移hook一个函数。


截图202410101814044352.png

32位so文件:

  1. Java.perform(function() {
  2.   // 在目标 Java 进程中执行一段 JavaScript 代码
  3.   // 找到 "libhello.so" 这个 SO 文件的基地址
  4.   var soAddr = Module.findBaseAddress("libhello.so");
  5.   send("soAddr: " + soAddr);
  6.   // 计算 MD5Final 函数的地址
  7.   // 这里假设 MD5Final 函数相对于基地址的偏移是 0x1768
  8.   // 32 位系统上,由于对齐方式的原因,需要加 1
  9.   var MDSFinalAddr = soAddr.add(0x1768 + (Process.arch == 'arm' ? 1 : 0));
  10.   send("MD5FinalAddr: " + MDSFinalAddr);
  11.   // 拦截 MD5Final 函数
  12.   Interceptor.attach(MDSFinalAddr, {
  13.     // 当函数被调用时
  14.     onEnter: function(args) {
  15.       // 打印函数的参数
  16.       send(args[0]);
  17.       send(args[1]);
  18.     },
  19.     // 当函数返回时
  20.     onLeave: function(retval) {
  21.       // 打印函数的返回值
  22.       send(retval);
  23.     }
  24.   });
  25. });
复制代码
64位so文件:
  1. Java.perform(function() {
  2.   // ... 其他代码与 32 位版本类似 ...
  3.   // 64 位系统,不需要加 1
  4.   var MDSFinalAddr = soAddr.add(0x1768);
  5.   // ... 其他代码 ...
  6. });
复制代码



本帖被以下淘专辑推荐:

这个人还没有签名
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文推荐
大神求
大神求
6 天前
热门排行