首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
彭国军  梁玉  张焕国  傅建明 《软件学报》2017,28(8):2026-2045
在当前的计算机系统架构和软件生态环境下,ROP(Return-Oriented Programming)等基于二进制代码重用的攻击技术被广泛用于内存漏洞利用.近年来,网络空间安全形势愈加严峻,学术界、工业界分别从攻击和防护的角度对二进制代码重用技术开展了大量研究.文章首先介绍了二进制代码重用技术的基础,然后分析了二进制代码重用攻击技术的演变和典型攻击向量;同时,对基于控制流完整性和随机化的防护方法进行了讨论,对工业界最新的二进制代码重用防护机制CET(Control-flow Enforcement Technology)和CFG(Control Flow Guard)进行了剖析.文章最后讨论了二进制代码重用技术今后的发展方向,包括潜在的攻击面和防御机制增强的思路.  相似文献   

2.
随着软件系统功能的日益强大,软件编写的代码量呈指数趋势增长,程序错误控制和程序性能优化变得越来越困难。为了在代码量增加的情况下,有效控制程序质量,改进程序性能,程序员大多采用动态二进制分析工具进行程序分析。动态二进制代码插入框架有效地简化了动态二进制工具的构建,因此准确掌握每种动态二进制代码插入框架的特征,成为准确构建不同工具的前提。本文通过对常用的五种二进制代码插入框架进行深入研究分析,总结归纳了每种框架的特点和特定情况下的适用性,为在工具构建过程中进行框架的准确有效选择提供了参考。  相似文献   

3.
提出了一种对二进制文件中的库函数的展开形式进行识别的方法。首先对二进制文件进行反汇编,然后对反汇编代码中的必然指令进行识别,最后利用IDA Pro的脚本语言IDC编写代码进行验证。  相似文献   

4.
在软件相似性鉴定中,笔者遇到了一个C语言编写软件和汇编语言编写软件的相似性鉴定,在过往的几个相似判决案例中,鉴定机构都直接比对了目标代码,且在其中一份判决案例中直接提到了在二进制代码实质相同的情形下,存在用不同语言编写的源程序的可能性极小。而在本案中,经过试验求证,发现相同的目标代码是可能来源于不同语言编写的源代码,而且C语言源代码和汇编语言源代码之间存在转换关系,C语言源代码可在编译中生成汇编语言代码,而C语言源代码生成的目标代码也可反编译成汇编语言代码,从而进行进一步的比对,这种比对,在原被告都提供了与目标代码对应的源代码的情况下,比只比对目标代码显然更具有说服力。  相似文献   

5.
通用平台目标二进制代码运行时控制流的提取主要依赖于处理器硬件特性,或其动态二进制插桩工具,该平台的控制流完整性验证方法无法直接移植到进阶精简指令集机器( ARM)架构中。为此,基于控制流完整性验证技术,设计一种用于ARM架构,利用缓冲溢出漏洞检测控制流劫持攻击的方法。该方法在程序加载时、执行前动态构建合法跳转地址白名单,在目标二进制代码动态执行过程中完成控制流完整性验证,从而检测非法控制流转移,并对非法跳转地址进行分析,实现漏洞的检测和诊断。在ARM-Linux系统的动态二进制分析平台上实施测试,结果表明,该方法能够检测出漏洞,并精确定位攻击矢量。  相似文献   

6.
朱巍峰  曾联明 《电脑学习》2007,(2):64-64,F0003
介绍了在Asp.net开发环境下,实现对Sql数据库进行访问的通用类C#代码的编写方法.  相似文献   

7.
.NET平台分层架构开发中泛型实现通用数据访问层   总被引:1,自引:0,他引:1  
基于.NET平台的分层架构项目的开发过程中,数据访问层(Data Access Layer,以下简称DAL)的开发是必不可少的,当项目中存在很多数据表的时候,DAL的开发会成为一个不停编写重复代码的工作,这是非常浪费时间的,通用DAL则能够较好的解决这种问题,而且通用DAL可以在基于.NET平台分层架构开发的项目中进行非常方便的重用。在微软提出泛型之后,类型也可以作为一种参数来进行指定,为实现通用DAL提供了高效可用的技术手段。  相似文献   

8.
二进制翻译是不同体系结构之间软件移植的重要手段。体系结构和硬件环境上的差别,可以通过二进制翻译系统来弥补,在翻译过程中往往使用多条本地指令模拟一条目标指令,翻译代码规模随之显著增加,从而导致被翻译程序的执行效率下降。寄存器作为处理器和内存交换信息的重要存储部件,寄存器的模拟器方式对于程序的性能有着至关重要的影响。为了提高特定平台翻译后代码的执行效率,提出了在动态二进制翻译机制中使用全部寄存器直接映射方法,详细分析了二进制翻译中的上下文切换原理和寄存器访问范围,为异构平台之间寄存器直接映射提供方法指导。利用QEMU模拟器,把x86架构的8个通用寄存器全部的直接映射到MIPS架构的对应寄存器,在此基础上,进行大量的指令翻译规则的简化。实验数据表明,该方法可以有效简化指令翻译,降低代码膨胀率,使得SPEC CINT 2000测试程序在龙芯CPU上翻译后代码运行时间下降了30%-40%。  相似文献   

9.
代码相似性检测常用于代码预测、知识产权保护和漏洞搜索等领域,可分为源代码相似性检测和二进制代码相似性检测。软件的源代码通常难以获得,因此针对二进制代码的相似性检测技术能够适用的场景更加广泛,学术界也先后提出了多种检测技术,文中对近年来该领域的研究进行了综述。首先总结代码相似性检测的基本流程和需要解决的难题(如跨编译器、跨编译器优化配置、跨指令架构检测);然后根据关注的代码信息的不同,将当前的二进制代码相似性检测技术分为4类,即基于文本的、基于属性度量的、基于程序逻辑的和基于语义的检测技术,并列举了部分代表性方法和工具(如Karta,discovRE,Ge-nius,Gemini,SAFE等);最后根据发展脉络和最新研究成果,对该领域的发展方向进行了分析和论述。  相似文献   

10.
动态二进制翻译是广泛应用于虚拟机系统的一种二进制代码的翻译技术。动态二进制翻译由于拥有代码缓存、本地执行、代码块链接、动态热路径生成等优化技术的支持,有着很高的性能。CrossBit是一个多元多目标的动态二进制翻译系统,通过对CrossBit二进制翻译器的性能进行的研究,分析动态二进制翻译器性能提升中所必须解决的若干问题,并通过定量的分析总结了一些二进制翻译系统的在不同的配置和负载下系统优化手段的执行时策略。  相似文献   

11.
二进制翻译系统是一种基于软件的跨平台代码迁移系统,它将一种体系结构的二进制代码翻译成另一种体系结构的二进制代码.二进制翻译可以用于解决遗产代码的迁移问题,也可以实现不同硬件平台之间软件的通用.浮点栈的处理已成为以X86为源的二进制翻译的研究中的关键性问题之一,如何处理X86浮点栈问题直接关系到以X86为源的二进制翻译系统的性能.针对X86浮点寄存器栈的特征,提出了一种扩展虚拟栈(extending virtual stack)处理方案.它采用归一的方法,保证了每个基本块中的运算所涉及到的浮点寄存器可以直接映射到目标机器中的浮点寄存器,确保了翻译的效率,并利用翻译时的分析避免了在入口处不必要的判断;同时还给出了在基本块入口处判别一个基本块是否会出现浮点栈上溢和下溢的充分必要条件,为生成更加高效的代码提供了条件.实验表明,它能够在保证正确实现其功能的前提下,获得更好的执行效率.  相似文献   

12.
二进制翻译是指把一种机器平台上的二进制可执行程序经过转换后运行在另一个机器平台上的过程,它解决了二进制代码在异构机器平台上的迁移问题。该文介绍了二进制翻译的工作原理,阐述了CrossBit动态二进制翻译基础平台的设计思路与关键实现,包括其系统架构、工作流程和中间指令的设计。实验数据表明,二进制翻译技术的性能优于传统软件解释技术。  相似文献   

13.
计算机网络的重要任务之一就是进行文件通信,而PC机(含其兼容机)之间的文件通信又是大量的。本文的“通用”两字是指本程序适用于PC机间所有类型的文件:数据文件,如顺序文件、随机文件、WS文件、数据库文件等,二进制代码文件,如EXE文件、COM文件等,以及任何语言编写的程序。  相似文献   

14.
直接面向可执行程序进行安全漏洞分析时,首先需要得到二进制代码的中间语言表示。探讨了流分析技术在汇编代码理解中的应用,并在Linux平台上实现了一个轻量级汇编代码结构化表示工具BESTAR。该系统利用控制流和数据流分析技术识别通用控制结构,分析程序执行流,重构表达式和函数,发现数据依赖关系,将汇编代码转换成一个结构化、易理解的中间语言程序,为进一步进行安全分析打下了基础。  相似文献   

15.
二进制代码比较技术在病毒变种分析,安全补丁分析,版本信息导出等许多领域都有着广泛的应用。在定义了基于图的二进制代码描述方法的基础上,从函数和基本块两个层次对近似的二进制代码进行比较,分析出它们之间相同的部分和差异信息。讨论了基于图的二进制文件特征的选取,利用特征比较和固定点传播算法,建立两份代码在函数和基本块两个级别的对应关系。本文给出了这种基于特征提取的二进制代码比较技术的实现框架,并列举了它在恶意软件变种分析,公开漏洞定位方面的利用实例。  相似文献   

16.
三层架构是数据库开发中最常用的分层架构。三层结构能够提高代码重用率,降低项目开发难度。为了解决手工编写三层架构的代码工作量大且容易出错的问题,使用.Net平台提供的动态编译和反射技术,设计并实现了基于可定制模板的自动代码生成器。该代码生成器利用三层架构的代码依赖数据库的架构信息这一特点,以数据库架构信息、Xml配置文件和模板文件作为输入,输出三层架构的各层代码。用户可以修改Xml配置文件的内容和使用该代码生成器提供的模板语言定制、修改自己的模板文件,方便、灵活地控制输出的目标代码。代码生成器的使用在实际的项目开发中具有重要的意义。  相似文献   

17.
在开发Web应用程序时,经常要对数据库进行访问,实现对数据的增加、删除、修改等操作。这一系列操作代码是烦琐的,而且每次对数据库操作都要重复编写这些代码。该文介绍了运用.NET技术和数据库技术编写通用代码,用较短的程序代替通常需要重复书写的大量程序段,减少了数据库维护的工作量,提高了项目开发的效率。  相似文献   

18.
三层架构是数据库开发中最常用的分层架构.三层结构能够提高代码重用率,降低项目开发难度.为了解决手工编写三层架构的代码工作量大且容易出错的问题,使用. Net 平台提供的动态编译和反射技术,设计并实现了基于可定制模板的自动代码生成器.该代码生成器利用三层架构的代码依赖数据库的架构信息这一特点,以数据库架构信息、Xml配置文件和模板文件作为输入,输出三层架构的各层代码.用户可以修改 Xml 配置文件的内容和使用该代码生成器提供的模板语言定制、修改自己的模板文件,方便、灵活地控制输出的目标代码.代码生成器的使用在实际的项目开发中具有重要的意义  相似文献   

19.
苹果电脑公司推出了期待已久的Macintosh 操作系统兼容开发环境的 beta 发行版本。对于那些依赖于 Macintosh 应用程序的企业节点来说,这个新产品将把他们带入到即将来临的 Rhapsody 多平台操作系统。Rhapsody Macintosh 操作系统的子系统(代码名字叫做 Blue Box)在1997年12月份正式发行。该产品是 Macintosh 操作系统8的软件 ROM 映像。ZD 实验室在Rhapsody/PowerPC 机器上对它进行了  相似文献   

20.
为了在不修改处理器结构的基础上检测代码重用攻击,提出面向代码重用攻击检测的安全调试架构。针对通用基础调试结构可利用的调试信号,设计总线跟踪模块,为执行内存访问控制提供接口。研究基于性能计数器的函数级代码重用攻击检测方法,增加跟踪检测微控制单元,使安全调试架构与性能计数器配合工作,在不插桩的前提下完成检测。实验结果表明,安全调试架构传输延时小,资源消耗少,能够有效检测代码重用攻击。  相似文献   

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

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