| /*同样的,没有错误检查*/ 
#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <fcntl.h> 
/*不过是我们的返回代码*/ 
unsigned char asmcode[]={0xc3}; 
int main(int argc, char *argv[]) 
{ 
unsigned long counter; 
int kmemh; 
/*打开设备*/ 
kmemh = open("/dev/kmem", O_RDWR); 
/*找到内存地址中函数开始的地方*/ 
lseek(kmemh, strtoul(argv[1], NULL, 16), SEEK_SET); 
/*写入我们的补丁字节*/ 
write(kmemh, &asmcode, 1): 
close(kmemh); 
} |