首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 187 毫秒
1.
Linux内核版本频繁升级对驱动程序带来的关联影响程度和影响范围都很大,为了修复这种关联影响带来的驱动程序调用内核接口的不一致性错误,不断修改旧版本驱动代码进行前向移植是一个持续和紧迫的问题.驱动演化辅助理解、驱动移植中间库辅助适配和驱动移植辅助信息等方面的已有研究,通过检索语句级别的辅助信息提高了驱动移植的效率.但是已有方法仅关注了检索辅助信息本身却并没有区分其中包含的有效补丁素材,因此还需要人工分析和手工构造适配性补丁.为了克服上述限制,提出了一种全新的方法旨在推荐驱动前向移植中接口错误的高质量补丁.观察发现,依赖相同内核接口服务的多个不同驱动程序之间存在相同或相似的内核接口调用,内核版本升级后其他驱动的历史开发信息中可能存在这种复用接口及其使用变更的已有实例代码.利用出错接口语句和相似已有实例的共性分析错误问题的特点,通过已有实例的辅助作用抽取针对性的接口修改方式和修改内容等细粒度素材生成待推荐补丁.具体结合分界点识别、相似度计算、细粒度差异比较和频度计算确定有效修改方式.提出了一种基于已有实例差异特征的分类算法,通过区分修改内容的不同类型分别从2种数据源提取.最后使用编辑脚本技术生成推荐补丁列表.在9个不同类型的真实驱动程序上的实验表明,该方法能够推荐驱动移植中7类接口错误补丁,有效补丁占比约67.4%,对现有辅助方法形成了有效补充和拓展.  相似文献   

2.
软件开发商通过向用户提供补丁程序来修改软件中存在的安全漏洞。但随着安全漏洞研究者不断提高分析安全补丁的能力和速度,厂商开始向公众封闭与安全补丁相关的漏洞技术细节,仅提供软件打补丁前后的二进制代码,由此引发了二进制代码比较技术研究的热潮。二进制代码比较技术的目的是定位执行代码间的差异,从而获得补丁所修补的漏洞细节。本文提出了一种基于反汇编技术,定位执行代码间语义差异,从而完成二进制安全补丁分析的方法。描述了该技术模型、系统框架和关键技术,并通过实践证明此方法可以快速有效地定位安全补丁所修补的软件漏洞。  相似文献   

3.
SATA硬盘已经是目前多媒体应用中被广泛使用的存储介质, 而有些多媒体产品的Linux版本中, 并不支持SATA驱动框架。本文通过对Linux下IDE驱动框架及其相关的Linux驱动代码的分析, 提供了一种在IDE驱动程序框架下移植SATA驱动程序的方法。最后以SiI3512为例, 介绍了SATA驱动程序的移植过程。对于其它此类系统的移植具有很好的借鉴作用。  相似文献   

4.
Linux内核版本变更带来驱动程序调用内核接口的不一致性错误非常频繁,其通过手工修复不仅工作量繁重,还可能引入新的错误.针对这个问题,驱动移植中间库辅助适配和驱动移植辅助信息等方面的已有研究提供了辅助示例,但是还需要人工分析和手工构造补丁,人工修复的工作量依然较大并且效率较低.为此,通过推荐高质量补丁降低人工修复的工作量并提高修复效率.与传统方法通过错误代码形式的相似性识别同类错误不同,提出依据错误发生的相同原因和来源识别同类错误.提出了一种分层搜索算法用于获取待修复错误对应的错误根因,通过错误根因识别同类错误的修复实例,从其中提取并选择针对性修复模板实现同类未修复错误的高质量补丁推荐.在收集的19个真实驱动程序数据集上的实验表明,所提方法相比传统方法的补丁推荐正确率有显著提高.  相似文献   

5.
叶益林  吴礼发  颜慧颖 《计算机科学》2017,44(6):161-167, 173
原生代码已在Android应用中广泛使用,为恶意攻击者提供了新的攻击途径,其安全问题不容忽视。当前已有Android恶意应用检测方案,主要以Java代码或由Java代码编译得到的Dalvik字节码为分析对象,忽略了对原生代码的分析。针对这一不足,提出了一种基于双层语义的原生库安全性检测方法。首先分析原生方法Java层语义,提取原生方法函数调用路径,分析原生方法与Java层的数据流依赖关系以及原生方法函数调用路径的入口点。对于原生代码语义,定义了数据上传、下载、敏感路径读写、敏感字符串、可疑方法调用5类可疑行为,基于IDA Pro和IDA Python对原生代码内部行为进行自动分析。使用开源机器学习工具Weka,以两层语义作为数据特征,对5336个普通应用和3426个恶意应用进行了分析,最佳检测率达到92.4%,表明所提方法能够有效检测原生库的安全性。  相似文献   

6.
关系信息是体现代码结构和语义的最重要的一类信息,如继承、聚合、组合、依赖、调用和创建实例等。为了更好地支持开源代码的理解与复用,提出了一种基于UML2关系的代码库构造方法。它以图数据库为实现平台,采用语言工程中经典的抽象语法树作为基础,并针对Java语言的特性和机制,设计富语义的Java代码属性图数据模型,在此基础上使得Java代码的图结构持久化。同时,为了屏蔽各种编程语言社区对代码中关系信息理解的差异性,采用UML2.4国际标准版本中定义的关系类型及语义解释,设计相应的代码关系抽取算法,为图节点添加对应的关系边。针对代码图化后的膨胀及代码库的空间存储消耗情况,选取9个常见的开源项目进行了实验评估。最后,给出了基于此代码库的查询应用实例。  相似文献   

7.
金凯峰  王雅文 《软件》2013,(12):14-17
测试用例执行框架是代码测试系统(Code Testing System CTS)的重要组成部分,用于执行测试用例,捕获插装结果。在CTS系统从Windows平台向Linux平台移植的过程中,测试用例执行框架遇到了线程调用和控制不兼容,异常捕获失败以及代码编译不通过等问题。本文通过使用Linux平台上常用的Pthread线程库,解决线程调用问题,通过设计并实现异常栈解决C语言异常捕获失败的问题,通过解析被测单元所在C语言工程的makeifle文件,提取出编译需要的头文件及链接共享库或静态链接库需要的链接选项,解决测试用例执行框架编译失败的问题。通过解决上述问题,CTS的测试用例执行框架能够在Linux平台上正常运行。  相似文献   

8.
Windows程序运行于Linux系统的技术   总被引:2,自引:0,他引:2  
在Linux系统上运行Windows程序,是Linux争夺桌面应用领域面临的技术难题.对Windows设备驱动程序和应用程序运行于Linux系统的技术现状及发展趋势作了综合阐述.对于兼容Windows设备驱动程序,目前Linux系统仅能运行Windows网络接口设备驱动程序;对于兼容Windows应用程序,目前可采取的技术有代码重构、跨平台编译、软件虚拟机和API仿真等技术.这些技术因各自的局限性而无法撼动Windows在桌面领域的统治地位,使得开发支持Windows设备驱动程序和应用程序的Linux兼容内核成为提高桌面Linux市场竞争力的必然趋势.  相似文献   

9.
陈晨  周宇  王永超  黄志球 《计算机科学》2021,48(12):100-106
在软件开发的过程中,开发人员在遇到编程困境时通常会检索合适的API来完成编程任务.情境信息和开发者画像在有效的API推荐中起着至关重要的作用,却在很大程度上被忽视了.因而文中提出了一种基于情境感知的API个性化推荐方法.该方法利用程序静态分析技术,对代码文件做抽象语法树解析,提取信息构建代码库,并对开发者API使用偏好建模.然后计算开发者当前查询语句与历史代码库中查询的语义相似度,检索出top-k个相似历史查询.最终利用查询语句信息、方法名信息、情境信息以及开发者API使用偏好信息对API进行重排序并推荐给开发者.通过模拟编程任务开发的不同阶段,使用MRR,MAP,Hit,NDCG评估指标来验证所提方法的有效性.实验结果表明,所提方法的API推荐效果优于基准方法,能够为开发者推荐更想要的API.  相似文献   

10.
二进制翻译中解析多目标分支语句的图匹配方法   总被引:1,自引:0,他引:1  
二进制翻译技术现已成为实现软件移植的重要手段.在二进制翻译系统中,如何有效地挖掘程序的代码并对其进行高效翻译是影响系统性能的关键,而二进制代码中间接跳转语句的存在,使得静态时难以得到它的跳转目标,影响了代码的发掘率和最终的翻译效果.在通常的应用程序中,间接跳转指令经常用来实现多目标分支语义,分支目标存放在跳转表中.提出了一种解析多目标分支语句及其跳转表的方法,能够挖掘出间接跳转的目标,进而对其进行有效翻译并提高二进制翻译系统的性能.该方法提出使用语义图来对预期语义进行刻画和表达.语义图能够对考察的指令序列进行语义提取,识别出与预期语义相匹配的指令流,还可以应对编译器在不同优化选项下生成的指令,并能有效滤除不相关指令带来的干扰.实验结果表明,对于SPEC CINT2000中的部分测试用例,代码翻译的覆盖率可以提高9.85%~22.13%,相应带来的性能提升可达到8.30%~17.71%,而使用的算法时间复杂度仅为O(1).  相似文献   

11.
骨干级网络设备作为关键基础设施, 一直是网络攻防中的焦点, 与此同时, 其作为一个封闭、复杂的信息系统, 漏洞的公开研究资料相对较少、漏洞细节缺失较多。补丁对比是一种有效的漏洞分析手段, 而骨干级网络设备固件解包后通常具有单体式可执行文件, 这类文件具有函数数量多、文件规模大、调试符号信息缺失等特点, 直接进行补丁比对会产生大量待确认的误报差异, 同时启发式算法可能将两个不相关的函数错误匹配, 导致正确的安全修补缺失及漏报。传统的补丁比对方法无法有效地解决这类文件的补丁分析问题, 漏洞细节的分析遇到挑战。本文提出了一种针对单体式可执行文件中已知漏洞的定位方法MDiff, 通过漏洞公告描述中的子系统概念与目标二进制文件的内部模块结构对目标进行了拆分, 在基于局部性的二进制比对技术之上, 利用语义相似度衡量方法对比对结果进行筛选排序。具体来讲, MDiff首先利用入口函数及局部性原理识别存在漏洞的网络协议服务代码, 即粗粒度定位阶段。其次针对已识别出的、存在漏洞的网络协议服务代码模块中存在差异的函数进行动静态结合的语义信息分析, 包括基于扩展局部轨迹的安全修补识别, 基于代码度量的安全修补排序等步骤, 即细粒度定位阶段。基于该两阶段漏洞定位方法, 我们实现了一个原型系统, 对4个厂商设备中已经披露的15个漏洞进行实验。实验结果表明, 本文提出的漏洞定位方法可以提高网络设备的补丁分析效率, 支持研究人员发现已知漏洞细节。  相似文献   

12.
漏洞的修复对于应用软件的安全至关重要。为了能够及时地修复所有已知漏洞,安全防护人员需要准确地检测一个安全补丁是否被应用。提出一个基于关键路径的语义层面的漏洞补丁存在性检测工具PatchChecker,通过找寻一条在漏洞修复前后发生改变的路径,分析其语义特征,生成能代表漏洞补丁的签名信息;利用这一签名信息,在目标程序中找出对应路径进行比较,判断漏洞补丁的应用情况。PatchChecker通过聚焦于单一路径,在提升对细节变化检测能力的同时,避免了未知代码修改带来的干扰。实验表明,PatchChecker能够以较高的准确率检测漏洞补丁是否被应用。  相似文献   

13.
In this paper we propose to adopt a learning-based encoding method for age estimation under unconstrained imaging conditions. A similar approach [Cao et al., 2010] is applied to face recognition in real-life face images. However, the feature vectors are encoded in hard manner i.e. each feature vector is assigned to one code. The face is divided into patches where a code histogram is built for each patch. However, the codebook is learned using sample features from the entire face.  相似文献   

14.
Backward compatibility is the property that an old version of a library can safely be replaced by a new version without breaking existing clients. Formal reasoning about backward compatibility requires an adequate semantic model to compare the behavior of two library implementations. In the object-oriented setting with inheritance and callbacks, such a model must account for the complex interface between library implementations and clients.In this paper, we develop a fully abstract trace-based semantics for class libraries in object-oriented languages, in particular for Java-like sealed packages. Our approach enhances a standard operational semantics such that the change of control between the library and the client context is made explicit in terms of interaction labels. By using traces over these labels, we abstract from the data representation in the heap, support class hiding, and provide fully abstract package denotations. Soundness and completeness of the trace semantics is proven using specialized simulation relations on the enhanced operational semantics. The simulation relations also provide a proof method for reasoning about backward compatibility.  相似文献   

15.
提出了基于USIM(全球用户身份模块)卡的补丁下载机制,采用鉴权技术实现空中下载系统与动态链接库之间互相鉴权认证,保证两者间的相互信任;提出采用动态链接库技术实现补丁下载机制,并通过定义底层API来提供对补丁下载进行控制与管理,实现空中下载系统对USIM卡上的应用可以通过该机制下载修复或者升级的功能。  相似文献   

16.
提供了一种以符号的冗余编码保留隐藏信息的隐藏数据通信技术,以及与该方法相关的数字水印嵌入、提取技术和载体文件的显示技术.介绍了将符号编码成数字代码的若干方法;隐藏通信的数据加载与分离方法;特定字体文件的设计方法;若干对携带水印信息的载体文件进行显示的方法.提出的文本数字水印技术具有水印容量大、视觉影响小、兼容性强等特点.  相似文献   

17.
When submitting patches for code review, individual developers are primarily interested in maximizing the chances of their patch being accepted in the least time possible. In principle, code review is a transparent process in which reviewers aim to assess the qualities of the patch on its technical merits in a timely manner; however, in practice the execution of this process can be affected by a variety of factors, some of which are external to the technical content of the patch itself. In this paper, we describe empirical studies of the code review processes for large, open source projects such as WebKit and Google Blink. We first consider factors that have been examined in previous studies — patch size, priority, and component — and then extend our enquiries to explore the effects of organization (which company is involved) and developer profile (review load and activity, patch writer experience) on code review response time and eventual outcome. Our approach uses a reverse engineered model of the patch submission process, and extracts key information from the issue-tracking and code review systems. Our findings suggest that these non-technical factors can significantly impact code review outcomes.  相似文献   

18.
User-Level Device Drivers: Achieved Performance   总被引:2,自引:0,他引:2       下载免费PDF全文
Running device drivers as unprivileged user-level code, encapsulated into their own process, has often been proposed as a technique for increasing system robustness. However, in the past, systems based on user-level drivers have generally exhibited poor I/O performance. Consequently, user-level device drivers have never caught on to any significant degree. In this paper we demonstrate that it is possible to build systems which employ user-level device drivers, without significant performance degradation, even for high-bandwidth devices such as Gigabit Ethernet.  相似文献   

19.
为解决传统双三次Coons曲面片在给定边界条件时其形状难以调整的不足,给出了一组带形状参数的Hermite基函数,并基于该基函数构造了一种带两个形状参数的Coons曲面片,称之为QC-Coons曲面片;然后通过对基函数重新参数化,构造了一种带两个形状参数的有理Coons曲面片,称之为RQC-Coons曲面片。结果表明,所构造的两种新曲面片都是双三次Coons曲面片的扩展,它们不仅具有双三次Coons曲面片的性质,而且还可通过调整形状参数的取值使得曲面的内部表现出不同的形状,为Coons曲面片的设计提供了两  相似文献   

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

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