摘要
本发明提供了一种面向LL/SC锁指令的二进制插桩方法,包括步骤S1:DBI工具的前置准备与启动;步骤S2:LL/SC原子操作指令序列的加载和对应内存的分配;步骤S3:DBI工具将LL/SC原子操作指令序列对应的机器码进行解码和翻译,并转化为IR中间表达;步骤S4:基于IR中间表达进行影子内存插桩;步骤S5:将插桩后的IR中间表达转换为目标机器码,并在DBI工具的模拟环境中运行,以获取LL/SC原子操作指令序列的执行信息。本发明能够对包含LL/SC的多线程应用正确翻译和代码插桩,保证二进制插桩框架中LL/SC指令对的正确翻译,确保翻译后的指令在竞争状态下,对共享状态修改的正确性和原子性。