LINUX 3.5.4 PTRACE (系列七)

本文主要研究父进程利用ptrace系统调用访问子进程的内存。

跟踪进程能够查看被跟踪进程的地址空间并且查看进程某个内存地址锁存储的变量的值。在这里我们需要使用linux内核的nm工具对程序进行分析从而获取到符号的地址信息。

本文分析的例子就是通过变量的地址修改变量的值。具体程序如下:

child4:

#include "ptrace.h"
void main(int argc,char *argv[])
{
  pid_t traced_process;
  traced_process=atoi(argv[1]);
  ptrace(PTRACE_ATTACH,traced_process,NULL,NULL);
  wait(NULL);
  int data=ptrace(PTRACE_PEEKDATA,traced_process,0x080496f4,0);
  printf("data=%d\n",data);
  data=245;
  ptrace(PTRACE_POKEDATA,traced_process,0x080496f4,data);
  ptrace(PTRACE_DETACH,traced_process,0,0);
}

list9.c

#include "ptrace.h"
int i;
void main()
{
  i=143;
  printf("child 4 start ...\n");
  while(i!=245);
   printf("child 4 outside loop ...\n");
}


首先在一个中断后台运行child4.o

#./child4.o\ &

然后使用ps命令查看该进程的进程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值