目标代码插入堆
目标代码插装是一种指向目标代码并将其插入到测试代码中以获取程序运行信息的测试方法。也叫动态程序分析法。在插入目标代码之前,测试人员应该分析目标代码的逻辑结构,从而确定应该插入目标代码的位置。

代码插装对于内存监控、指令跟踪、错误检测等具有重要意义。与逻辑覆盖方法相比,目标代码插装在测试过程中不需要重新编译或链接程序,目标代码的格式与具体的编程语言无关,而主要与操作系统有关,因此目标代码插装应用广泛。
1.目标代码堆栈的原理
目标插装方法的原理是在程序运行平台和底层操作系统之间建立一个中间层。通过中间层可以检查和执行程序,修改指令,开发人员和软件分析工程师可以观察运行的程序,判断程序是否被恶意攻击或有异常行为,从而提高程序的整体质量。
2.目标代码堆栈方法的三种执行模式。
因为目标代码是可执行的二进制程序,所以目标代码的插装可以分为两种情况:一种是对未打开的目标代码进行插装,从头到尾插入测试代码,然后执行程序。当需要一个完整的系统或模拟时,这种方法适用于代码覆盖测试。在另一种情况下,测试代码被插入到正在运行的程序中,以检测程序在特定时间的运行状态信息。
目标代码检测有以下三种执行模式。

即时模式:原二进制或可执行文件未被修改或执行,修改部分的二进制代码生成文件的副本存储在新的内存区域,测试时只执行修改部分的目标代码。
解释模式:在解释模式下,目标代码被视为数据,测试人员插入的测试代码作为目标代码指令的解释语言。每当执行一条目标代码指令时,程序都会在测试代码中找到并执行相应的替代指令,通过测试替代指令的执行信息可以获得程序的运行信息。
探测模式:探测模式使用新指令覆盖旧指令进行测试,这在某些架构中更好。
3.目标代码堆叠工具
由于目标程序是可执行的二进制文件,不可能手工插入目标代码,所以目标代码插入一般是通过相应的插入工具来实现的,插入工具提供的API可以为用户提供访问指令。

有两种常见的目标代码堆积工具。
管脚动态二进制检测工具
Pin是Intel公司开发的免费框架,可用于二进制代码检测和源代码检测。它支持PINIA-32、x86-64和MIC系统,可以运行在Linux、Windows和Android平台上。Pin具有基本块分析器、高速缓存模拟器、指令跟踪生成器等模块。,可用于创建程序分析工具和监控程序运行状态信息。Pin非常稳定可靠,常用于测试大型程序,如fice office软件、虚拟现实引擎等。
发电机
DymamoRIO是一个授权的动态二进制代码检测框架。作为应用程序和操作系统之间的中间平台,可以实现程序执行时任意部分的代码转换。DyamoRfIO支持1A-32、AMD64和Arb64系统,可以运行在Limuy Windowus和Adoid平台上。DyamRIO包括内存调试工具、内存跟踪工具、指令跟踪工具等。
免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报
举报













