FILES
/dev/mem Provides access to the computer's physical memory. /dev/kmem Provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device. /dev/allkmem Provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device.
http://www.linuxjournal.com/magazine/anthony-lineberry-devmem-rootkits?page=0,0
http://tldp.org/LDP/khg/HyperNews/get/devices/fake.html
http://www.plugcomputer.org/plugforum/index.php?PHPSESSID=pelnql865kdm19vfl3bgvr14f7&topic=104.0
source :
http://forum.kernelnewbies.org/read.php?13,2316,2316
Example : Blink the Led's from the user space through the /dev/mem
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define LED_ADDR 0x80840020
extern int errno;
int main()
{
int i;
unsigned char *leds;
unsigned char val;
int fd = open("/dev/mem",O_RDWR|O_SYNC);
if(fd < 0)
{
printf("Can't open /dev/mem\n"
;
return 1;
}
leds = (unsigned char *) mmap(0, getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x80840000);
if(leds == NULL)
{
printf("Can't mmap\n"
;
return 1;
}
else
printf("leds=%x\n",leds);
for(i = 0; i < 256; i++)
{
val = i % 4;
leds[0x20] = val;
sleep(1);
}
return 0;
}
Hi Naveen,
ReplyDeleteKindly suggest me a solution, when i run a code to access /dev/mem it shows a message "can not open /dev/mem", what should i do?
Try Sudo
Delete