读取物理内存代码 /dev/mem

读取物理内存/dev/mem前0xf代码

原著https://www.cnblogs.com/wangfengju/p/6172438.html

#include<stdio.h>  
#include<unistd.h>  
#include<sys/mman.h>  
#include<sys/types.h>  
#include<sys/stat.h>  
#include<fcntl.h>  

int main()  
{  
    unsigned char * map_base;
    int n, fd;
    fd = open("/dev/mem", O_RDWR|O_SYNC);
    if (fd == -1)
    {
        return (-1);  
    }
    map_base = mmap(NULL, 0xf, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x00);
    if(map_base == 0)
    {
        printf("NULL pointer!\n");
    }
    else
    {
        printf("Successfull!\n");
    }

    unsigned long addr;  
    unsigned char content; 

    int i;
    for(i=0;i<=0xf;i++)
    {  
        addr = (unsigned long)(map_base + i);
        content = map_base[i];
        printf("address: 0x%lx   content 0x%x\n", addr, (unsigned int)content);
    }

    close(fd);
    munmap(map_base, 0xf);
    return (1);
}

猜你喜欢

转载自blog.csdn.net/qq_14814909/article/details/84987491
Dev