期刊文献+
共找到15篇文章
< 1 >
每页显示 20 50 100
面向国产高性能加速器的LLVM编译器设计及优化
1
作者 宋强 唐俊龙 +4 位作者 陈照云 时洋 谭期轩 肖紫阳 邹望辉 《计算机工程》 CAS CSCD 北大核心 2024年第4期321-331,共11页
国防科技大学自主研制的高性能加速器采用中央处理器(CPU)+通用数字信号处理器(GPDSP)的片上异构融合架构,使用超长指令集(VLIW)+单指令多数据流(SIMD)的向量化结构的GPDSP是峰值性能主要支撑的加速核。主流编译器在密集的数据计算指令... 国防科技大学自主研制的高性能加速器采用中央处理器(CPU)+通用数字信号处理器(GPDSP)的片上异构融合架构,使用超长指令集(VLIW)+单指令多数据流(SIMD)的向量化结构的GPDSP是峰值性能主要支撑的加速核。主流编译器在密集的数据计算指令排布、为指令静态分配硬件执行单元、GPDSP特有的向量指令等方面不能很好地支持高性能加速器。基于低级虚拟器(LLVM)编译框架,在前寄存器分配调度阶段,结合峰值寄存器压力感知方法(PERP)、蚁群优化(ACO)算法与GPDSP结构特点,优化代价模型,设计支持寄存器压力感知的指令调度模块;在后寄存器分配阶段提出支持静态功能单元分配的指令调度策略,通过冲突检测机制保证功能单元分配的正确性,为指令并行执行提供软件基础;在后端封装一系列丰富且规整的向量指令接口,实现对GPDSP向量指令的支持。实验结果表明,所提出的LLVM编译架构优化方法从功能和性能上实现了对GPDSP的良好支撑,GCC testsuite测试整体性能平均加速比为4.539,SPEC CPU 2017浮点测试整体性能平均加速比为4.49,SPEC CPU 2017整型测试整体性能平均加速比为3.24,使用向量接口的向量程序实现了平均97.1%的性能提升率。 展开更多
关键词 通用数字信号处理器 低级虚拟器 编译器 指令调度 向量指令接口
下载PDF
改进的基于底层虚拟机混淆器的指令混淆框架
2
作者 王雅仪 刘琛 +1 位作者 黄天波 文伟平 《计算机应用》 CSCD 北大核心 2023年第2期490-498,共9页
针对底层虚拟机混淆器(OLLVM)在指令混淆层面只支持指令替换一种算法,且仅支持5种运算符和13种替换方案的问题,设计了一种改进版的指令混淆框架InsObf,以加强OLLVM指令层面的混淆效果。InsObf包含指令加花和指令替换,其中指令加花首先... 针对底层虚拟机混淆器(OLLVM)在指令混淆层面只支持指令替换一种算法,且仅支持5种运算符和13种替换方案的问题,设计了一种改进版的指令混淆框架InsObf,以加强OLLVM指令层面的混淆效果。InsObf包含指令加花和指令替换,其中指令加花首先对基本块的指令进行依赖分析,然后插入叠加跳转和虚假循环两种花指令;指令替换在OLLVM的基础上,拓展至13种运算符,共计52种指令替换方案。在底层虚拟机(LLVM)上实现了框架原型后,通过实验表明,与OLLVM相比,InsObf在时间开销增长约10个百分点,空间开销增长约20个百分点的情况下,圈复杂度和抗逆向能力均可提高近4倍;与同样基于OLLVM改进的Armariris和Hikari相比,InsObf在同一量级的时空开销下,可以提供更高的代码复杂度。因此,InsObf可提供指令层级的有效保护。 展开更多
关键词 软件保护 代码混淆 指令混淆 底层虚拟机混淆器 指令加花 指令替换
下载PDF
基于Capstone和流敏感混合执行的自动化反混淆技术
3
作者 鲁辉 郭润生 +3 位作者 金成杰 何陆潇涵 王兴伟 田志宏 《软件学报》 EI CSCD 北大核心 2023年第8期3745-3756,共12页
经过多年的技术发展和攻防对抗,Android平台应用加固技术已较为成熟,防护粒度逐步从通用的DEX动态修改发展为高度定制化的Native层混淆机制,通过不断提高逆向分析的难度和工作量,增强客户端代码防护能力.针对近期崛起的OLLVM混淆加固技... 经过多年的技术发展和攻防对抗,Android平台应用加固技术已较为成熟,防护粒度逐步从通用的DEX动态修改发展为高度定制化的Native层混淆机制,通过不断提高逆向分析的难度和工作量,增强客户端代码防护能力.针对近期崛起的OLLVM混淆加固技术,提出一种基于Capstone和流敏感混合执行的自动化反混淆决方案(CiANa).CiANa采用Capstone引擎分析基本块及其指令结构,识别散落在程序反汇编控制流程图中的真实块,并基于流敏感的混合执行确定各真实块间的执行顺序,最后对真实块汇编指令进行指令修复得到反混淆后的可执行二进制文件.实验对比结果表明,CiANa可有效恢复ARM/ARM64架构下经OLLVM混淆的Android Native文件.CiANa是目前为止首个在ARM/ARM64架构中,支持对全版本(Debug/Realse版本)OLLVM进行有效反混淆并生成可执行文件的框架,为逆向分析提供了必要的辅助支撑. 展开更多
关键词 ollvm混淆 Android Native文件 反混淆
下载PDF
基于LLVM架构的NiosⅡ后端快速移植 被引量:3
4
作者 任胜兵 卢念 +1 位作者 张万利 潘震宇 《计算机应用与软件》 CSCD 2011年第12期22-25,50,共5页
编译器后端移植是目前嵌入式系统研究的重要领域,如何快速实现编译器后端移植仍然是嵌入式系统研究的热点。采用新的编译器架构LLVM,移植NiosⅡ处理器来分析LLVM快速后端移植架构。使用LLVM后端移植架构的TableGen描述NiosⅡ体系结构例... 编译器后端移植是目前嵌入式系统研究的重要领域,如何快速实现编译器后端移植仍然是嵌入式系统研究的热点。采用新的编译器架构LLVM,移植NiosⅡ处理器来分析LLVM快速后端移植架构。使用LLVM后端移植架构的TableGen描述NiosⅡ体系结构例如指令、寄存器等,使用完备LLVM C++函数库实现复杂或特殊的操作。TableGen与C++函数库互相配合,最终实现LLVM架构对NiosⅡ后端的支持。实验结果表明与GCC编译器后端移植方法相比,基于LLVM架构的编译器后端移植方法的工作量减少了64.2%~83.9%,大大节省后端移植时间。 展开更多
关键词 编译器 后端快速移植 低级虚拟机(LLVM) NiosⅡ处理器
下载PDF
云数据中心基于贪心算法的虚拟机迁移策略 被引量:9
5
作者 刘开南 《计算机应用》 CSCD 北大核心 2019年第11期3333-3338,共6页
为了节省云数据中心的能量消耗,提出了几种基于贪心算法的虚拟机(VM)迁移策略。这些策略将虚拟机迁移过程划分为物理主机状态检测、虚拟机选择和虚拟机放置三个步骤,并分别在虚拟机选择和虚拟机放置步骤中采用贪心算法予以优化。提出的... 为了节省云数据中心的能量消耗,提出了几种基于贪心算法的虚拟机(VM)迁移策略。这些策略将虚拟机迁移过程划分为物理主机状态检测、虚拟机选择和虚拟机放置三个步骤,并分别在虚拟机选择和虚拟机放置步骤中采用贪心算法予以优化。提出的三种迁移策略分别为:最小主机使用效率选择且最大主机使用效率放置算法MinMax_Host_Utilization、最大主机能量使用选择且最小主机能量使用放置算法MaxMin_Host_Power_Usage、最小主机计算能力选择且最大主机计算能力放置算法MinMax_Host_MIPS。针对物理主机处理器使用效率、物理主机能量消耗、物理主机处理器计算能力等指标设置最高或者最低的阈值,参考贪心算法的原理,在指标上超过或者低于这些阈值范围的虚拟机都将进行迁移。利用CloudSim作为云数据中心仿真环境的测试结果表明,基于贪心算法的迁移策略与CloudSim中已存在的静态阈值迁移策略和绝对中位差迁移策略比较起来,总体能量消耗少15%,虚拟机迁移次数少60%,平均SLA违规率低5%。 展开更多
关键词 低能量消耗 服务等级协议违规 虚拟机迁移 云数据中心 贪心算法
下载PDF
非计数类循环的C2VHDL编译方法
6
作者 杨杰 吴艳霞 +1 位作者 顾国昌 孙延腾 《计算机工程与应用》 CSCD 北大核心 2010年第30期61-64,85,共5页
目前,大多数C2VHDL编译工具采用有穷状态机(FSM)的设计方法,该方法可以实现循环初值、终值以及步进值确定的计数类循环。由于非计数类循环每次执行循环时都要进行条件判断,程序执行前不能确定循环体执行次数,导致采用FSM方式对其进行C2V... 目前,大多数C2VHDL编译工具采用有穷状态机(FSM)的设计方法,该方法可以实现循环初值、终值以及步进值确定的计数类循环。由于非计数类循环每次执行循环时都要进行条件判断,程序执行前不能确定循环体执行次数,导致采用FSM方式对其进行C2VHDL编译很复杂,所以大多数C2VHDL编译工具不支持这类循环。以基于LLVM(Low Level Virtual Machine)的ASCRA(Application-Specific Compiler for Reconfigurable Architecture)编译架构为基础,采用一个周期高电平使能信号控制方式代替FSM,提出了一种支持嵌套格式的非计数类循环编译方法。实验结果证明该方法生成的控制结构简单,能够灵活地实现各种非计数类循环的C2VHDL转换,具有较强的可扩展性。 展开更多
关键词 C2VHDL编译器 低级虚拟系统中间表示(LLVM IR) 非计数类循环
下载PDF
基于符号执行的底层虚拟机混淆器反混淆框架 被引量:4
7
作者 肖顺陶 周安民 +2 位作者 刘亮 贾鹏 刘露平 《计算机应用》 CSCD 北大核心 2018年第6期1745-1750,共6页
针对Miasm反混淆框架反混淆后的结果是一张图片,无法反编译恢复程序源码的问题,在对底层虚拟机混淆器(OLLVM)混淆策略和Miasm反混淆思路进行深入学习研究后,提出并实现了一种基于符号执行的OLLVM通用型自动化反混淆框架。首先,利用基本... 针对Miasm反混淆框架反混淆后的结果是一张图片,无法反编译恢复程序源码的问题,在对底层虚拟机混淆器(OLLVM)混淆策略和Miasm反混淆思路进行深入学习研究后,提出并实现了一种基于符号执行的OLLVM通用型自动化反混淆框架。首先,利用基本块识别算法找到混淆程序中有用的基本块和无用块;其次,采用符号执行技术确定各个有用块之间的拓扑关系;然后,直接对基本块汇编代码进行指令修复;最后,得到一个反混淆后的可执行文件。实验结果表明,该框架在保证尽量少的反混淆用时前提下,反混淆后的程序与未混淆源程序的代码相似度为96.7%,能非常好地实现x86架构下C/C++文件的OLLVM反混淆。 展开更多
关键词 Miasm 底层虚拟机混淆器 反混淆 符号执行 指令修复 代码相似度
下载PDF
基于底层虚拟机的标识符混淆方法 被引量:1
8
作者 田大江 李成扬 +1 位作者 黄天波 文伟平 《计算机应用》 CSCD 北大核心 2022年第8期2540-2547,共8页
针对现有代码混淆仅限于某一特定编程语言或某一平台,并不具有广泛性和通用性,以及控制流混淆和数据混淆会引入额外开销的问题,提出一种基于底层虚拟机(LLVM)的标识符混淆方法。该方法实现了4种标识符混淆算法,包括随机标识符算法、重... 针对现有代码混淆仅限于某一特定编程语言或某一平台,并不具有广泛性和通用性,以及控制流混淆和数据混淆会引入额外开销的问题,提出一种基于底层虚拟机(LLVM)的标识符混淆方法。该方法实现了4种标识符混淆算法,包括随机标识符算法、重载归纳算法、异常标识符算法以及高频词替换算法,同时结合这些算法,设计新的混合混淆算法。所提混淆方法首先在前端编译得到的中间文件中候选出符合混淆条件的函数名,然后使用具体的混淆算法对这些函数名进行处理,最后使用具体的编译后端将混淆后的文件转换为二进制文件。基于LLVM的标识符混淆方法适用于LLVM支持的语言,不影响程序正常功能,且针对不同的编程语言,时间开销在20%内,空间开销几乎无增加;同时程序的平均混淆比率在77.5%,且相较于单一的替换算法和重载算法,提出的混合标识符算法理论分析上可以提供更强的隐蔽性。实验结果表明,所提方法具有性能开销小、隐蔽性强、通用性广的特点。 展开更多
关键词 软件保护 代码混淆 标识符混淆 底层虚拟机 混淆方法
下载PDF
基于LLVM的指令并行调度与实现 被引量:1
9
作者 屈秋雯 梁利平 《微电子学与计算机》 CSCD 北大核心 2013年第11期60-63,共4页
IME-Diamond处理器是一款VLIW结构的多核处理器,具有多个通道,可并行执行多条指令。为了充分利用多通道并行执行的特性,IME-Diamond处理器需要编译器提供并行度信息来实现指令并行。开源的LLVM 编译器架构为编译器的移植和优化提供... IME-Diamond处理器是一款VLIW结构的多核处理器,具有多个通道,可并行执行多条指令。为了充分利用多通道并行执行的特性,IME-Diamond处理器需要编译器提供并行度信息来实现指令并行。开源的LLVM 编译器架构为编译器的移植和优化提供了一个便利的平台。在此平台上可以配置和插入相应的Pass模块对指令进行分析与静态调度,并根据分析结果插入Paralink指令来显式的指示出指令的并行度,指导硬件并行发射。实验结果表明,通过并行调度后,生成代码的性能提升了16%~30%。 展开更多
关键词 LLVM 编译器 指令并行 指令调度
下载PDF
基于低级虚拟机的运行时多语言AOP系统
10
作者 彭凡 范明钰 朱大勇 《计算机应用研究》 CSCD 北大核心 2006年第12期95-96,100,共3页
利用低级虚拟机的多阶段优化和多语言支持特性,通过设计一种良好的连接点模型,可以在一定语言范围内实现运行时多语言的AOP系统。
关键词 AOP 运行时 低级虚拟机
下载PDF
面向可重构编译技术的RAM访问优化算法
11
作者 杨敏 吴艳霞 +1 位作者 顾国昌 孙延腾 《计算机工程》 CAS CSCD 北大核心 2011年第2期284-285,289,共3页
在基于低层虚拟机的四层C-to-VHDL可重构编译架构上,针对RAM访问和设计执行性能之间的矛盾,提出一种RAM读取优化算法。通过对IR访存指令及数据相关性的分析,创建专用数据通路,优化RAM的访存过程。实验结果表明,该优化算法能够有效减少RA... 在基于低层虚拟机的四层C-to-VHDL可重构编译架构上,针对RAM访问和设计执行性能之间的矛盾,提出一种RAM读取优化算法。通过对IR访存指令及数据相关性的分析,创建专用数据通路,优化RAM的访存过程。实验结果表明,该优化算法能够有效减少RAM访问次数。 展开更多
关键词 C—to—VHDL可重构编译 FPGA设计 低层虚拟机 RAM访问优化
下载PDF
AltiVec指令集模拟器的建模和实现
12
作者 于洋 蔡启先 李丹丹 《广西工学院学报》 CAS 2012年第1期49-54,共6页
指令集模拟器(ISS)是研究新处理器架构必不可少的方法,研究基于AltiVec指令集建立SystemC模型,提出利用底层虚拟机技术来实现AltiVec ISS.实验表明,该模式比目前实现ISS的几种方法,如解释型编译、静态型编译、动态翻译技术等性能更为优... 指令集模拟器(ISS)是研究新处理器架构必不可少的方法,研究基于AltiVec指令集建立SystemC模型,提出利用底层虚拟机技术来实现AltiVec ISS.实验表明,该模式比目前实现ISS的几种方法,如解释型编译、静态型编译、动态翻译技术等性能更为优化,且具有一定的灵活性. 展开更多
关键词 AltiVec指令集 SystemC建模 动态翻译 底层虚拟机
下载PDF
基于GPU的LLVM程序分析信息并行提取
13
作者 马冬冬 衷璐洁 朱敬茹 《计算机工程》 CAS CSCD 北大核心 2017年第10期23-30,共8页
LLVM中间表示(IR)中包含大量的程序分析原始信息,传统基于CPU的程序分析信息提取方法大多采用串行的循环迭代方式处理较大规模程序,可扩展性较差。为此,结合图像处理器(GPU)的通用计算优势,提出一种基于统一计算设备架构的LLVM平台程序... LLVM中间表示(IR)中包含大量的程序分析原始信息,传统基于CPU的程序分析信息提取方法大多采用串行的循环迭代方式处理较大规模程序,可扩展性较差。为此,结合图像处理器(GPU)的通用计算优势,提出一种基于统一计算设备架构的LLVM平台程序分析信息并行提取方法,在CPU上实现程序特征分析及IR预处理、存储结构设计及提取信息的可视化,在GPU上完成并行线程调度的程序分析信息匹配及提取工作。实验结果表明,该方法可提高LLVM平台程序分析信息的提取效率,与串行提取方法相比,最高可获得4倍的加速比。 展开更多
关键词 底层虚拟机 中间表示 程序分析 信息提取 图形处理器 可扩展性
下载PDF
基于LLVM的Android应用程序加固方法
14
作者 江秋语 殷芙萍 《现代计算机》 2021年第11期150-156,共7页
逆向分析严重威胁着Android应用程序的知识产权。代码混淆是保护Android应用程序的常用方法,但是针对Android字节码的混淆保护会带来大量的性能开销。本地代码比Java代码加载速度更快且保留更少的语义,因此混淆技术对本地代码更适用。... 逆向分析严重威胁着Android应用程序的知识产权。代码混淆是保护Android应用程序的常用方法,但是针对Android字节码的混淆保护会带来大量的性能开销。本地代码比Java代码加载速度更快且保留更少的语义,因此混淆技术对本地代码更适用。本文提出一种基于LLVM编译框架的Android应用程序加固方法,该方法有安全性高、隐蔽性好、性能开销低的特点。利用LLVM将DEX文件中的Java函数转化为LLVM中间表示,对其进行混淆并预编译得到本地代码;执行加固后的程序时通过JNI调用本地代码,动态加载被保护函数。实验结果表明,该方法能够在较低性能消耗下有效地保护应用程序不受静态分析和动态调试攻击的影响。 展开更多
关键词 Android加固 LLVM 函数本地化 代码混淆 安全
下载PDF
基于动态符号执行的C代码缓冲区溢出检测 被引量:1
15
作者 张俊贤 李舟军 《北京邮电大学学报》 EI CAS CSCD 北大核心 2016年第B06期50-54,共5页
缓冲区溢出是C程序中众多安全隐患的根源之一,以C程序代码为目标对象,提出了一个基于底层虚拟机中间代码的缓冲区溢出检测工具Path Checker.该工具基于动态符号执行方法,使用无量词谓词公式刻画缓冲区操作的安全性质,并利用可满足模型... 缓冲区溢出是C程序中众多安全隐患的根源之一,以C程序代码为目标对象,提出了一个基于底层虚拟机中间代码的缓冲区溢出检测工具Path Checker.该工具基于动态符号执行方法,使用无量词谓词公式刻画缓冲区操作的安全性质,并利用可满足模型理论求解器技术检验缓冲区操作的安全性.实验结果表明,该工具能有效检测C代码中的缓冲区溢出漏洞,且易于推广至其他高级程序语言代码和其他类型安全漏洞的检测. 展开更多
关键词 缓冲区溢出检测 动态符号执行 可满足模型理论求解器 底层虚拟机中间代码插桩
原文传递
上一页 1 下一页 到第
使用帮助 返回顶部