首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到14条相似文献,搜索用时 250 毫秒
1.
针对Miasm反混淆框架反混淆后的结果是一张图片,无法反编译恢复程序源码的问题,在对底层虚拟机混淆器(OLLVM)混淆策略和Miasm反混淆思路进行深入学习研究后,提出并实现了一种基于符号执行的OLLVM通用型自动化反混淆框架。首先,利用基本块识别算法找到混淆程序中有用的基本块和无用块;其次,采用符号执行技术确定各个有用块之间的拓扑关系;然后,直接对基本块汇编代码进行指令修复;最后,得到一个反混淆后的可执行文件。实验结果表明,该框架在保证尽量少的反混淆用时前提下,反混淆后的程序与未混淆源程序的代码相似度为96.7%,能非常好地实现x86架构下C/C++文件的OLLVM反混淆。  相似文献   

2.
寇宇  王其军 《计算机应用研究》2022,39(11):3465-3469+3474
底层虚拟机混淆器(OLLVM)是一个著名的代码混淆工具,除了用于保护商业软件的安全外,也被恶意代码的开发者所利用,以此增加分析难度。为便于安全研究人员对ARM恶意程序进行分析,提出并实现了基于动态分析的OLLVM自动化反混淆方法。对于虚假控制流,根据不透明谓词的内存特征监控内存读写并利用动态污点分析技术识别虚假控制流来完成反混淆;对于控制流平坦化,通过动态运行程序并记录基本块的执行顺序来完成反混淆;同时利用多执行路径构造来提高代码覆盖率,最后通过指令修复还原基本块之间的关系。实验结果表明,该方法可准确消除可执行程序中因混淆产生的条件分支,且反混淆后得到的程序其运行结果与未混淆的程序保持一致,能有效完成对ARM混淆程序的反混淆工作。  相似文献   

3.
经过多年的技术发展和攻防对抗, Android平台应用加固技术已较为成熟,防护粒度逐步从通用的DEX动态修改发展为高度定制化的Native层混淆机制,通过不断提高逆向分析的难度和工作量,增强客户端代码防护能力.针对近期崛起的OLLVM混淆加固技术,提出一种基于Capstone和流敏感混合执行的自动化反混淆决方案(CiANa). CiANa采用Capstone引擎分析基本块及其指令结构,识别散落在程序反汇编控制流程图中的真实块,并基于流敏感的混合执行确定各真实块间的执行顺序,最后对真实块汇编指令进行指令修复得到反混淆后的可执行二进制文件.实验对比结果表明, CiANa可有效恢复ARM/ARM64架构下经OLLVM混淆的Android Native文件.CiANa是目前为止首个在ARM/ARM64架构中,支持对全版本(Debug/Realse版本) OLLVM进行有效反混淆并生成可执行文件的框架,为逆向分析提供了必要的辅助支撑.  相似文献   

4.
针对现有代码混淆仅限于某一特定编程语言或某一平台,并不具有广泛性和通用性,以及控制流混淆和数据混淆会引入额外开销的问题,提出一种基于底层虚拟机(LLVM)的标识符混淆方法。该方法实现了4种标识符混淆算法,包括随机标识符算法、重载归纳算法、异常标识符算法以及高频词替换算法,同时结合这些算法,设计新的混合混淆算法。所提混淆方法首先在前端编译得到的中间文件中候选出符合混淆条件的函数名,然后使用具体的混淆算法对这些函数名进行处理,最后使用具体的编译后端将混淆后的文件转换为二进制文件。基于LLVM的标识符混淆方法适用于LLVM支持的语言,不影响程序正常功能,且针对不同的编程语言,时间开销在20%内,空间开销几乎无增加;同时程序的平均混淆比率在77.5%,且相较于单一的替换算法和重载算法,提出的混合标识符算法理论分析上可以提供更强的隐蔽性。实验结果表明,所提方法具有性能开销小、隐蔽性强、通用性广的特点。  相似文献   

5.
针对ARM程序高层代码混淆存在盲目性较强而降低混淆准确度,且很容易被逆向还原的问题。从ARM汇编指令底层研究ARM程序混淆,通过结合ARM架构指令系统的特点,基于模式切换提出一种ARM汇编代码混淆算法,包括指令模式切换混淆、寄存器随机分配混淆和虚假指令混淆,使混淆后汇编代码的控制流变得更加复杂,且对切换地址的寄存器混淆也提高了动态调试跟踪的难度。模式切换及虚假指令混淆也会造成反汇编错误,从复杂强度、逆向弹性和性能开销三方面进行测试评估。测试结果表明,该混淆算法不仅有效地提高了程序的控制流循环复杂度,而且能够抵抗反汇编工具的逆向分析。该混淆算法引发的额外体积开销和时间开销较低,具有实用性。  相似文献   

6.
符号执行在辅助挖掘软件漏洞和软件去混淆等领域取得了很大的进展,作为保护软件安全最有效手段之一的代码混淆系统如今几乎无法对抗符号执行的攻击.为解决上述问题,文章从混淆系统的功能扩展和符号执行工具的弱点利用出发,通过丰富OLLVM的同义指令替换集合和恒真谓词集合,设计不透明谓词对软件控制流进行混淆以及对分支条件进行加固,提...  相似文献   

7.
潘雁  祝跃飞  林伟 《软件学报》2019,30(6):1778-1792
软件程序是按一定顺序排列的指令序列,指令的排列组合构成了千变万化的程序语义.指令顺序重排通常会相应地导致程序语义的变化,通过分析相邻指令序列的相对独立性,可以在不影响程序语义的前提下交换相邻指令序列,增大指令距离,改变程序特征,在一定程度上增加逆向分析代价.通过改进程序的形式化定义论证相邻指令交换的充分条件,采用模拟退火算法实现随机化的指令乱序混淆方法,并将指令乱序方法与虚拟机代码保护技术融合,实现基于指令乱序的虚拟机代码保护系统IS-VMP,使用加密算法实例进行系统测试,验证了指令乱序混淆算法的可行性与有效性.  相似文献   

8.
针对静动态逆向分析容易获取程序内部核心代码的问题,提出一种基于ROP技术的代码混淆方法。借鉴ROP攻击技术的代码组织和调用方式,利用内存空间随机分布的gadget指令序列执行目标代码的等价功能,实现隐藏目标代码和抵抗逆向分析的目的。从有效性、时间开销和空间开销三个方面评价方法的性能,分析和实验表明,该方法能够有效增加攻击者静动态获取和分析目标代码的难度,具有较好的时间和空间开销性能。  相似文献   

9.
针对虚拟机模块连接安全性较弱的问题,提出一种多维防御混合的虚拟机保护安全性增强方法。首先融合ROP、指令重叠和指令自修改技术对虚拟机框架模块连接指令序列进行隐蔽性混淆,然后运用基于多样化和随机化技术构造的混淆指令网络提升指令序列复杂性,最后采用哨兵集和三线程保护技术完成模块连接指令序列的防篡改。采用了不透明谓词,随机选...  相似文献   

10.
自修改代码混淆方法是一种隐藏程序重要信息的有效技术。为减少代码混淆造成的额外开销而又不影响代码混淆的质量,利用程序流敏感分析方法选择比较重要的指令进行混淆。为提高代码混淆的质量,有效地防止反汇编,提出一个二步比较混淆模型。该模型包括两个子混淆器,混淆器1采用程序流敏感分析方法获得混淆的指令并产生两个混淆代码文件和一个混淆代码映射文件。混淆器2通过比较两个混淆代码文件精确地定位混淆指令在二进制代码中的位置,然后利用混淆代码映射文件对二进制代码进行混淆,以进一步提高代码混淆的质量。通过实验分析,混淆后二进制文件的额外开销只占整个代码的3%左右,并且混淆后的反汇编代码明显异于原始的反汇编代码,甚至出现了一些无法识别的错误指令。  相似文献   

11.
于璞  舒辉  熊小兵  康绯 《软件学报》2023,34(4):1650-1665
目前,在代码保护技术研究领域,传统的混淆方法具有明显的混淆特征,分析人员可根据特征对其进行定制化的去混淆处理.为此,提出了一种基于分片融合的代码保护技术,通过在源代码层面将目标代码按照语法规则进行代码分片,依据执行顺序与语法规则,将分片插入另一程序的不同位置,在修复函数调用过程与数据关系后,形成可正常运行两个代码功能的融合后代码.在实验部分,对混淆后的代码,从运行效率、代码复杂度影响、代码相似性这3个维度,与其他混淆技术进行对比.从测试结果可以看出:基于分片融合的代码隐式混淆技术能够有效地模糊代码语义,改变控制流特征,且没有明显的混淆特征.因此,融合技术在对抗多种相似性对比算法的能力上有明显优势.  相似文献   

12.
花指令模糊变换是代码模糊变换策略中的一种有效方法.在分析现有花指令加密方法的基础上,提出一种子程序花指令模糊变换方案,并利用形式化方法对其进行描述.通过研究子程序花指令模糊变换各种形式化的定义,推导出若干引理,从"XOR及CMP扩展"、"伪分支构造"、"JNE后加花指令"等3个方面加以形式化的证明,使得经上述子程序花指令模糊变换的程序具有与原程序相同的逻辑性.最后,以代码模糊变换评测标准对该算法的效果进行了详细分析.  相似文献   

13.
代码混淆可有效对抗逆向工程等各类MATE攻击威胁,作为攻击缓和性质的内生安全技术发展较为成熟,对代码混淆效果的合理度量具有重要价值。代码混淆度量研究相对较少,针对代码混淆弹性的度量方法与泛化性、实用性度量方法相对缺乏。符号执行技术广泛应用于反混淆攻击,其生成遍历程序完整路径输入测试集的难度可为混淆弹性度量提供参考,然而基于程序嵌套结构的对抗技术可显著降低符号执行效率,增加其混淆弹性参考误差。针对上述问题,提出结合符号执行技术和N-scope复杂度的代码混淆度量方法,该方法首先基于程序符号执行时间定义程序混淆弹性;其次提出适配符号执行的N-scope复杂度,定义程序混淆强度同时增强符号执行对多层嵌套结构程序的混淆弹性度量鲁棒性;进而提出结合动态分析与静态分析的混淆效果关联性分析,通过对程序进行符号执行与控制流图提取量化混淆效果。面向C程序构建了该度量方法的一种实现框架并验证,实验对3个公开程序集及其混淆后程序集约4 000个程序进行混淆效果度量,度量结果表明,提出的度量方法在较好地刻画混淆效果的同时拥有一定的泛化能力与实用价值;模拟真实混淆应用场景给出了该度量方法的使用样例,为混淆技术使...  相似文献   

14.
函数调用相关信息识别是二进制代码静态分析的基础,也是恶意代码分析的重要线索。二进制代码混淆技术通过对函数调用指令call、参数传递过程和调用返回过程的混淆来隐藏代码中函数的信息。这大大增加了程序逆向分析的难度,此技术被广泛应用在变形和多态病毒中,使其逃脱杀毒软件的查杀。论文给出了一种静态分析方法,引入了抽象栈图的概念,给出了其构造算法,利用它能够有效识别出代码中对函数调用的混淆。  相似文献   

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

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