2019-08-23

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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容