keyStoreSpi.engineLoad(stream, password); initialized=true; } 一旦client的证书加密,通过这个方法就可以把证书的安装密码自吐了!证书安装密码有了,证书怎么dump得到了?先站在正向开发角度看看证书是怎么导出的(文章末尾参考链接8),核心代码如下: //合成p12证书publicstaticvoidstoreP12(PrivateKey pri, String p7,...
function hook_KeyStore_load() { Java.perform(function () { var StringClass = Java.use("java.lang.String"); var KeyStore = Java.use("java.security.KeyStore"); KeyStore.load.overload('java.security.KeyStore$LoadStoreParameter').implementation = function (arg0) { printStack("KeyStore.load...
KeyStore.load.overload('java.security.KeyStore$LoadStoreParameter').implementation = function (arg0) { //可以在此打印调用栈观察信息 console.log("KeyStore.load1:", arg0); this.load(arg0); }; KeyStore.load.overload('java.io.InputStream', '[C').implementation = function (arg0, arg1) { ...
存储位置:/data/user/0/{packagename}/client_keystore_{nowtime}.p12 证书密码: hooker。原理是hook java.security.KeyStore的getPrivateKey和getCertificate方法,因为客户端向服务发送证书必调这个方法。强烈建议keystore_dump.js用spawn模式启动,启动命令为 ./spawn keystore_dump.js 。下面是某app双向认证dump...
function hook_KeyStore_load() { Java.perform(function () { var StringClass = Java.use("java.lang.String"); var KeyStore = Java.use("java.security.KeyStore"); KeyStore.load.overload('java.security.KeyStore$LoadStoreParameter').implementation = function (arg0) { ...
var ConstructorParam =Java.array('java.lang.Class',[Java.use("java.security.KeyStore").class]);var Constructor = Platform1.class.getDeclaredConstructor(ConstructorParam);//var instance = Constructor.newInstance([Platform1.class]);//var a = Platform1.class.getDeclaredConstructor([objectclass.class...
function main(){ Java.perform(function (){ // hook 构造方法 $init var MoneyClass = Java.use("com.kevin.app.Money"); MoneyClass.$init.overload().implementation = function(){ console.log("hook Money $init"); this.$init(); } }) } setImmediate(main); ...
var ConstructorParam =Java.array('java.lang.Class',[Java.use("java.security.KeyStore").class]);var Constructor = Platform1.class.getDeclaredConstructor(ConstructorParam);//var instance = Constructor.newInstance([Platform1.class]);//var a = Platform1.class.getDeclaredConstructor([objectclass.class...
存储位置:/data/user/0/{packagename}/client_keystore_{nowtime}.p12 证书密码: hooker。原理是hook java.security.KeyStore的getPrivateKey和getCertificate方法,因为客户端向服务发送证书必调这个方法。 6. edit_text.js 跟踪获取Editview的getText()事件,并获取Editview的真实Class(很重要)。Editview一般绑定...
本章中我们进一步介绍,大家在学习和工作中使用Frida的实际场景,比如动态查看安卓应用程序在当前内存中的状态,比如指哪儿就能hook哪儿,比如脱壳,还有使用Frida来自动化获取参数、返回值等数据,主动调用API获取签名结果sign等工作实际高频场景,最后介绍一些经常遇到的高频问题解决思路,希望可以切实地帮助到读者。