软件安全研究核心步骤可分为:数据采集(硬件、网络、文件)、数据预处理(协议逆向)、逻辑分析(模型构建)、问题发现(规律总结)。Intel和ARM处理器的第一个区别是,前者使用复杂指令集(CISC),而后者使用精简指令集(RISC),指令集是否等长。
1.1、静态分析辅助工具
静态分析是指在不运行程序的情况下,利用分析工具,采用语法分析、词法分析、控制流与数据流分析等技术手段对程序进行扫描和理解。
常见逆向反汇编工具及引擎包括IDA Pro、Udis86、Capstone等,对程序进行静态反汇编(代码)。常见的文件格式分析和编辑工具包括PEiD、LoadPE、010Editor等(数据)。
1.2、动态分析辅助工具
动态分析是指在可控环境中运行程序或者模拟程序执行的情况下,利用分析工具,监控代码的所有操作,观察代码执行流程及状态,获取执行过程中的各种数据。
常见的外部观测类工具包括Process Monitor、Wireshark等,这类监测工具能够从宏观层面上了解软件行为及动向。常见的调试跟踪类工具包括OllyDbg、WinDbg、Pin、Valgrind、DynamoRIO等,这类工具可在指令层面对程序进行分析,定位软件异常指令位置等。
1.3、虚拟化辅助分析平台
在恶意代码与漏洞分析过程中经常会使用虚拟化平台进行辅助分析,这不仅可以保护真实的物理设备环境不被恶意代码攻击,还能够固化保存分析环境提高工作效率,同时还能够 在不影响程序执行流的情况下动态捕获程序内存、CPU等关键数据。
VMWare Workstation(内核调试与windbg进行设置)
VirtualBox:开源虚拟化软件
QEMU:开源硬件模拟器。主要运行于Linux平台,QEMU以命令行的方式对虚拟机进行创建和维护管理。启动程序下载源码并编译。命令行的交互控制。数据文件分享较为复杂,不能像上述二者一样进行拖拽式大的复制粘贴。可避开很多反调试操作。
参考:
1、国科大软件漏洞分析课程
网友评论