经典博客:
Linux内存替换系列(包括实验 实验可行)  就是要注意下是64位还是32位的。。。。
https://blog.csdn.net/Dearggae/article/details/47379245

玩转ptrace:
http://www.cnblogs.com/wangkangluo1/archive/2012/06/05/2535484.html

ptrace系统调用
ptrace系统调从名字上看是用于进程跟踪的,它提供了父进程可以观察和控制其子进程执行的能力,并允许父进程检查和替换子进程的内核镜像(包括寄存器)的值。其基本原理是: 当使用了ptrace跟踪后,所有发送给被跟踪的子进程的信号(除了SIGKILL),都会被转发给父进程,而子进程则会被阻塞,这时子进程的状态就会被系统标注为TASK_TRACED。而父进程收到信号后,就可以对停止下来的子进程进行检查和修改,然后让子进程继续运行。
其原型为:
#include sys/ptrace.h
long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data);
ptrace有四个参数:
1). enum __ptrace_request request:指示了ptrace要执行的命令。
2). pid_t pid: 指示ptrace要跟踪的进程。
3). void *addr: 指示要监控的内存地址。
4). void *data: 存放读取出的或者要写入的数据。
ptrace是如此的强大,以至于有很多大家所常用的工具都基于ptrace来实现,如strace和gdb。
来自 https://www.cnblogs.com/tangr206/articles/3094358.html

【描述】
提供父进程观察和控制另一个进程执行的机制,同时提供查询和修改另一进程的核心映像与寄存器的能力,主要用于执行断点调试和系统调用跟踪。
【功能】
Request参数决定了系统调用的功能:(第一个参数决定ptrace的行为也决定了接下来其它3个参数是怎样被使用的)
• PTRACE_TRACEME
本进程被其父进程所跟踪。其父进程应该希望跟踪子进程。
• PTRACE_PEEKTEXT, PTRACE_PEEKDATA
从内存地址中读取一个字节,内存地址由addr给出。
• PTRACE_PEEKUSR
从USER区域中读取一个字节,偏移量为addr。
• PTRACE_POKETEXT, PTRACE_POKEDATA
往内存地址中写入一个字节。内存地址由addr给出。
• PTRACE_POKEUSR
往USER区域中写入一个字节。偏移量为addr。
• PTRACE_SYSCALL, PTRACE_CONT
重新运行。
• PTRACE_KILL
杀掉子进程,使它退出。
• PTRACE_SINGLESTEP
设置单步执行标志
• PTRACE_ATTACH
跟踪指定pid 进程。
• PTRACE_DETACH
结束跟踪

Intel386特有:
• PTRACE_GETREGS
读取寄存器
• PTRACE_SETREGS
设置寄存器
• PTRACE_GETFPREGS
读取浮点寄存器
• PTRACE_SETFPREGS
设置浮点寄存器
init进程不可以使用此函数

来自 https://blog.csdn.net/Dearggae/article/details/47144393

将代码插入到自由空间
在前面的例子中我们将代码直接插入到了正在执行的指令流中,然而,调试器可能会被这种行为弄糊涂,所以我们决定把指令插入到进程中的自由空间中去。通过察看/proc/pid/maps可以知道这个进程中自由空间的分布。

小结:
ptrace函数可能会让人们觉得很奇特,因为它居然可以检测和修改一个运行中的程序。这种技术主要是在调试器和系统调用跟踪程序中使用。它使程序员可以在用户级别做更多有意思的事情。已经有过很多在用户级别下扩展操作系统得尝试,比如UFO,一个用户级别的文件系统扩展,它使用ptrace来实现一些安全机制。

来自 http://www.cnblogs.com/wangkangluo1/archive/2012/06/05/2535484.html

断点的实现原理,就是在指定的位置插入断点指令,当被调试的程序运行到断点的时候,产生SIGTRAP信号。

来自 https://www.cnblogs.com/tangr206/articles/3094358.html

linux之ptrace相关推荐

  1. linux 分析 ptrace

    linux 分析 ptrace() 形式 #include <sys/ptrace.h> int ptrace(int request, int pid, int addr, int da ...

  2. Linux 系统调用 Ptrace 详解

    From:https://blog.csdn.net/u012417380/article/details/60470075 Ptrace 详解:https://www.cnblogs.com/tan ...

  3. ptrace linux,【ptrace注入】linux下ptrace注入器的实现

    [Asm] 纯文本查看 复制代码#include "iostream" #include #include #include #include #include #include ...

  4. Linux ptrace 原理,从gdb原理学习ptrace调用

    Linux的ptrace系统调用,是Android二进制hook框架adbi的核心.因此学习adbi之前,先学习一下ptrace()函数. ptrace介绍 ptrace可以拆开来,看作Process ...

  5. linux各版本代码量,linux各版本对应溢出漏洞总结(溢出代码)

    记录一下. 2.4.17 newlocal kmod 2.4.18 brk brk2 newlocal kmod km.2 2.4.19 brk brk2 newlocal kmod km.2 2.4 ...

  6. linux pipe 命名管道,linux 进程学习笔记-named pipe (FIFO)命名管道

    与"无名管道"不同的是,FIFO拥有一个名称来标志它,所谓的名称实际上就是一个路径,比如"/tmp/my_fifo",其对应到磁盘上的一个管道文件,如果我们用f ...

  7. 常见问题总结性回答(转)

    第一章------关于找软件 常用类软件: 华军软件 http://www.newhua.com/ (根据物理位置自行选择速度快的镜像) 中国下载 http://download.com.cn/ (使 ...

  8. 《老罗的Android之旅》导读PPT

    虽然好几个月没更新博客了,但是老罗一直有在准备可以分享的东西的.除了早前在微博分享Android4.2相关技术之外,这次还特意准备了13个PPT,总结之前所研究过的东西.内容从Android组件设计思 ...

  9. 逆向学习(二) 安卓逆向

    安卓逆向 0.准备工作和大纲 JAVA环境.apktool.android APK.JADX.keytool.jarsigner(最后两个为JAVASDK自带工具) java基本知识:源代码文件为XX ...

最新文章

  1. 用 TS + Vue 写了一个在 Chrome 中运行 Prettier 格式化的扩展程序
  2. Linux内核中影响tcp三次握手的一些协议配置
  3. 【笔记】docker核心概念和使用 docker命令
  4. suse系统关闭防火墙
  5. JavaScript的数组常用方法
  6. 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains解决
  7. 释放mysql ibdata1文件_释放MySQL ibdata1文件的空间
  8. arduino智能浇花系统_arduino+水泵+继电器+RFID
  9. LinuX编译显示内核配置无效,配置编译内核(Linux kernel)
  10. Java json拼接字符串_Java中拼接json格式字符串
  11. Redis学习总结(12)——Redis常见面试题再总结
  12. 二叉树的非递归遍历(转载)
  13. 好汇阁外汇MT4-API多账户跟单交易管理系统介绍
  14. 手把手教你通过PS给所需证件照进行换底色处理
  15. day7 作业实现:四层字典嵌套循环
  16. Android 界面一键变灰/黑白
  17. 未能找到路径中的某个部分_C# 未能找到 的一部分
  18. Microsoft Visual Studio 2013 产品密匙
  19. go语言学习:语言简介
  20. NAS自动挂载和关闭硬盘电源原理

热门文章

  1. redis订阅怎么退出_Coroutine\Redis 订阅模式 调用退订无效果
  2. 如何读取图片上的文字?简单的方法分析给你
  3. 网上国网 2.3.0 encryptData 用电app逆向研究
  4. linux下怎么批量命名文件,Linux批量重命名文件
  5. 《视搭》一个完整的视频可视化搭建项目
  6. 小程序,开发者微信登录可以发消息,换个微信号就发不了消息,请大神指点
  7. 建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞
  8. 国内当前游戏公司一览
  9. Pandas数据归一化
  10. 【记录】算法 - JavaScript版