我正在尝试获取传递给decryptAesCipherText 函数的SecretKey。我在 Frida 中挂钩了该函数,以尝试在调用该方法时打印出参数,但由于 SecretKey 是一个对象,因此所有尝试将其打印出来都将输出作为 [object Object]。然而,SecretKey 对象有一个方法 getEncoded() 将返回一个字节数组,该数组可以以十六进制格式打印出来。如何从 Frida 调用此方法并获得结果?
下面给出了我正在挂钩的 java 函数
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
private byte[] decryptAesCipherText(SecretKey secretKey, byte[] bArr) {
Cipher instance = Cipher.getInstance("AES/ECB/PKCS5Padding");
instance.init(2, secretKey);
return decryptCipherText(instance, bArr);
}
用于挂钩函数的 javascript 代码段(不完整)
var target_class = Java.use('com.reactlibrary.securekeystore.RNSecureKeyStoreModule');
target_class.decryptAesCipherText.overload('javax.crypto.SecretKey','[B').implementation = function(key, array){
console.log("Inside decrypt aes");
//Call getEncoded method on key to get byte array
var ret = my_class.decryptAesCipherText.overload('javax.crypto.SecretKey','[B').call(this, key, array);
return ret;
}