论文部分内容阅读
随着网络对抗的持续升级,各类恶意软件推陈出新,近年来平均每年发现各类恶意软件近3000个版本。但是各类恶意软件版本变化通常具有延续性,只是部分代码和结构调整,大部分二进制函数形式上有所变化但功能并没有明显变化。可以根据函数的特征及其调用关系进行对比发现新增和变更的函数代码。如果能够把以往的分析结果或其他人的分析结果直接沿用到当前正在分析的软件上,会极大提高分析人员的工作效率。此外,研究发现在恶意软件中存在大量的库函数,这些库函数功能复杂而且数量巨大,为逆向人员的工作造成了极大的麻烦。因此如果能够识别出恶意软件中大量的库函数,并标注出他们的名称将大大减少逆向人员的工作量。本文的项目目标主要着眼于两点,第一是已有分析成果的延续,逆向分析人员在对恶意软件进行人工分析的时候会对软件的关键函数进行标注,由于恶意软件版本的延续性,这些关键函数往往只是形式上进行变化,功能上不变,因此旧版本的函数注释在新版本中也有了意义。合理管理标注以及有效利用这些注释成了一件重要的工作,第二是对未知恶意二进制文件分析,为了简化分析过程,减少逆向分析人员的工作量,需要标注已知为库函数的部分,为库函数标注上有意义的名字,逆向工作人员可以直接忽略这部分函数,从而大大提高了工作效率。本系统为一个web应用,开发语言采用的是python,使用Django框架,选择MongoDB数据库,其中python选用2.7.10版本,Django版本为1.8.13,为了能提高MongoDB使用效率,我们使用pymongo与数据库进行交互。系统分为前端与后端,前端为网页界面用于和用户进行交互,后端是功能性服务器能够处理前端的请求并作出响应,系统实现了用户管理,用户权限管理,通过充分利用python的灵活性使该系统成功实现了注释管理功能,可以将idb文件、udd文件中的注释提取到数据库,也可以在系统中展示提取到的注释信息,并且为用户提供了迁移已有注释到新版软件中并且下载注释的功能。本系统还完成了库函数识别、标注的功能,可以将软件中库函数识别出来,并且以函数注释的形式将库函数标注到软件中,标注文件可以在系统页面展示,也可以供用户下载,系统有效地帮助逆向分析人员减少了工作量,提高了工作效率。本系统成功地完成了开发任务,达到了预期目标。