• android hook native函数


    大概2年前写的代码,今天突然要用到,找了半天,这里记录下

    用到的库: https://pan.baidu.com/s/1htuUQX2

    #include <jni.h>
    #include <string>
    #include <dlfcn.h>
    
    typedef  int  (*  pfnMSHookFunction)(void* result, void* a2, void** a3);
    
    int Aaaaaa(jint a, jint b)
    {
    
        int bRet = 0;
        bRet = a/3;
        return  bRet;
    }
    
    extern  "C"
    JNIEXPORT
    
    int  Java_aaa_aaa_MainActivity_test(jint a,jint b)
    {
        FILE *fp = fopen("1.txt", "rb");
        if (0 != fp)
        {
            printf("111");
        }
    
      return   Aaaaaa(a, b);
    }
    
    
    typedef FILE*    (*pfnmyfopen)(const char *, const char *);
    pfnmyfopen porg = 0;
    
    //fake 函数
    FILE    *myfopen(const char * name, const char * flag)
    {
        FILE* fret = 0;
        fret =  porg(name,flag);
        return  fret;
    }
    
    //这里用的是substrate
    void initHook()
    {
       void* phandle =dlopen("libhook.so",RTLD_NOW );
        pfnMSHookFunction pmsHook=(pfnMSHookFunction)dlsym(phandle,"MSHookFunction");
        pmsHook((void*)fopen,(void*)myfopen,(void**)&porg);
    
    
    }
    
    jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved)
    {
        JNIEnv* env = 0;
        jint result = -1;
    
        if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK)
        {
            return -1;
        }
    
        initHook();
    
        result = JNI_VERSION_1_4;
    
        return result;
    }
  • 相关阅读:
    jmeter测试get post 笔记
    Fiddler发送get post测试 笔记
    jmeter json乱码
    IDEA+selenium3+火狐/谷歌驱动 JAVA初步环境搭建 笔记
    java源代码
    java测试
    考试感受
    周进度总结
    周进度总结
    周进度总结
  • 原文地址:https://www.cnblogs.com/fply/p/8426300.html
Copyright © 2020-2023  润新知