【技术实现步骤摘要】
【国外来华专利技术】用于软件分析的系统和方法相关申请本申请要求2014年6月13日提交的美国临时申请第62/012,127号的权益。以上申请的全部教示通过引用合并于此。政府支持本专利技术是在来自美国空军的授权号FA8750-14-C-0056和来自国防高级研究计划局的授权号FA8750-15-C-0242的政府支持下进行的。政府对本专利技术具有一定的权利。
技术介绍
当今,软件开发、维护和修复是手动过程。软件供应商随着时间计划、实现、记录、测试、部署和维护计算机程序。初始计划、实现、记录、测试和部署通常是不完整的,并且总是缺少所需的功能或包含缺陷。很多供应商有生命周期维护计划以通过随着软件成熟推出迭代故障修复、安全补丁和功能增强来解决这些缺陷。世界上部署了数十亿行的大量的软件代码,并且维护和故障修复花费大量的时间和金钱来解决。历史上,软件维护一直是专门的和反应的(即,响应于故障报告、安全漏洞报告和用户对特征增强的请求)手动过程。
技术实现思路
本专利技术的实施例使软件开发、维护和修复生命周期的关键方面自动化,包括例如查找和修复程序缺陷,例如故障(代码中的错误)、安全漏洞和协议缺点。本专利技术的示例实施例提供了可以利用大量软件文件的系统和方法,包括公开可用的或专有的软件文件。某些示例实施例可以自动标识和提供针对软件文件的最新版本或补丁。另外的实施例可以自动定位已知存在于某些软件文件中的设计模式、例如软件缺陷(例如,故障、安全漏洞、协议缺点)并提供修复。其他实施例可以通过先前前不知道文件包含缺陷的软件文件中定位已知缺陷来利用已知缺陷。另外的实施例可以自动定位设计模式,例如标识源代码或二进制 ...
【技术保护点】
一种用于标识软件的方法,包括:获取软件文件;确定针对所述软件文件的多个产物;访问存储针对多个参考软件文件中的每个参考软件文件的多个参考产物的数据库;将所述多个产物与所述多个参考产物相比较;以及通过标识具有与所述多个产物相匹配的所述多个参考产物的所述参考软件文件,来标识所述软件文件。
【技术特征摘要】
【国外来华专利技术】2014.06.13 US 62/012,1271.一种用于标识软件的方法,包括:获取软件文件;确定针对所述软件文件的多个产物;访问存储针对多个参考软件文件中的每个参考软件文件的多个参考产物的数据库;将所述多个产物与所述多个参考产物相比较;以及通过标识具有与所述多个产物相匹配的所述多个参考产物的所述参考软件文件,来标识所述软件文件。2.根据权利要求1所述的方法,其中所述多个产物包括以下各项中的一项或多项:调用图、控制流图、使用定义链、定义使用链、支配树、基本块、变量、常数、分支语义和协议。3.根据权利要求1所述的方法,其中所述多个产物包括系统调用跟踪和执行跟踪中的一个或多个。4.根据权利要求1所述的方法,其中所述多个产物包括以下各项中的一项或多项:循环不变量、类型信息、Z语言和标签转移系统表示。5.根据权利要求1所述的方法,其中所述多个产物包括根据以下各项中的任一项确定的一个或多个产物:内联代码注释、提交历史、文档文件以及常见漏洞和披露源条目。6.根据权利要求1所述的方法,其中所述多个产物各自是图产物。7.根据权利要求1所述的方法,其中所述多个产物各自是元数据产物。8.根据权利要求1所述的方法,其中当所述多个参考产物与所述多个产物之间至少存在模糊匹配时,所述多个参考产物匹配所述多个产物。9.根据权利要求1所述的方法,其中确定针对所述软件文件的所述多个产物包括:将所述软件文件转换为中间表示,并且根据所述中间表示确定所述多个产物中的至少一个产物。10.根据权利要求1所述的方法,还包括:通过分析与标识的所述参考软件文件相关联的所述参考产物中的至少一个参考产物,来确定是否存在所述软件文件的较新版本。11.根据权利要求10所述的方法,还包括自动提供所述软件文件的所述较新版本。12.根据权利要求1所述的方法,还包括:通过分析与标识的所述参考软件文件相关联的所述参考产物中的至少一个参考产物,来确定是否存在针对所述软件文件的补丁。13.根据权利要求12所述的方法,还包括向所述软件文件自动应用所述补丁。14.根据权利要求12所述的方法,还包括:分析所述补丁以确定与所述软件文件中的缺陷的修复对应的所述补丁的修复部分,并且向所述软件文件仅应用所述补丁的所述修复部分。15.根据权利要求14所述的方法,其中分析所述补丁包括:将所述补丁转换为中间表示,并且根据所述中间表示确定至少一个补丁产物。16.根据权利要求1所述的方法,还包括:通过分析与标识的所述参考软件文件相关联的所述参考产物中的至少一个参考产物以及与所述软件文件相关联的所述产物中的至少一个产物,来确定所述软件文件中是否存在缺陷。17.根据权利要求16所述的方法,还包括自动修复所述软件文件中的所述缺陷。18.根据权利要求17所述的方法,其中自动修复所述缺陷包括使用源代码修复块替换源代码块。19.根据权利要求17所述的方法,其中自动修复所述缺陷包括使用二进制代码修复块替换二进制代码块。20.根据权利要求17所述的方法,其中自动修复所述缺陷包括使用中间表示修复块替换所述软件文件中的中间表示块。21.一种方法,包括:获取一个或多个软件文件;确定针对所述一个或多个软件文件的多个产物;访问存储多个参考产物的数据库;以及通过将与针对所述一个或多个软件文件的程序片段对应的所述多个产物和对应于所述程序片段的所述多个参考产物相匹配,来标识所述程序片段。22.根据权利要求21所述的方法,其中所述程序片段已经在所述数据库中被标识为与缺陷对应。23.根据权利要求21所述的方法,其中所述程序片段与所述一个或多个软件文件中的缺陷对应。24.根据权利要求21所述的方法,其中所述程序片段与从下列组中选择的缺陷对应,所述组由下列各项组成:故障、安全漏洞和协议缺点。25.根据权利要求23所述的方法,还包括自动修复所述一个或多个软件文件中的所述缺陷。26.根据权利要求25所述的方法,其中自动修复所述缺陷包括提供修复程序片段以替换缺陷程序片段。27.根据权利要求23所述的方法,还包括向用户提供一个或多个修复选项以修复所述缺陷。28.根据权利要求27所述的方法,还包括对被提供给所述用户的所述...
【专利技术属性】
技术研发人员:R·T·卡巴克三世,B·D·加伊诺,N·A·布洛克,N·R·什尼德曼,
申请(专利权)人:查尔斯斯塔克德拉珀实验室公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。