动态修改进程代码段(二)

简介

上一次我们的文章讲述了一些如何动态修改进程代码段的基础内容,包括

  • 如何定位要修改的代码段的地址
  • 如何准备要修改的代码
  • 修改代码段的方式

并且用一个简单的例子说明如何在程序中进行代码段的自修改。

我们在上文的结尾处说过,自修改其实用处不大,我们举那个例子主要是为了说明原理,另外,上文使用的直接覆盖函数代码段的方式也有缺陷,具体原因我们已经在上文描述过,那么在本文中,我们将讲解更为有用的动态修改其他程序代码段的原理,并且使用跳转的方式来安置新的程序数据,最后给出一个例子, 说明它的用处和用法。

在本文中,我们主要讲解如下的点:

  • 如何使用ptrace(2)系统调用来修改其他进程代码段
  • 如何使用跳转指令来安置新的程序数据

继续阅读“动态修改进程代码段(二)”