论文部分内容阅读
目前移动智能设备日益普及,针对移动智能设备的恶意软件越来越多。iOS作为新兴的移动智能设备操作系统,其平台下的软件逆向工程技术没有得到国内研究者的重视,国内对这一技术研究不足,相关研究资料严重缺乏,目前国内外也还没有形成一套完整的iOS软件逆向分析方法。因此,研究iOS平台下的软件逆向工程技术具有重要的意义和价值,能在一定程度上弥补国内外这一技术领域研究的不足,有助于提高分析iOS平台下的恶意软件的能力,同时也有助于研究iOS操作系统和App Store中的优秀软件。首先,本文系统介绍了iOS平台下进行软件逆向工程的必要基础知识。归纳分析了iOS的安全特性、可执行程序特性、Objective-C语言特性,基于对这些平台特性的分析,提出了一种“iOS软件逆向分析方法”,指明了该分析方法中存在App砸壳和去除ASLR功能两个难点技术及需要重点研究的“iOS程序理解技术”、静态分析方法、动态分析方法三个关键技术。然后,围绕分析方法中的关键技术的研究,论文提出“iOS程序理解技术”这一概念,重点研究了函数理解技术和流程控制语句识别模型两个关键技术。研究了iOS软件静态逆向分析方法,提出了导入库、导入函数、Objective-C头文件信息提取、硬编码字符串四个静态分析切入点,形成了一套完整的iOS软件逆向静态分析方案。通过研究iOS软件动态逆向分析方法,提出了通信行为分析、文件操作行为分析两种软件行为分析方案,演化了PC机软件逆向调试方法,同时提出了一种基于函数直接返回的代码屏蔽调试方法。另外,围绕分析方法中的难点技术,归纳分析了iOS App砸壳的原理,制定了一套砸壳方案。针对动态调试时,程序地址空间随机分布,难于定位关键数据及代码位置的难题,论文创新的提出"RASLR (Remove ASLR)”方法,实现了程序ASLR功能的去除。最后,论文将某款iOS恶意软件作为靶子,利用论文所提“iOS软件逆向分析方法”对其进行逆向分析,分析结果表明该分析方法具有良好的实用效果。