如何解决创建新的 NativeFunction 然后使用它
我想知道如何在应用程序使用 openssl 库时允许自签名证书
我看到禁用证书验证的代码 StackOverflow questio hyperlink
static int always_true_callback(X509_STORE_CTX *ctx,void *arg)
{
return 1;
}
但我不知道如何使用 Frida 创建该方法
这样做的正确方法是什么?
解决方法
有很多方法可以实现您的目标
TL;博士
var SSL_CTX_set_cert_verify_callback = Module.findExportByName('libssl.so','SSL_CTX_set_cert_verify_callback');
Interceptor.attach(SSL_CTX_set_cert_verify_callback,{
onEnter: function(args) {
Interceptor.replace(args[1],new NativeCallback((_arg1,_arg2) => {
return 1;
},'int',['pointer','pointer']);
},});
钩住SSL_CTX_set_cert_verify_callback
,一旦被调用拦截*cb
并替换返回值。
Interceptor.attach(SSL_CTX_set_cert_verify_callback,{
onEnter: function(args) {
Interceptor.attach(args[1]/* *cb */,{
onLeave: function(retval) {
retval.replace(1);
}
});
},});
替换字节码
Interceptor.attach(SSL_CTX_set_cert_verify_callback,{
onEnter: function(args) {
// add a condition so you will patch only once
Memory.patchCode(args[1],64,code => {
const cw = new Arm64Writer(code,{ pc: args[1] });
cw.putMovRegU64('x0',1);
cw.putRet();
cw.flush();
});
},});
用CModule替换函数
const cm = new CModule(`
void ret1(void) {
return 1;
}
`);
Interceptor.attach(SSL_CTX_set_cert_verify_callback,cm.ret1);
},});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。