文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用ptrace 截获系统调用

使用ptrace 截获系统调用

时间:2007-04-18  来源:loughsky

这两天正在书写,内存分析软件,今天刚刚完成,计划分为3个层面,一个是通过/proc/pid/stat信息,显示出操作系统级别,物理内存使用曲线;一个是截获有管内存分配的系统调用,获得虚拟内存使用曲线;一个是获得malloc等的日志,来获得具体内存使用情况。   在截获有关内存分配的系统调用时: brk,和mmap的参数传递很简单,他们都是通过寄存器来传递参数         m_sys->param[0] = ptrace(PTRACE_PEEKUSER,pid, 4 * 0,NULL);
        m_sys->param[1] = ptrace(PTRACE_PEEKUSER,pid, 4 * 1,NULL);
        m_sys->param[2] = ptrace(PTRACE_PEEKUSER,pid, 4 * 2,NULL);
        m_sys->param[3] = ptrace(PTRACE_PEEKUSER,pid, 4 * 3,NULL);
        m_sys->param[4] = ptrace(PTRACE_PEEKUSER,pid, 4 * 4,NULL);
        m_sys->param[5] = ptrace(PTRACE_PEEKUSER,pid, 4 * 5,NULL);
  old_mmap的参数传递与其不同,其使用堆栈来传递参数,获得方法         m_sys->syscallno = ptrace(PTRACE_PEEKUSER,pid, 4 * ORIG_EAX, NULL);
        m_sys->param[0] = ptrace(PTRACE_PEEKUSER,pid, 4 * 0,NULL);
        ptrace_read(child,PTRACE_PEEKDATA,m_sys.param[0],(void*)m_sys.param,sizeof(m_sys.param));   其中 struct msyscall
{
    long syscallno;
    long ret;
    long param[6];
};
 
相关阅读 更多 +
排行榜 更多 +
步行僵尸2无限金币版

步行僵尸2无限金币版

体育竞技 下载
狐狸一号特殊任务无限金币版

狐狸一号特殊任务无限金币版

体育竞技 下载
忍者之雷复仇无限金币钻石版

忍者之雷复仇无限金币钻石版

体育竞技 下载