简介
上一次我们的文章讲述了一些如何动态修改进程代码段的基础内容,包括
- 如何定位要修改的代码段的地址
- 如何准备要修改的代码
- 修改代码段的方式
并且用一个简单的例子说明如何在程序中进行代码段的自修改。
我们在上文的结尾处说过,自修改其实用处不大,我们举那个例子主要是为了说明原理,另外,上文使用的直接覆盖函数代码段的方式也有缺陷,具体原因我们已经在上文描述过,那么在本文中,我们将讲解更为有用的动态修改其他程序代码段的原理,并且使用跳转的方式来安置新的程序数据,最后给出一个例子, 说明它的用处和用法。
在本文中,我们主要讲解如下的点:
- 如何使用ptrace(2)系统调用来修改其他进程代码段
- 如何使用跳转指令来安置新的程序数据