ryzeT 发表于 2023-3-15 10:52

负责加解密的so hook 解密函数

已经成功绕过一些防护机制成功 Hook 到了负责加解密的 so文件的 decrypt 函数。
本以为只要打印输入输出就是解密的密文、key,返回值就是解密后的明文,但是打印之后是一堆指针:


hexdump打印对应指针的内存,也都是乱码,没有直观体现。
这种还有什么方法来进行下一步,或者有什么原因吗,各位hxd

powerjinny 发表于 2023-3-16 13:02

可能是地址不对吧,看一下decrypt取参数的地址偏移值就知道了

ryzeT 发表于 2023-3-21 10:17

powerjinny 发表于 2023-3-16 13:02
可能是地址不对吧,看一下decrypt取参数的地址偏移值就知道了

地址是对的,用了直接找导出函数和寻找偏移两种方式

powerjinny 发表于 2023-3-23 22:12

是入参偏移,比如unityil2cpp的so无论是string参数或者byte数组参数,入参地址要加12,64位要加24

ryzeT 发表于 2023-3-24 10:06

powerjinny 发表于 2023-3-23 22:12
是入参偏移,比如unityil2cpp的so无论是string参数或者byte数组参数,入参地址要加12,64位要加24

这个入参地址指的是函数调用地址还是我要读参数时的参数地址。
如果是参数地址的话,我尝试过输出很多参数:
console.log("Java_com_xxx_encrypt is hooked: " + x)
    Interceptor.attach(x,{
      onEnter: function(args){
            console.log("\nCalled:")
            console.log("args=" + args)
            console.log("args=" + args)
            console.log("args=" + args)
            console.log("args=" + args)
            console.log("args=" + args)
            console.log("args=" + args)
      }

从IDA里看是有三个参数,我也看到有文章说前两个参数env和object,我也试过 hexdump,但是都没找到这个加密函数明文或者是key对应的地址
页: [1]
查看完整版本: 负责加解密的so hook 解密函数