共查询到20条相似文献,搜索用时 46 毫秒
1.
2.
3.
现代编译器越来越依赖SIMD指令来提高向量化性能,但控制流的复杂性严重阻碍了SIMD向量化的发掘。现有的控制流向量化方法对于单层控制流的向量化很有效,但对嵌套等复杂控制流无法取得令人满意的效果。因此,提出了一种基于条件分类的控制流向量化方法。该方法对条件为循环不变量的控制流,以层次遍历的顺序实施IF外提;对条件为循环变量的控制流,结合语句匹配和条件合并递归地进行IF转换,生成相应的SIMD指令,从而实现嵌套控制流的向量化。实验结果表明,该方法能够有效消除循环中的嵌套控制流,提高向量化发掘的能力, 有效提升 测试程序的性能。 相似文献
4.
王应邦 《电子制作.电脑维护与应用》2015,(2):86
控制流的混淆能够运用在混淆程序的运行流程中,阻止了软件的逆向工程,但在通常情况下,混淆后的程序增大了程序的代码量和执行时间。通过构建随机插入混淆策略,利用分支插入和循环条件插入两种算法的结合,引入随机函数来控制代码的插入,达到防止代码长度增长的目的。采用BCEL的设计并且实现了在以Java为字节码的控制流混淆转换工具的基础上,实现Java字节码一代代的重复混淆,并且使混淆的结果不能再一次显现。通过实验结果表明,这一策略能够有效地防止出现由于控制混淆器的转换操作引起性能的超负荷状态,同时更有效地阻碍逆向工程的攻击。 相似文献
5.
6.
针对程序中因存在路径条数过多或复杂循环路径而导致路径验证时的路径搜索空间过大,直接影响验证的效率和准确率的问题,提出一种基于可满足性模理论(SMT)求解器的程序路径验证方法。首先利用决策树的方法对复杂循环路径提取不变式,构造无循环控制流图(NLCFG);然后通过基本路径法对控制流图(CFG)进行遍历,提取基本路径信息;最后利用SMT求解器作为约束求解器,将路径验证问题转化为约束求解问题来进行处理。与同样基于SMT求解器的路径验证工具CBMC和FSoft-SMT相比,该方法在对测试集程序的验证时间上比CBMC降低了25%以上,比FSoft-SMT降低了15%以上;在验证精度上,该方法有明显的提升。实验结果表明,方法可以有效解决路径搜索空间过大的问题,同时提高路径验证的效率和准确率。 相似文献
7.
8.
李斌 《电脑编程技巧与维护》2013,(1):11-13
通过使用Win32 API函数Enum Windows和Set Window Pos,达到枚举系统所有窗口,并使某个窗口置顶,以此设计一个任意窗口置顶器。 相似文献
9.
针对PPCT动态图编码效率低的特点,提出了一种将PPCT枚举编码和基数k枚举编码进行混合编码的动态图编码方案。在保证其抗攻击力的前提下,为了提高PPCT枚举编码的编码效率,把基数k枚举编码的循环链表指针编码系数的方法运用到PPCT枚举编码中。该编码方案具有PPCT枚举编码的抗攻击能力和基数k枚举编码的编码效率,克服了PPCT动态图编码效率低的缺点。 相似文献
10.
研究和设计了一个基于程序分析的源代码漏洞分析与检测工具框架,框架中的各个模块如控制流分析(控制流图的构建、函数调用图的实现及过程内分析与过程间分析等)、数据流分析(求定义引用链、污染数据传播的设计、指针别名分析)、结构分析器、安全调度器、规则构建器,本文主要对代码分析的两个阶段进行了较为详细的介绍,同时对主要采取的过程内和过程间分析算法做了说明。 相似文献
11.
12.
传统的控制流混淆方案是通过引入一些特殊结构来混淆或隐藏原程序的控制流信息,但这会导致大量的额外开销,此外针对控制流中其他敏感信息,常用的混淆技术并没有完善的保护方案。针对这些问题,提出了基于隐式跳转的控制流混淆技术。分析建立程序的控制流图,获取每个基本块的依赖关系,建立状态转移模型,为每个基本块分配一个运行时状态,并根据该状态生成的密钥来对控制流的跳转、函数的调用及变量的引用等敏感信息进行加密保护,使之转换为需要在运行时解密才能使用的隐式形式,从而实现反静态分析。此外,针对相同对象的密文重复问题,提出了基于环境密钥的两阶段加密方案,进一步减少敏感信息的暴露。实验结果表明,该方案并不会对程序运行时性能造成很大影响,同时还能较为完善地帮助程序抵抗静态分析。 相似文献
13.
上一次我们介绍了迭代器的应用,不难看出,迭代器主要用于聚合对象,特别是容器。为了为不同的容器设计出通用的算法,迭代器应有何作为呢?STL无疑给了我们一个漂亮的答案。这次我们主要看看迭代器在容器类库中的历史和发展,以及介绍一些基本的概念。 相似文献
14.
提出了一种基于符号执行的控制流图提取方法,该方法为原生库中的函数提供了符号执行环境,对JNI 函数调用进行模拟,用约束求解器对符号进行求解。实现了控制流图提取原型系统 CFGNative。实验结果表明,CFGNative可准确识别样例中所有的JNI函数调用和原生方法,并能够在可接受的时间内达到较高的代码覆盖率。 相似文献
15.
16.
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.
侯勇 《电脑编程技巧与维护》2010,(10):13-14,30
标准模版库提供了一系列的容器类型,使用容器可以完成任意类型对象的不限量存储。任何模版类型中均包含迭代器类型,使用迭代器类型可以完成统一的指针操作,读写容器内的数据。不同模版具有不同的存储结构,实际应用中存在性能差异。 相似文献