首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 46 毫秒
1.
引入控制块分解流图来构建控制流树,确定流图中的回边及循环路径中包含的节点,通过消去原流图中的回边,构建无环流图,简化流图的数据流分析。控制块将流图的控制关系转移到新构建的控制流树的内部控制节点上。使用控制块分解算法将流图转换到控制流树过程中,所创建节点数目不超过n,使用控制流树求解路径表达式和确定回边的时间复杂度不超过O(nlogn)。  相似文献   

2.
具有条件分支的循环通过IF转换将显式的控制流转换为隐式的控制流,从而为指令调度提供进一步的机会.但它往往将程序的代码进行深度重构,增加了程序的理解和代码重建工作的复杂性.提出了一种软件流水循环中的隐式控制流恢复技术,用于重构软件流水循环中的条件分支,提高软件逆向工程中生成的目标代码的质量.  相似文献   

3.
现代编译器越来越依赖SIMD指令来提高向量化性能,但控制流的复杂性严重阻碍了SIMD向量化的发掘。现有的控制流向量化方法对于单层控制流的向量化很有效,但对嵌套等复杂控制流无法取得令人满意的效果。因此,提出了一种基于条件分类的控制流向量化方法。该方法对条件为循环不变量的控制流,以层次遍历的顺序实施IF外提;对条件为循环变量的控制流,结合语句匹配和条件合并递归地进行IF转换,生成相应的SIMD指令,从而实现嵌套控制流的向量化。实验结果表明,该方法能够有效消除循环中的嵌套控制流,提高向量化发掘的能力, 有效提升 测试程序的性能。  相似文献   

4.
控制流的混淆能够运用在混淆程序的运行流程中,阻止了软件的逆向工程,但在通常情况下,混淆后的程序增大了程序的代码量和执行时间。通过构建随机插入混淆策略,利用分支插入和循环条件插入两种算法的结合,引入随机函数来控制代码的插入,达到防止代码长度增长的目的。采用BCEL的设计并且实现了在以Java为字节码的控制流混淆转换工具的基础上,实现Java字节码一代代的重复混淆,并且使混淆的结果不能再一次显现。通过实验结果表明,这一策略能够有效地防止出现由于控制混淆器的转换操作引起性能的超负荷状态,同时更有效地阻碍逆向工程的攻击。  相似文献   

5.
张晓清  潘清  龚波 《软件》2014,(3):111-113
随着网络应用越来越广泛的出现,不断提高网络服务器性能是学术界长期努力的目标。避免数据重复拷贝是提高服务器性能的有效手段。通过对网络服务器数据流和控制流的分析,发现数据流与控制流捆绑是造成数据重复拷贝的重要原因,并且发现传统的操作系统系统调用设计是造成控制流与数据流捆绑的主要原因。本文提出了采用控制流与数据流相分离的机制,设计新的操作系统服务来解决数据重复拷贝问题,提高网络服务器性能。  相似文献   

6.
任胜兵  吴斌  张健威  王志健 《计算机应用》2016,36(10):2806-2810
针对程序中因存在路径条数过多或复杂循环路径而导致路径验证时的路径搜索空间过大,直接影响验证的效率和准确率的问题,提出一种基于可满足性模理论(SMT)求解器的程序路径验证方法。首先利用决策树的方法对复杂循环路径提取不变式,构造无循环控制流图(NLCFG);然后通过基本路径法对控制流图(CFG)进行遍历,提取基本路径信息;最后利用SMT求解器作为约束求解器,将路径验证问题转化为约束求解问题来进行处理。与同样基于SMT求解器的路径验证工具CBMC和FSoft-SMT相比,该方法在对测试集程序的验证时间上比CBMC降低了25%以上,比FSoft-SMT降低了15%以上;在验证精度上,该方法有明显的提升。实验结果表明,方法可以有效解决路径搜索空间过大的问题,同时提高路径验证的效率和准确率。  相似文献   

7.
沙子涵  舒辉  武成岗  熊小兵  康绯 《软件学报》2022,33(5):1833-1848
控制流是程序过程的抽象表现, 对控制流进行混淆, 可有效提高代码抗逆向能力. 提出了控制流深度模糊思想:针对循环结构, 利用回调函数构造等价循环模型, 将过程内基本块跳转变更为过程间函数调用, 对抗逆向技术. 综合应用控制流分析和数据流依赖性分析, 建立了基于回调函数的控制流深度模糊模型, 并给出功能一致性证明. 为进...  相似文献   

8.
通过使用Win32 API函数Enum Windows和Set Window Pos,达到枚举系统所有窗口,并使某个窗口置顶,以此设计一个任意窗口置顶器。  相似文献   

9.
针对PPCT动态图编码效率低的特点,提出了一种将PPCT枚举编码和基数k枚举编码进行混合编码的动态图编码方案。在保证其抗攻击力的前提下,为了提高PPCT枚举编码的编码效率,把基数k枚举编码的循环链表指针编码系数的方法运用到PPCT枚举编码中。该编码方案具有PPCT枚举编码的抗攻击能力和基数k枚举编码的编码效率,克服了PPCT动态图编码效率低的缺点。  相似文献   

10.
研究和设计了一个基于程序分析的源代码漏洞分析与检测工具框架,框架中的各个模块如控制流分析(控制流图的构建、函数调用图的实现及过程内分析与过程间分析等)、数据流分析(求定义引用链、污染数据传播的设计、指针别名分析)、结构分析器、安全调度器、规则构建器,本文主要对代码分析的两个阶段进行了较为详细的介绍,同时对主要采取的过程内和过程间分析算法做了说明。  相似文献   

11.
为验证CoSy编译器的安全性,并确定不安全因素大致出现的位置,提出一种通过控制流图的同构对比判定CoSy编译器是否安全的方法。该方法生成源程序的控制流图以及CoSy中级中间表示的控制流图后,生成由CoSy编译器产生的目标汇编码的控制流图,根据控制流图同构算法,判断控制流图是否同构,由此确定CoSy编译器的不安全因素发生在编译器的前端还是后端。实验结果表明,该方法能有效验证编译器的安全性。  相似文献   

12.
传统的控制流混淆方案是通过引入一些特殊结构来混淆或隐藏原程序的控制流信息,但这会导致大量的额外开销,此外针对控制流中其他敏感信息,常用的混淆技术并没有完善的保护方案。针对这些问题,提出了基于隐式跳转的控制流混淆技术。分析建立程序的控制流图,获取每个基本块的依赖关系,建立状态转移模型,为每个基本块分配一个运行时状态,并根据该状态生成的密钥来对控制流的跳转、函数的调用及变量的引用等敏感信息进行加密保护,使之转换为需要在运行时解密才能使用的隐式形式,从而实现反静态分析。此外,针对相同对象的密文重复问题,提出了基于环境密钥的两阶段加密方案,进一步减少敏感信息的暴露。实验结果表明,该方案并不会对程序运行时性能造成很大影响,同时还能较为完善地帮助程序抵抗静态分析。  相似文献   

13.
上一次我们介绍了迭代器的应用,不难看出,迭代器主要用于聚合对象,特别是容器。为了为不同的容器设计出通用的算法,迭代器应有何作为呢?STL无疑给了我们一个漂亮的答案。这次我们主要看看迭代器在容器类库中的历史和发展,以及介绍一些基本的概念。  相似文献   

14.
提出了一种基于符号执行的控制流图提取方法,该方法为原生库中的函数提供了符号执行环境,对JNI 函数调用进行模拟,用约束求解器对符号进行求解。实现了控制流图提取原型系统 CFGNative。实验结果表明,CFGNative可准确识别样例中所有的JNI函数调用和原生方法,并能够在可接受的时间内达到较高的代码覆盖率。  相似文献   

15.
提出一种基于基因表达式编程(GEP)算法、编译器技术、虚拟机技术的路径覆盖测试用例生成方法。该方法使用编译器技术获得程序的静态控制流路径集合,针对集合中的每一条静态控制流路径,使用GEP算法生成覆盖特定路径的测试用例,采用虚拟机完成结果计算,其中有效的结果即所需的测试用例。实验结果证明,该方法能高效、准确地得到覆盖特定控制流路径的测试用例。  相似文献   

16.
基于LCC的测试程序控制流路径子集生成算法   总被引:1,自引:1,他引:0       下载免费PDF全文
针对路径覆盖测试技术中如何计算被测试程序的有效控制流路径子集的关键性问题,提出一种利用LCC编译器的前端结果来生成基于一次循环策略的测试程序控制流路径子集的算法。该算法通过引入邻接矩阵并借助自定义的堆栈数据结构来完成控制流路径子集的生成。通过实验程序对算法进行检验,结果表明,该方法能高效准确地计算出待测源程序片的控制流路径子集。  相似文献   

17.
基于非线性控制流图的全局指令调度由于非线性控制流的控制流图的复杂性不易计算出一条指令在其所在控制流图中的优先级,因此也不易判断来自不同基本块的指令的优先顺序,从而导致在决定一条指令何时被调度出该指令所在的基本块以及调度到哪儿时倾向于保守和随意。例如D.Bernstein的全局指令调度的启发性方法优先来自这些基本块的指令:调度器当前正在调度的基本块以及与当前基本块控制等价的基本块。然而,这种启发性方法往往导致处在关键路径上的指令被滞后。本文提出的迭代式全局指令调度算法基于D.Bernstein的全局调度算法。它采用与D.Bernstein相同的启发性方法,但有选择地多次调度一个基本块使得处在关键路径上的指令被尽早调度。实验结果表明该算法以增加10%的调度时间开销提高调度器8%的性能。  相似文献   

18.
一个复杂的ROP shellcode从语义层面经常会用到循环和递归等控制流形式。条件跳转控制流gadget是循环和递归等控制结构的基础。然而ARMv7指令集中的间接条件跳转指令在ARMv8指令集中已经不再存在。ARMv8指令集中的条件跳转指令的目标地址的偏移已经被硬编码,不能被使用,所以ARMv8架构下只能通过无条件跳转gadget的重复使用实现循环和递归。这不仅执行效率低,而且浪费了大量的内存空间。基于上述问题,对ARMv7架构的条件跳转gadget进行了分析,提出一种ARMv8架构基于CMP指令和CSEL指令gadget构造条件跳转gadget方法。不仅解决了ARMv7架构基于间接条件跳转指令gadget构造ROP shellcode复杂控制流的方法在ARMv8架构中不再适用的问题,而且通过实验证明了与无条件跳转gadget方法相比,节省了大量的内存空间。  相似文献   

19.
标准模版库提供了一系列的容器类型,使用容器可以完成任意类型对象的不限量存储。任何模版类型中均包含迭代器类型,使用迭代器类型可以完成统一的指针操作,读写容器内的数据。不同模版具有不同的存储结构,实际应用中存在性能差异。  相似文献   

20.
对数学规划中的枚举法进行了有效的分类: 良性隐式枚举与病态隐式枚举. 考察这两类隐式枚举的本质差别. 给出良性隐式枚举的判别条件. 根据不完全枚举的概率收敛性, 提出近隐式枚举的概念. 例举了几种典型的良性隐式枚举法和近隐式枚举法. 文末指出良性隐式枚举及近隐式枚举的发展方向.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号