静态分析
反病毒引擎扫描
病毒文件特征库:已知恶意代码可识别片段的特征数据库
启发式检测:基于行为与模式匹配的分析
绕过方式:修改代码来改变程序特征,躲避反病毒引擎的检测;使用新型独特的恶意代码来绕过启发式检测
反病毒方式:调用多个反病毒引擎来扫描
哈希值:恶意代码的指纹
可以用来唯一标识恶意代码的方法【哈希不可逆且基本唯一】,也可以用来防止系统等文件被篡改【比较哈希值】
md5deep:用来对文件生成哈希值;或者windows自带certutil也可以
哈希值用途
- 作为标签使用
- 分享恶意代码哈希值
- 在线搜索文件哈希值,查看是否已被识别
查找字符串
eg:程序访问某个URL,可以搜索该URL字符串
微软Strings程序和findstr结合使用来搜索字符串
有用的信息:
- 恶意代码实例名
- 帮助或命令行选项
- 用户会话
- 后门口令
- 相关URL信息、email
- 库、函数调用
加壳与混淆恶意代码
混淆程序:隐藏执行过程的代码,加壳程序属于混淆程序中的一类,加壳后恶意程序被压缩,难以分析
文件加壳:
可以使用exeinfo或者PEiD来识别文件的壳
PE文件格式
PE:可移植执行文件,windows可执行文件、对象代码、DLL所使用的标准格式【其实是一种数据结构,包含了Windows加载器管理可执行代码所必需的信息】
链接库与函数
导入函数:一个程序所使用的但存储在另一程序中的函数,如通用的代码函数库
- 静态链接:Windows不常用,复制库的代码会让可执行程序增大很多
- 运行时链接:需要使用函数时才链接到库
- 动态链接:程序加载时搜索所需代码库