栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

跟踪过程的写内存。

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

跟踪过程的写内存。

您正在以只读模式(

O_RDONLY
)打开文件。我建议
O_RDWR
改用:

  mem_fd = open(mem_file_name, O_RDWR);

但是,从

man proc
目前尚不清楚这是否可行:

   /proc/[pid]/mem          This  file can be used to access the pages of a process's

memory
through open(2), read(2), and lseek(2).


编辑:

我也很好奇,所以我

ptrace()
直接使用下面的示例:

#include <sys/ptrace.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <stdint.h>#define SHOW(call) ({ int _ret = (int)(call); printf("%s -> %dn", #call, _ret); if (_ret < 0) { perror(NULL); }})char changeme[] = "This is  a test";int main (void){  pid_t pid = fork();  int ret;  int i;  union {    char cdata[8];    int64_t data;  } u = { "Hijacked" };  switch (pid) {  case 0:     sleep(1);    printf("Message: %sn", changeme);    exit(0);  case -1:    perror("fork");    exit(1);    break;  default:     SHOW(ptrace(PTRACE_ATTACH, pid, 0, 0));    SHOW(ptrace(PTRACE_POKEDATA, pid, changeme, u.data));    SHOW(ptrace(PTRACE_CONT, pid, 0, 0));    wait(NULL);    break;  }  return 0;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号