读取物理内存/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);
}