ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

frida hook

2021-11-20 01:02:13  阅读:930  来源: 互联网

标签:function console implementation ret return hook var frida


//frida hook aes
 function hook_cipher(){
    var cipher = Java.use("javax.crypto.Cipher");
    cipher.doFinal.implementation = function(data, offset, length){
        var ret = this.doFinal(data, offset, length);
        console.log("doFinal: " + ret);
        return ret;
    }
}
function hook_aes(){
    var aes = Java.use("javax.crypto.spec.SecretKeySpec");
    aes.getEncoded.implementation = function(){
        var ret = this.getEncoded();
        console.log("getEncoded: " + ret);
        return ret;
    }
}
function hook_base64(){
    var base64 = Java.use("android.util.Base64");
    base64.encodeToString.implementation = function(data, flags){
        var ret = this.encodeToString(data, flags);
        console.log("encodeToString: " + ret);
        return ret;
    }
}
function hook_md5(){
    var md5 = Java.use("java.security.MessageDigest");
    md5.digest.implementation = function(data){
        var ret = this.digest(data);
        console.log("digest: " + ret);
        return ret;
    }
}
function hook_sha1(){
    var sha1 = Java.use("java.security.MessageDigest");
    sha1.digest.implementation = function(data){
        var ret = this.digest(data);
        console.log("digest: " + ret);
        return ret;
    }
}
function hook_sha256(){
    var sha256 = Java.use("java.security.MessageDigest");
    sha256.digest.implementation = function(data){
        var ret = this.digest(data);
        console.log("digest: " + ret);
        return ret;
    }
}
function hook_sha512(){
    var sha512 = Java.use("java.security.MessageDigest");
    sha512.digest.implementation = function(data){
        var ret = this.digest(data);
        console.log("digest: " + ret);
        return ret;
    }
}
function hook_hmac(){
    var hmac = Java.use("javax.crypto.Mac");
    hmac.doFinal.implementation = function(data){
        var ret = this.doFinal(data);
        console.log("doFinal: " + ret);
        return ret;
    }
}
function hook_rsa(){
    var rsa = Java.use("java.security.interfaces.RSAPublicKey");
    rsa.getEncoded.implementation = function(){
        var ret = this.getEncoded();
        console.log("getEncoded: " + ret);
        return ret;
    }
}
function hook_map(){
    var map = Java.use("java.util.HashMap");
    map.put.implementation = function(key, value){
        var ret = this.put(key, value);
        console.log("put: " + ret);
        return ret;
    }
       
}
function hook_list(){
    var list = Java.use("java.util.ArrayList");
    list.add.implementation = function(value){
        var ret = this.add(value);
        console.log("add: " + ret);
        return ret;
    }
}
function hook_perform_click(){
    var click = Java.use("android.view.View");
    click.performClick.implementation = function(){
        var ret = this.performClick();
        console.log("performClick: " + ret);
        return ret;
    }
}
function hook_set_text(){
    var text = Java.use("android.widget.TextView");
    text.setText.implementation = function(text){
        var ret = this.setText(text);
        console.log("setText: " + ret);
        return ret;
    }
}
function hook_get_text(){
    var text = Java.use("android.widget.TextView"); 
    text.getText.implementation = function(){
        var ret = this.getText();
        console.log("getText: " + ret);
        return ret;
    }   
}
function hook_get_package_name(){
    var package_name = Java.use("android.content.Context");
    package_name.getPackageName.implementation = function(){
        var ret = this.getPackageName();
        console.log("getPackageName: " + ret);
        return ret;
    }
}
//frida byte to string 
function hook_byte_to_string(){
    var byte = Java.use("[B");
    byte.toString.implementation = function(){
        var ret = this.toString();
        console.log("toString: " + ret);
        return ret;
    }
}
//frida string to byte
function hook_string_to_byte(){
    var string = Java.use("java.lang.String");
    string.getBytes.implementation = function(){
        var ret = this.getBytes();
        console.log("getBytes: " + ret);
        return ret;
    }
}
function hook_response(){
    var response = Java.use("okhttp3.Response");
    response.body.implementation = function(){
        var ret = this.body();
        console.log("body: " + ret);
        return ret;
    }
}
function hook_request_url(){
    var request = Java.use("okhttp3.Request");
    request.url.implementation = function(){
        var ret = this.url();
        console.log("url: " + ret);
        return ret;
    }
}
function hook_url(){
    var url = Java.use("java.net.URL");
    url.toString.implementation = function(){
        var ret = this.toString();
        console.log("toString: " + ret);
        return ret;
    }
}
function hook_url_connection(){
    var url_connection = Java.use("java.net.URLConnection");
    url_connection.getInputStream.implementation = function(){
        var ret = this.getInputStream();
        console.log("getInputStream: " + ret);
        return ret;
    }
}
function hook_output_stream(){
    var output_stream = Java.use("java.io.OutputStream");
    output_stream.write.implementation = function(data){
        var ret = this.write(data);
        console.log("write: " + ret);
        return ret;
    }
};
function hook_loadLibrary(){
    var lib = Java.use("java.lang.System");
    lib.loadLibrary.implementation = function(name){
        var ret = this.loadLibrary(name);
        console.log("loadLibrary: " + ret);
        return ret;
    }
    var linker = Java.use("dalvik.system.DexClassLoader");
    linker.loadClass.implementation = function(name){
        var ret = this.loadClass(name);
        console.log("loadClass: " + ret);
        return ret;
    }

}
function libart_hook(){
    var libart = Java.use("libart.DexFile");
    libart.openDexFile.implementation = function(path,name,flags){
        var ret = this.openDexFile(path,name,flags);
        console.log("openDexFile: " + ret);
        return ret;
    }
    var libart_native = Java.use("libart.DexFile.Native");
    libart_native.dexFileOpen.implementation = function(path,name,flags){
        var ret = this.dexFileOpen(path,name,flags);
        console.log("dexFileOpen: " + ret);
        return ret;
    }

}

标签:function,console,implementation,ret,return,hook,var,frida
来源: https://www.cnblogs.com/c-x-a/p/15579846.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有