美文网首页
2019-08-23

2019-08-23

作者: 西溪里 | 来源:发表于2019-08-23 15:15 被阅读0次

    android 取地址

    int read_maps(){

    LOGE("开始遍历进程pid");

        char filename[] ="/proc/self/maps";  //文件名

        FILE *fp;

        char  p[7] ={""};

        int  i;

        char StrLine[1024];      //每行最大读取的字符数

        char name[]="/system/lib/libc.so";

        if((fp = fopen(filename,"r")) ==NULL)//判断文件是否存在及可读

        {

    LOGE("error!");

            return -1 ;

        }

    while (!feof(fp))//feof 文件结束返回非0值

        {

    fgets(StrLine,1024,fp);                //每次读取一行

            if(NULL!=strstr(StrLine,name)){

    strncpy(p,StrLine,8);

                p[8]='\0';

                LOGE("基地址 %s\n",p);

                sscanf(p,"%x",&i);        // 将char数组的赋值给int

                i = i +0x0002FB93;  //  0002FB92    基地址加上偏移

                LOGE("函数 addr %x",i);

                return i;

            }

    }

    fclose(fp);                      //关闭文件

        return  0;

    }

    相关文章

      网友评论

          本文标题:2019-08-23

          本文链接:https://www.haomeiwen.com/subject/ekktectx.html