基本块

  • 融合知识的小片段代码相似性比较模型
    小于5条指令的基本块数量占比53%,不超过5个基本块组成的二进制函数占比70.69%。这些较少基本块组成的小片段代码,由于携带指令序列较短,控制流程图简单,有限的语义信息使得当前二进制代码相似性比较方案准确性差,因此如何提升小片段代码相似性比较准确率对软件安全分析具有重要意义。软件是人类在工作中用特定语言创造出来的,是人类知识得以延续的新载体。软件知识并不随软件编译优化和跨平台的改变而改变,因此知识的稳定性、可重复性和可预测性[2]能准确反映代码间相似性比

    计算机工程与设计 2023年8期2023-09-13

  • 基于关联规则的终端软件缺陷检测方法研究
    ]。二进制软件基本块执行顺序根据软件底层指令确定,软件底层指令位于尾指令前面,由多个汇编指令构成,基本块在执行第一行代码时,不需要执行二进制程序,此时,基本块可表示为返回指令集合设置为a={b1,b2,…,bm},m为基本块a的地址长度,b1表示基本块a的跳转指令,bm表示基本块a的汇编指令。二进制软件的第一行代码程序可表示为若干基本块的集合A={a1,a2,…,ai},i表示基本块的控制信息[5-6]。为了提取终端软件特征信息,需要根据尾指令中的自定义函

    电子设计工程 2023年5期2023-03-10

  • 改进的基于底层虚拟机混淆器的指令混淆框架
    分为函数混淆、基本块混淆和指令混淆。指令作为高级程序的底层组织,面向指令层级的混淆可以做一些更细致精准的操作。如果攻击者能够破解程序,首先面对的便是破解后的程序指令,因此指令混淆对此阶段的代码保护具有重要作用。这也正是本文的工作聚焦于指令混淆的原因。底层虚拟机混淆器(Obfuscator Low Level Virtual Machine,OLLVM)[7]是一款经典的开源混淆项目,它支持指令替换、虚假控制流、控制流扁平化等功能。然而,在指令混淆层面,它只

    计算机应用 2023年2期2023-02-24

  • GCC非满载SLP向量化①
    rizer)和基本块向量化器(basic block vectorizer), 它们分别具有独立的入口[18]. 基本块向量化器使用SLP方法发掘直线型代码中的超字级并行性[19].本文介绍了一种面向基本块的非满载向量化方法ISLP(insufficient SLP), 旨在完成超字级并行性不足程序的向量化. 在深入分析了GCC 7.1.0的SLP向量化框架后, 详细探讨了ISLP在GCC中的实现, 包括非满载SLP计算树的构建, 基于数据重组策略的代码生

    计算机系统应用 2022年9期2022-09-20

  • SiCsFuzzer:基于稀疏插桩的闭源软件模糊测试方法
    盖率不可推导的基本块或分支进行插桩跟踪,并根据跟踪结果推导其余基本块或分支的被覆盖情况,同时结合“预热”优化,避免因动态插桩平台反复启动以及对目标程序代码的重复翻译所引入的时间开销。通过剔除闭源软件覆盖率跟踪过程中的冗余开销,提高闭源程序模糊测试的效率,进而提高针对闭源程序的漏洞发现效率。其中,基于稀疏插桩的覆盖率跟踪策略以传统程序分析技术的支配关系作为插桩位置选择以及覆盖率推导的基础。目前主流的基于覆盖率反馈的模糊测试工具默认对目标程序中的所有基本块或分

    信息安全学报 2022年4期2022-08-16

  • 基于多尺度卷积神经网络的低剂量CT图像后处理
    理方案2.1 基本块与普通CNN相比,残差网络可以实现更深层次的网络结构。残差网络一般由基本块(Basic block)构成。通用的基本块结构如图2(a)所示,包含3个卷积层(Conv+BN+ReLU)和1个平均池化层。卷积层由卷积(Conv)、批归一化(Batch Norm,BN)和ReLU激活函数实现。图2 基本块结构Fig.2 Structure of basic block本文设计的多尺度CNN以低剂量CT图像为输入,以重建的高质量CT图像为输出。

    燕山大学学报 2022年4期2022-08-01

  • 基于预训练的恶意软件分类方法
    不再仅仅把程序基本块相连而是在基本块的基础上再以函数作为图节点进行嵌入。1 检测模型概述本章节将介绍检测模型的整体概况和关键技术细节。1.1 控制流图及函数调用图基本块是程序运行的基本单元,由基本块构成的程序控制流图能够很准确地反映程序的特征,并且控制流图天然形成图结构=(,),基本块本身作为图顶点(),控制流关系形成边()。但在程序实际运行时,由基本块构成的函数结构也是客观存在的,仅仅只考虑基本块构成的图结构会存在信息损失,本文在控制流图(CFG)的基础

    现代计算机 2022年9期2022-07-25

  • 一种基于时间分片的定向模糊测试
    G),计算所有基本块到达目标点的最小距离,如Dijkstra 距离,这些距离用于在模糊测试时计算种子的优先度、能量分配等,使定向模糊测试趋向于目标点。在静态分析中,由于LLVM 可跨平台、编译速度显著优于gcc,并且可以设计插件提取CFG 和CG,因此在定向模糊测试中,通过LLVM 插桩的方式将距离和覆盖率信息插入目标程序。1.3 符号执行符号执行是指将程序的约束条件转化为抽象的符号,则一个程序的输出即可转化为一个关于输入的函数,符号执行可以得出到达目标代

    现代计算机 2022年8期2022-07-01

  • 基于级联森林的控制流错误检测优化算法
    基于级联森林的基本块脆弱性预测模型,该模型经过大量的故障注入实验样本训练,可以识别出脆弱性高的基本块.我们针对性的将这些高脆弱性的基本块进行重新拆分,使其能够更好的配合基于标签的检测算法.我们对MiBench测试集[16]中6个测试程序进行故障注入实验,结果表明,在对程序基本块进行选择并拆分后,CFCSS算法[10]和RCFC算法[11]的检测率均有提升,且相对于随机插桩标签的开销较低,实现了高效费比的基本块拆分.本文的主要贡献如下:1)本文通过收集分析大

    小型微型计算机系统 2022年5期2022-05-10

  • 基于原子混淆的通用侧信道漏洞修补方法
    码标识信息,以基本块为最小单元对漏洞代码做进一步处理:混淆插桩模块在编译时向漏洞代码插入额外的混淆访存指令,以达到隐藏程序真实运行轨迹的目的;原子事务封装模块封装漏洞代码和混淆代码为原子事务,保障代码在执行中不可被中断。在运行阶段,动态混淆模块与异常检测模块被加载到程序进程空间中,动态混淆模块在程序执行时不断变换混淆访存目标地址,增加混淆噪声的不确定性,异常检测模块则监控原子事务在执行过程中未被恶意中断,确保代码是以原子性运行的。图1 侧信道漏洞修补的工作

    网络与信息安全学报 2022年2期2022-04-18

  • 基于视频码流的交通标志检测
    为H.264,基本块大小为4×4.在视频编码码流中,对于帧内预测编码块而言,帧内预测模式、像素残差分布情况CBP和像素残差经过熵编码后都会写入码流。对交通标志边缘部分而言,因具有固定形状和较明显色彩,与周围环境差别明显,其帧内预测模式多采用4×4块预测模式,而非16×16块预测模式;其像素残差情况CBP值亮度和色度DC直流分量和AC交流分量多数情况不为0,色度AC交流分量基本不为0,其像素残差值较大,尤其是色度UV残差值更明显。可以通过分析预测模式、像素残

    太原理工大学学报 2022年1期2022-01-27

  • 面向国产平台的LLVM 自动向量化移植与优化
    实现了循环级与基本块级的自动向量化方法[5]。申威系列处理器是我国自主研发、面向高性能计算的通用微处理器,该处理器主要针对计算密集型程序,如科学计算、数字信号分析、多媒体处理等。申威系列处理器包含丰富的向量运算指令和完善的向量重组指令,为程序的向量化提供了良好的硬件基础。LLVM 编译器中自动向量化部分主要由Intel 团队开发推进,算法以及向量指令的应用更适用于X86 平台[6]。目前,LLVM 编译器还未支持面向国产平台的自动向量化。由于指令集的差别,

    计算机工程 2022年1期2022-01-14

  • 基于多粒度语义分析的二进制漏洞搜索方法*
    urus分别对基本块、函数和模块3种不同粒度下的语义进行提取及分析,并计算3种粒度下的语义特征相似度。在获取到3种粒度下语义特征的特征相似度后,Taurus将计算其总体相似度,然后对相似度得分进行降序排序,最终判定目标二进制文件中是否含有疑似漏洞。目前本文已实现Taurus原型程序,并将其与各种配置下的最新漏洞搜索方法进行了比较,结果表明Taurus具有更好的搜索性能。本文贡献如下所示:(1)首次提出基于多粒度语义特征分析的二进制漏洞搜索方法,以提高漏洞搜

    计算机工程与科学 2021年12期2021-12-23

  • 采用隐式跳转的控制流混淆技术
    制流图,之后从基本块跳转、函数调用与变量引用入手,隐藏这些敏感信息,减少静态分析时所能获取到的有价值信息,实现对程序的保护。同时通过构建状态转移模型和实施基于环境密钥的两阶段加密方案,解决了密钥安全和密文重复出现问题,弥补了其他方案的不足,提高了软件保护的能力。1 相关工作代码混淆的概念由来已久,在20世纪90年代末这个概念就已经被提出。它的形式有很多,其中最简单的一种形式是符号混淆,它通过将源码中的函数名、类名以及变量名替换成一些无意义的符号,来增加攻击

    计算机工程与应用 2021年20期2021-10-28

  • 基于基本块分组与融合的特征直线检测算法
    法[9],提出基本块的概念,设计了一种基于基本块分组、渐进式融合的特征直线检测方法。利用新的Helmholtz原理准则剔除由噪声等外界干扰形成的虚假特征直线,得到准确特征直线集。实验用Matlab 仿真工具进行了验证,结果证明了该算法对特征直线检测的高效性。1 相关工作目前,常见的两类特征直线检测方法为:基于图像空间变换域的特征直线检测方法和基于图像像素信息的特征直线检测方法。基于图像空间变换域的特征直线检测方法是一种全局特征线检测方法,其基本思想是在图像

    计算机技术与发展 2021年9期2021-09-28

  • 基于LLVM 的Android 应用程序加固方法
    APK 内所有基本块进行切片并进行混淆会导致很大的性能开销,因此只能选择部分关键函数进行保护。Kyeonghwan Lim 等人[3]进一步提出针对Android 本地代码的保护方法,通过将Android 字节码以更安全和高效的形式保存在本地代码中并使用OLLVM 来对其进行混淆,以增强代码最终的安全性,但是近年来有很多针对OLLVM 的反混淆研究,仅仅使用OLLVM 进行混淆保护不能很好的增加攻击者分析的难度,因此需要增加混淆方式的多样性和复杂性以便更好

    现代计算机 2021年11期2021-05-28

  • Proto-Perf:快速精确的通用处理器原型系统性能评估方法*
    动态程序分析和基本块向量聚类分析的处理器原型系统性能评估方法Proto-Perf,该方法可以显著缩短程序测试的时间,同时可以提供较高精确度的性能测试结果。(2)Proto-Perf使用简单,并且可以跨不同处理器验证平台工作。(3)实验结果表明,Proto-Perf可以在非常短的时间内精确地测算出处理器原型系统的性能。本文的其余部分为:第2节介绍快速精确的通用处理器FPGA原型系统性能评估方法的研究动机,第3节介绍Proto-Perf性能评估方法,第4节介绍

    计算机工程与科学 2021年4期2021-05-11

  • 距离与权重相结合的导向式灰盒模糊测试方法
    析计算出程序各基本块到目标区域的距离,并通过插桩的方式将距离信息插入到目标程序中,在测试阶段根据插桩信息计算每个种子距离目标区域的距离,使用启发式算法提升距离目标区域近的种子生成测试用例的数量,保证了测试的高效性与导向性[17]。本文对现有的导向式灰盒模糊测试方法进行分析,提出一种距离与权重相结合的导向式灰盒模糊测试方法,通过改进距离计算方法提高导向式灰盒模糊测试的准确性。1 导向式灰盒模糊测试分析本文以文献[15]开发的导向式灰盒模糊测试器Aflgo 为

    计算机工程 2021年3期2021-03-18

  • 通道与空间注意力图像超分辨率网络
    于注意力机制的基本块,它由通道注意力和空间注意力两部分组成,分别对通道间的高低频信息与同一通道内不同空间位置的高低频信息分配不同的权重,从而使得高频与低频信息都能更好地被学习。进一步的,基于该注意力基本块,设计了基于注意力机制的单幅图像超分辨率网络,若干基本块结合短期特征体质模块组成一特征提取组,若干特征提取组与长期特征调制模块形成整个特征映射子网。低分辨率图像在经过前期特征提取、特征映射子网与上采样模块后,高分辨率图像得以重建,其中特征调制模块能够解决来

    计算机工程与应用 2021年2期2021-01-22

  • 基于程序双维度特征的恶意程序相似性分析
    息,并基于离线基本块序列构造软件控制流图,从软件代码语义特征和结构特征两个维度对软件进行相似性分析。动态提取软件特征能够有效避免加壳、混淆等软件变形技术的影响,提取汇编层面的信息使检测不受软件开发语言的限制,从两个维度进行检测,既考虑到软件的语义特征又考虑到软件的结构特征,能够对软件进行较为全面的分析。1 相关工作随着软件技术的发展,软件复用技术给软件开发带来极大便利,同时也带来了盗版软件泛滥,恶意软件开发门槛降低,恶意软件泛滥的问题。最初,软件相似性或同

    计算机工程与应用 2021年1期2021-01-11

  • 抵御控制流分析的程序混淆算法
    图中的结点称为基本块,它是程序的一段指令序列且按顺序执行。每个基本块只有一个唯一的出口和入口,其中入口是基本块的第一条指令,可以是程序的第一条指令、无条件跳转的目标指令或条件跳转的下一条指令。出口是基本块的最后一条指令,其一般为程序的结束指令、跳转指令或跳转目标指令的前一条指令。然后,通过路径可达性推理得到程序行为同外部执行环境的输入之间的依赖关系。这些依赖关系可被攻击者用于程序反编译破解、隐私数据窃取和程序算法重构等,对程序安全运行和知识产权的保护构成严

    计算机工程与设计 2020年11期2020-11-17

  • 结合路径标签和数据变异的模糊测试关键数据定位方法
    以被划分成很多基本块. 使用B表示一个基本块,同时假设可执行文件Ei的代码可划分为Li个基本块,那么可将Ei视为基本块的集合EBi={Bi,1,Bi,2,…,Bi,Li}.PB=∪EBi={B1,B2,…,BL}.(1)程序执行的过程就是按照某种顺序执行集合PB中的基本块,因此执行过程的监控可以转换为监控正在执行的基本块,执行过程的记录则可以转换为记录执行过的基本块序列.一个基本块B有且只有一个入口和一个出口,在其执行过程中仅会从入口处开始执行并从出口处结

    北京理工大学学报 2020年9期2020-10-21

  • 基于控制流的软件设计与实现一致性分析方法
    制流信息,包括基本块序列和控制流图。函数间调用关系反映了系统的结构[13],每个函数内部的控制流信息反映了函数的内部结构,因此选其作为函数特征并建立特征模型。函数特征提取具体过程如下:2.1 中间表示的生成伪代码和源代码中的控制结构会造成控制流的改变,难以直接从中获取控制流信息,因此将其转换成一种按顺序执行的语句序列——中间表示。该过程包括伪代码中间表示的生成和源代码中间表示的生成。2.1.1 伪代码中间表示的生成伪代码中间表示(Pseudocode In

    计算机应用 2020年10期2020-10-18

  • 结合混合符号执行的导向式灰盒模糊测试技术
    G)来计算每个基本块到若干个目标位置的距离,将目标的可达性作为一种优化,使用启发式算法来提升距离更近的种子的能量,使其生成的测试用例能快速达到程序的目标区域,从而实现了模糊测试的导向性。符号执行作为一种重要的程序分析方法,可以为程序测试提供高覆盖率的测试用例,以触发深层的程序错误[4]。由于在符号执行过程中,针对代码执行路径会生成相应路径的约束条件,如果软件较大或存在大量循环操作,可能导致路径约束非常大,甚至呈现爆炸式增长[5]。混合符号执行[6]是结合了

    计算机工程 2020年8期2020-08-19

  • 一种检测控制流错误的多层分段标签方法
    一概念就是程序基本块划分的前身。ECCA(Enhanced Control-flow Checking using Assertions)也属于早期软件实现的控制流错误检测方法,该方法通过在程序无分支间隔的入口和出口处插桩断言来检测错误[9]。此文献中的无分支间隔和断言与后来的基本块和标签已经非常接近了,但是由于更新操作采用乘除法,并且插桩的断言本身较为复杂,会产生较大的开销。CFCSS(Control-Flow Checking by Software

    计算机与现代化 2020年8期2020-08-17

  • 基于种子变异潜力的模糊测试方法
    止块,这种类型基本块并不具有高的漏洞挖掘价值,因此覆盖这种类型分支的种子价值较低、变异潜力也较低。针对上述问题,提出了一种基于种子变异潜力分析的模糊测试方法,首先提取程序控制流图,以基本块入口地址作为其标记,考虑基本块自身情况以及互相之间调用情况来赋予其权值。同时,在每一代种子运行结束后,根据种子覆盖路径附近未被覆盖的基本块权值情况以及种子运行时资源开销情况来计算适应度,从而筛选优质种子,投入下一代变异。本文策略能体现种子变异潜力主要由于以下两个方面。(1

    科学技术与工程 2020年9期2020-05-20

  • 超强通用编译器优化工具准确率是传统方法的5倍
    万计自动描述的基本块(计算指令的基本片段),来确切了解不同的芯片机构如何执行计算,效果也非常惊艳。MIT News透露,传统基于人工设计的模型,预测代码在芯片上的运行速度,与实际运行速度之间的错误率高达50 %。就算是芯片供应商,比如英特尔预测代码在自己芯片上的运行速度,错误率也达到20 %。而Ithemal,错误率仅为10 %,性能是传统方法的5倍,英特尔的2倍。整个过程都是自动化的,不需要人为干预,就能够快速分析数十万或数百万个基本块,并且通用它可以快

    计算机与网络 2020年2期2020-04-20

  • 一种基于余弦算法的手机病毒检测方法
    下三个子算法:基本块划分算法、控制流分析算法以及行为分析算法。2.2 基本块划分算法基本块划分是在汇编代码的基础上进行的,基本块的过程可以分为两步:(1)确定每个基本块的入口指令,根据上述原理,基本块入口指令只可能有三种:· ①程序入口处的第一条指令;· ②jmp 或者jcc 跳转目标地址处的指令;· ③jmp 或者jcc 指令的下一条指令。(2)根据每个基本块的入口指令,构造其所在的基本块。此时又有三种情况:· ①由当前入口指令的开始地址直到下一个入口指

    网络安全技术与应用 2020年4期2020-04-13

  • 基于QEMU的动态二进制插桩技术
    层次上的二进制基本块插桩,跟踪和记录程序执行流;2) 分析与实验研究插桩对仿真性能的影响,发现日志输出是影响仿真性能的关键因素,通过分析计算,解决了由插桩引起的仿真性能骤降的不良影响;3) 设计插桩日志分析工具,完成了对嵌入式全系统的执行流跟踪、函数调用图、覆盖率分析.1 相关工作通过文献查阅发现,目前已有一些学者研究使用和改进QEMU来进行软件动态分析.文献[13]对程序执行路径跟踪,查找程序执行热路径.该文献通过在QEMU的基本块首部插入热路径预测和跟

    计算机研究与发展 2019年4期2019-04-18

  • 一种高效解决间接转移的反馈式静态二进制翻译方法
    改进,提出了以基本块为单位进行翻译的反馈式静态二进制翻译框架(feedback static QEMU, FD-SQEMU),并提出了二级地址映射表法,更快速地实现了代码定位.为了解决基本块翻译引入的代码定位问题,设计了高效的二级地址映射表来快速定位转移指令目标地址.在翻译过程中,使用数组结构Address保存源平台每个基本块对应的目标平台的代码基本块起始地址,并使用索引数组Index保存源平台指令地址在Address中对应的索引位置,从而根据Index和

    计算机研究与发展 2019年4期2019-04-18

  • 基于污点分析的PHP漏洞检测
    分节点还要生成基本块摘要,以便在后续污点分析中使用。基本块摘要中包含一些关键信息(主要包含常量,全局变量,返回值,全局变量的注册以及数据流信息等)。具体的CFG生成算法如下:1.首先创建一个输入基本块,并为其构造一个输出边,连接到当前基本块,并作为当前基本块的输入边。2.获取AST中的节点,若是只有一个节点,则将其加入基本块,生成相应的基本块摘要。如果包含多个节点,则对其进行遍历处理。3.如果遇到函数定义类型节点类型则不对其进行分析。4.如果节点是跳转类型

    中国传媒大学学报(自然科学版) 2019年1期2019-04-12

  • 基于动态二进制翻译和插桩的函数调用跟踪
    框架,通过关闭基本块链接功能,迫使每个基本块代码执行结束后进行基本块切换操作,切换过程中统计函数信息,并写入日志.相比S2E提高了分析性能和支持的CPU平台种类,但是该方法依赖于QEMU的日志并必须关闭QEMU的基本块链接功能,造成3.65倍的性能开销.上述工具基于QEMU模拟器进行函数调用跟踪,并实现对系统状态的监测与分析,但是监测数据获得的方法破坏了QEMU的模拟和加速机制,造成较大的性能开销.如何精确记录系统的行为并且不破坏QEMU模拟器的加速机制是

    计算机研究与发展 2019年2期2019-02-20

  • 测试用例执行轨迹分析的故障定位方法
    G中的节点称为基本块(basic block),一个基本块是一段不包含跳转或分支语句的顺序代码集合,位于基本块中的代码在一次执行中要么全部被执行,要么全部被跳过,G中的所有基本块可以表示为B={b1,b2,…,bm}.G中的有向边称为跳转,跳转连接了两个不同的基本块,一条从基本块bε指向基本块bγ的边表示程序执行完bε中的所有代码,同时使程序处于将要执行bγ的状态,G中的所有跳转可以表示为E={ei|ei=,bε,bγ∈B,ε≠γ}.此外,G中还包含两类特

    小型微型计算机系统 2019年1期2019-01-24

  • 基于符号执行的底层虚拟机混淆器反混淆框架
    图形颜色粗陋、基本块中的IR中间表示晦涩难懂、反混淆后的图形无法反编译恢复程序源码等。针对这些缺点,本文在研究符号执行工具angr[6]和二进制分析逆向工程框架(Binary Analysis and Reverse engineering Framework,BARF)[7]逆向框架的基础上,在x86架构的Linux平台下,提出了一种基于符号执行的OLLVM自动化反混淆框架。该框架以C/C++文件经OLLVM混淆后得到的ELF文件作为输入,利用BARF框

    计算机应用 2018年6期2018-08-28

  • 一种基于序列模式挖掘的trace探测方法
    ,按顺序执行的基本块便可以看作是序列数据。服务器端程序运行于网络环境下,服务器响应用户请求的解释型语言程序通常是动态生成或用户提交的,无法事先进行编译优化处理,可以使用即时编译技术提高程序执行效率。同时,服务器端程序具有并发执行的特点,并发执行的解释型程序可以看作是多个基本块序列,通过对这些基本块序列应用序列模式挖掘,可以识别服务端程序中的热点代码序列,即热点trace。服务器端的trace探测能够利用服务器端并发的特点,更为高效地识别trace,从而提升

    计算机应用与软件 2018年7期2018-07-25

  • LLVM中静态程序信息的过程间分析方法
    ,可以获取当前基本块的后继信息;通过switch指令获取基本块的分支信息,解决控制流的分支问题。表1 代表性LLVM指令3 以过程内信息和过程间信息的提取为分析示例LLVM IR文件中包含指针、数据流、过程内以及过程间等的信息。通过提取本文需要的过程内和过程间的信息,获取CFICG信息。CFICG表示为CFICG=,Node>其中,cf表示过程内信息,N表示基本块,E表示基本块之间的流向,Node表示过程间信息。3.1 过程内信息提取的分析关于过程内信息的

    计算机工程与设计 2018年6期2018-06-19

  • 基于动态符号执行的不透明谓词反混淆算法
    不透明谓词作为基本块插入到控制流图中。不透明谓词是指在混淆过程中己经确定其输出,但是通过静态程序分析方法很难计算在某个程序点的值的谓词表达式。通过在控制流图中插入不透明谓词并将其作为分支条件的一部分,能够加大控制流混淆的强度,使得静态程序分析很难自动化地计算出输出。Collberg等[4]和袁征等[6]分别在他们的论文中给出了不透明谓词的定义。定义1(不透明谓词[4,6]) 当程序中的一个谓词O在某个程序点P上的输出δ的一些属性在程序进行混淆时就确定了,则

    西华大学学报(自然科学版) 2018年3期2018-06-01

  • 基于操作码合并的Python程序防逆转算法
    取结束。定义3基本块基本块是由S中顺序执行的若干个操作码构成的序列。通常情况下,若S中没有出现条件跳转、绝对跳转操作,则这些操作码处于同一个基本块中。定义4基本块信息字节码文件的基本块信息B是一个由正整数构成的单调不减序列,其长度与操作码序列S相同,且其中的每个元素与S中的每个操作码一一对应,元素值为对应的操作码在S中所在的基本块号。图2所示为一个基本块信息,从图中可以看出,S中第1个操作码处于第1个基本块,第2个~第5个操作码处于第2个基本块,依此类推。

    计算机工程 2018年5期2018-05-30

  • 一种基于频度统计的动态二进制翻译优化方法*
    段。翻译阶段以基本块为单位进行,将翻译后的代码以翻译块TB(Translated Block)为单位存入到T-Cache中,执行阶段以TB为单位进行,一个TB执行完毕后检查是否存在块链,如果存在则继续执行代码,否则转入到查找阶段。T-Cache作为连接查找、翻译和执行三个过程的纽带,是构成动态二进制翻译的重要内容,也是优化工作的一个关注点。Figure 1 Model of dynamic binary translator图1 动态二进制翻译器的工作模型

    计算机工程与科学 2018年4期2018-05-08

  • 基于表驱动的纯软件签名错误检测算法
    程中赋予每一个基本块一个奇偶校验位,可检测出奇偶性错误;EDDI采用复制指令,并通过插入合适的检测指令进行验证,但这种方法易导致代码容量增加近100%以及性能方面的损失[12-13]。本文在研究CFDSS算法的基础上,提出一种基于表驱动[14-15]的控制流错误检测算法,使用一张二维表和签名来监测目标程序的控制流。1 相关研究工作文献[4,7]中关于软件签名和断言算法,提出的最重要的解决办法就是CFDSS技术和ECCA技术。这2种技术能实现很高的错误检测覆

    计算机工程 2018年4期2018-04-19

  • BWDSP104X多条件谓词编译优化①
    条件分支会分割基本块规模,将一个基本块变成多个基本块,从而使可调度区域减小,不利于指令调度.其二,减弱甚至中断指令流水.分支后的指令是否执行需要根据当前分支的执行结果进行判断,因此当程序中含有大量的条件分支时,会中断指令流水,变指令为串行执行.为了减弱条件分支对程序性能的影响,传统的方式是采用分支预测,即在指令调度之前预测哪条分支指令会被执行,然而当条件分支预测失败时,将会导致流水线中断,减弱指令流水的性能.分支预测并没有对条件分支和多个条件分支之间的控制

    计算机系统应用 2018年1期2018-02-07

  • PLC程序控制流分析方法
    示的基础上划分基本块,并以此为基本单元构建了程序的控制流图。实验结果表明,所提方法能够恢复语句表形式PLC程序的控制流结构,为程序理解和安全性分析提供了基础。可编程逻辑控制器;控制流;中间表示;程序理解;安全性0 引言自“震网”病毒面世以来,人们对工业控制系统安全的认识达到了前所未有的高度。作为工业控制系统的核心组件,可编程逻辑控制器(Programmable Logic Controller, PLC)关系着整个工业现场的运转秩序,同时也影响着财产、人身

    计算机应用 2017年12期2018-01-08

  • 发掘函数级单指令多数据向量化的方法
    译器仅从循环和基本块两个粒度挖掘程序中的向量并行性,编译器还不能从函数这个粒度识别程序中的数据级并行[8]。当前的SIMD自动向量化方法主要从循环和基本块两个粒度发掘程序的向量并行性,循环级向量化方法与面向向量机的传统向量化方法相似[9],对其的改进包括外层循环向量化[10]和多面体指导的多重循环向量化[11-12]。超字级并行(Super-word Level Parallel, SLP)是第一个发掘基本块内向量并行性的方法[13]。目前编译器更多地是发

    计算机应用 2017年8期2017-10-21

  • 基于基本块指纹的二进制代码同源性分析
    贾 鹏基于基本块指纹的二进制代码同源性分析◆颜 颖 方 勇 刘 亮 刘露平 贾 鹏(四川大学电子信息学院 四川 610065)二进制代码同源性分析在代码的专利保护和恶意代码溯源分析中有重大意义,本文提出了一种基于基本块指纹的、以更细粒度的对比分析算法来确定二进制代码同源性的方法。该方法从基本块中提取三个指纹信息:跳转逻辑特征、代码序列特征和子函数名特征,将基本块的控制流程图根据跳转逻辑表示成由0、1构成的序列以计算基本块跳转逻辑特征的相似度,利用基于滑

    网络安全技术与应用 2017年3期2017-10-13

  • 融合分词隐层特征的汉语基本块识别
    隐层特征的汉语基本块识别李国臣1,2, 刘展鹏1,王瑞波3,李济洪3(1. 山西大学 计算机与信息技术学院,山西 太原 030006;2. 太原工业学院 计算机工程系,山西 太原 030008;3. 山西大学 计算中心,山西 太原 030006)该文以字为基本标注单位,构建了一种汉语基本块识别的神经网络学习模型。模型联合分词任务的神经网络学习模型与基本块识别任务模型,将分词任务模型中学习得到的隐层特征融入基本块识别的模型中,两模型相互交替优化学习模型参数,

    中文信息学报 2016年2期2016-05-04

  • 协同仿真中的精确异常保证技术
    一般是通过定位基本块、发现异常、回滚、重新翻译执行的方法,给仿真带来一定的性能开销[1-6]。支持精确异常一般分为在软件层实现和硬件层实现,QEMU[7]对精确异常的处理在软件层实现,采用定位基本块块首EIP,保存块首处理器状态,当异常在基本块中发生时,通过定位的EIP回滚到块首位置,恢复块首位置处理器状态,然后再进行逐条翻译执行,可以定位到异常发生的位置,这种支持精确异常的方式由于需要回滚、解释执行,因而降低系统仿真的效率。Code Morphing S

    计算机工程与设计 2015年11期2015-12-23

  • 利用智能控制流方法的嵌入式软件故障检测*
    用变量的频率和基本块的执行频率用作选择重要变量和基本块的两个参数。检测的基本流程是首先过滤器还原标准C语句为伪代码语句,然后扫描仪获取伪代码,并发送它到解析器,进行程序的控制流图提取。最后,解析器提取程序的前后支配树,运用候选块寻找算法进行节点分类,获得块断言和变量。实验结果表明,固化代码中程序执行时间少于RSCFC方法,但是内存开销和代码开销几乎相同,执行时间比率接近1,显著提高故障检测率。嵌入式软件;智能选择;控制流;内核块;基本块0 引言嵌入式系统[

    电子技术应用 2015年10期2015-12-16

  • 二进制代码级的密码算法循环特征识别
    反汇编结果中,基本块是单入口、单出口的连续指令序列,基本块循环 (基本块自身所构成的循环)和基本块嵌套循环是典型的控制循环模式,常常出现在分组密码、公钥密码和流密码的实现代码中;为了提高执行效率,Hash函数通常采用加密主函数循环展开的方式,构造成为一个大基本块,简单循环模式则蕴藏在其中;此外,在对二进制目标代码进行动态分析过程中,通常对记录下的执行指令序列进行分析,抽取出基本块循环和嵌套循环等密码算法常用的循环模式。密码算法常用的两种循环结构如图1所示,

    计算机工程与设计 2014年8期2014-11-30

  • 基于执行路径的嵌入式计量软件后门检测
    度的指令,或者基本块、函数等。执行语句按照执行顺序组成的语句序列称为路径。在本文的检测方法中,记录执行路径以条件转移指令划分的基本块为记录单位,基本块内为顺序执行的不可分割的指令序列。2)起始路径。起始于语句I1的执行路径为起始路径。本文检测方法中的起始路径为二进制可执行程序加载执行后的初始化执行过程,每一条执行路径都以程序初始化为起点,由于初始化过程相同,本文从初始化完成后的执行路径开始记录。3)原子路径。如果执行路径P由连续执行不可分的语句序列P0组成

    湖北工业大学学报 2014年1期2014-10-13

  • 基于覆盖率分析的僵尸网络控制命令发掘方法
    1 执行轨迹的基本块覆盖3.1.1 执行轨迹与路径空间执行轨迹是僵尸程序路径空间中一条路径的执行过程的详细记录,其中记录了执行过程中CPU所执行过的每一条指令、指令执行前后的 CPU标志位状态、与指令相关的寄存器和内存等。执行轨迹中虽然缺乏高级语言源代码中的结构信息、类型信息等,但是它详细记录了高级语言中各种算法、数据结构、逻辑关系在 CPU上用二进制机器代码的具体实现过程,是程序语义的二进制表示,其中就包含了程序内在的控制逻辑关系。执行轨迹的获取通常是使

    通信学报 2014年1期2014-09-18

  • 基于特征字符串动态引用频率的库引用识别
    公共子树;基于基本块的识别技术[7],在无压缩、混淆的情况下忽略控制流程图边得到的基本块集合的编辑距离识别函数的相似性;基于API调用序列的识别技术[8-9],文献[8]通过每个函数k深度的API调用组成一个集合,函数的相似性利用API调用的个数占通常的API函数的比率进行识别,程序的相似性识别通过函数相似性矩阵进行测量,文献[9]通过动态API的调用及其频数构建序列集合作为程序胎记;基于控制流程图的识别技术[10-13],文献[10]通过函数控制流程图中

    计算机工程与应用 2014年18期2014-04-03

  • 基于字的分布表征的汉语基本块识别
    系中提出了汉语基本块、多词块和功能块3种块。周强构建了相应语料,并设置了汉语基本块等自动识别任务,开发了自动分析工具。周强构建的第一个基于规则的汉语基本块分析器[2],在其测试集上F值达到89.47%。不过,该基本块分析器十分依赖于汉语句子的分词和词性标注性能。后来,宇航等[3]使用条件随机场模型构建了一个汉语基本块标注模型,模型的F值达到89.54%。在周强组织的汉语基本块分析评测CIPS-Pars-Eval-2009中,基本块自动识别的最好结果为F值[

    中文信息学报 2014年6期2014-02-28

  • 快速生成两两组合测试用例集算法
    覆盖表作为一个基本块,记为B(0,1).对任意的 a,b(a<b),记 B(a,b)为把基本块B(0,1)中的0置换成a,1置换成b得到的新基本块.这样把所有的基本块B(i,j)(0≤i<j≤v-1)上下累加起来就构成了两两组合覆盖表.然而这种构造出来的覆盖表有很多冗余行,比如所有因素取值都为0的行有v-1行,为了消除这些冗余,需再引入另外的约简块 R(0,1).在二元待测系统中,构造另外一个表,使得表中任取 i,j两列,(0,1)与(1,0)组合都至少在

    东南大学学报(自然科学版) 2011年5期2011-08-24

  • C++反编译中控制流图优化方法研究
    图中的圆圈表示基本块。图1 3种典型的控制流结构Fig.1 Three kinds of typical control flow structures传统的划分控制流图的方法是:将汇编指令分为两类,转移指令和非转移指令。转移指令是一些指令的集合,这些指令把指令执行流(即IP寄存器的值)转移到内存中不同于下一条指令地址的地址。这些指令有:无条件跳转(jmp),条件跳转(jnb,je,jbe 等),子程序调用(call),子程序返回(ret)。除去这些指令外

    电子设计工程 2011年21期2011-06-05

  • 改进的CFCSS控制流检测算法
    题,修改了基础基本块的选择方法和多调整签名值赋值语句的插入位置,提出了改进的ICFCSS算法(improved CFCSS).1 控制流图与基本块为了方便描述控制流检测算法,在此引入几个定义.定义1 控制流图(control flow graph,CFG)可表示为G={V,E},V={vi|vi为控制流基本块,1≤i≤n,n为控制流基本块号},E={(vi,vj)|表示控制流从vi跳转到vj,vi为源基本块,vj为目的基本块}.定义2 e-(vi)为基本块

    哈尔滨工程大学学报 2011年6期2011-04-13

  • 篡改定位精度可动态调整的无损图像认证算法*
    够被识别的规则基本块(BBi;i=1,2,…,m),BBi的大小由所采用的无损水印算法和认证块中需嵌入的认证信息量等综合确定;m个BBi根据某种相邻合并规则动态生成n个图像认证块(ABj;j=1,2,…,n).在划分基本块和认证块过程中必须满足以下基本要求:(4)为提高篡改定位能力,一般要求图像认证块具有尽可能小的平均面积.实际设计认证块划分算法时应权衡篡改定位能力和算法的复杂度.(5)图像中的BBi、ABj能以某种方式在认证端被准确地识别.图1给出了LI

    华南理工大学学报(自然科学版) 2011年7期2011-03-21

  • Metric多核子方法划分编译算法设计与实现
    lice由多个基本块组成.如图2中阴影所示,编译链完成为:函数识别与cfg调整、访存指令收集、slice划分、访存指令局部性年龄编码建立、slice数据流化与优化,以及slice管理等功能.函数识别将函数区分为库函数与用户自定义函数2种,并分别进行不同处理.之后,生成函数调用图(call graph),并根据函数调用图进一步将用户定义函数分为2种情况:被库调用和不被库调用.被库调用的用户自定义函数,仍然被标记为“系统”,采用系统库的处理方式;不被库调用的用

    哈尔滨工业大学学报 2011年7期2011-03-14

  • 异构多机器人环境下的二进制翻译系统
    示。二进制代码基本块(Basic Block)是动态二进制翻译系统中,进行代码翻译的基本单位,即一段翻译后代码片段(Translated Code Segment,TCS)所对应的源结构指令片段。动态二进制翻译中,执行一个基本块所用的时间开销分析可以用等式(1)表示。其中 linked代表基本块链接的比率,lookup time是查找 SPC-TPC map表的时间。图1 动态二进制翻译工作流程图通过对进程级虚拟机CrossBit[2]的SPEC2000测

    微型电脑应用 2010年2期2010-07-25

  • 一种基于动态二进制翻译的硬件支持Profile技术
    地址。然后,以基本块为单位划分程序,一个基本块通常以一条跳转指令或系统调用指令所指向地址的指令为开始,以下一条跳转指令为结束。完成基本块的划分之后,在每个基本块中插入一条目标体系结构的存储指令。其中,源寄存器域的值为装载每个基本块首地址源体系结构程序计数器值的本地寄存器号,地址寄存器域的值为装载有缓冲区模块首地址值的寄存器号,偏移量的值为零。具体在基本块的什么位置插入储存指令是由CrossBit在获得了装载有基本块的首地址源体系结构程序计数器值的寄存器号后

    微型电脑应用 2010年5期2010-07-25

  • 汉语块分析评测任务设计
    注(任务1)、基本块分析(任务2)、功能块分析(任务3)、事件描述小句识别(任务4)和句法树分析(任务5)。其中3项(任务2~4)涉及汉语文本的块分析问题。本文将对有关内容进行具体介绍和说明。2 块分析任务设计本次评测设计了以下3项块分析子任务:1)基本块分析; 2)功能块分析; 3)事件描述小句识别。其处理要点是对经过正确词语切分和词性标注处理的汉语句子自动分析形成不同层次的块标注序列。对每个子任务,都可以使用以下两种开发模式:1)封闭学习,即只使用训练

    中文信息学报 2010年1期2010-06-05