Skip to content

Java.cast 与 Java.array ​

☕ Frida 的 Java 类型转换与数组构造 API。

Java.cast ​

把 Java 对象转成指定类型:

javascript
var X509Certificate = Java.use("java.security.cert.X509Certificate");
var p7X509 = Java.cast(p7, X509Certificate);  // p7 转 X509Certificate

r0capture 在 storeP12 里把证书对象 cast 成 X509Certificate,才能放进证书链数组。

Java.array ​

构造 Java 数组:

javascript
var chain = Java.array("java.security.cert.X509Certificate", [p7X509]);
// 元素类型: "java.security.cert.X509Certificate"
// 元素: [p7X509] (单元素数组)

r0capture 构造单元素证书链数组,传给 KeyStore.setKeyEntry。

selftest 里的 cast ​

javascript
var c = Java.cast(U.$new(url).openConnection(), H);
// URL.openConnection() 返回 URLConnection, cast 成 HttpURLConnection

openConnection() 返回父类型 URLConnection,cast 成子类 HttpURLConnection 才能调 setRequestMethod 等方法。

常见类型字符串 ​

类型字符串Java 类型
"java.security.cert.X509Certificate"X509 证书
"java.security.cert.X509Certificate[]"X509 证书数组(array 用)
"java.lang.String"String
"byte[]" / "[B"byte[]

相关文档 ​

基于 VitePress 构建 · 教学用途