​恶意代码之静态分析

简介: ​恶意代码之静态分析

0x00 分析技术


  • 使用反病毒软件来确认程序样本的恶意性
  • 使用哈希来识别恶意代码
  • 从文件的字符串列表、函数和文件头信息中发掘有用信息

 

0x01 病毒扫描引擎


对可疑的恶意代码样本进行初步判断,查看是否有引擎可以识别样本,例如:

  • virustotal
  • 云沙箱
  • 华为云沙箱
  • virscan
  • 腾讯哈勃系统


0x02 哈希值计算


哈希是一种用来唯一标识恶意代码的常用方法,MD5算法是恶意代码分析最为常用的哈希函数,初次之外还有SHA-1算法等等


0x02-1 md5deep


用于计算Windows操作系统自带的Solitaire程序哈希值


208a97cbc5d58d828c7d4a2e2a6f1d94_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


0x02-2 WinMD5


11b7a8d5f6e94db32e3686f8f7c0ca81_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


0x03 字符串查找


Strings程序忽略上下文以及格式,可以分析任何文件类型,搜索三个或以上连续的ASCII或Unicode字符,并以终结符结尾的可打印字符串;ASCII存储一个字符使用一个字节,Unicode存储一个字符使用两个字节,差异见下图:



0x03-1 Strings工具



0x04 检测加壳与脱壳


加壳相当于给程序套一层外壳,隐藏程序的真正入口(OEP),干扰他人分析

加壳和混淆代码至少包含LoadLibraryGetProcAddress函数,它们用来加载和使用其他函数功能。



0x04-1 检测加壳工具PEiD



0x04-2 脱UPX壳工具



0x05 列出链接库函数


Windows平台链接代码库有三种方式,分别是静态链接、运行时链接、动态链接。最不常用的是静态链接,最常用的是动态链接,运行时链接在恶意代码中流行。

LoadLibrary和GetProcAddress允许一个程序访问系统上任何库中的任何函数


0x05-1 Dependency Walker


工具可以列出可执行文件的动态链接函数




0x06 常见dll程序





0x07 函数命名约定


   1.当微软更新一个函数,而且新函数与原先函数不兼容的时候,微软还会继续支持原先的旧函数。这时新函数会给一个与旧函数相同的名字,并在后面加上Ex后缀。而被显著更新过两次的函数,则会在它们的名字后面有两个Ex后缀。


   2.以字符串作为参数的许多函数,在它们的名字后面会包含一个A或者一个w,如CreateDirectory。这个字母A或者w在这个函数的文档中并没有出现。它只是表明这个接受字符串参数的函数有着两个不同的版本:以A结尾的输入参数类型为ASCII字符串,而以w结尾的输入参数为宽字符字符串。当你在微软的文档中搜索这个函数时,你需要记得丢掉后缀的A或者w。


0x08 使用PEview分析PE文件


   1.时间戳有时候能判断其编译时间,根据时间来判断恶意代码是否已经暴露,若已经暴露,则可以借助前人的分析进行解决,但所有Delphi程序都使用统一的编译时间:1992年6月19日,并且时间戳可以伪造;


   2.程序的imagebuffer远大于filebuffer,说明程序加壳,特别是代码节(.text)


0x09 使用Resource Hacker查看资源节


恶意代码经常会把一个嵌入的程序或者驱动放在资源节,在程序运行前,将嵌入可执行文件或驱动提取出来


相关文章
|
3天前
|
XML 安全 IDE
【C/C++ 实用工具】CppCheck:静态代码检测工具,让你的代码更安全
【C/C++ 实用工具】CppCheck:静态代码检测工具,让你的代码更安全
112 2
|
3天前
|
移动开发 缓存 开发框架
ReactNative 常见问题及处理办法(加固混淆)
ReactNative 常见问题及处理办法(加固混淆)
40 0
|
6月前
|
Java Unix Windows
JspServlet混淆与绕过处理
JspServlet混淆与绕过处理
|
11月前
|
开发框架 安全 PHP
ThinkPHP5 5.0.23 远程代码执行漏洞 漏洞复现
ThinkPHP5 5.0.23 远程代码执行漏洞 漏洞复现
849 0
|
11月前
|
开发框架 安全 PHP
Thinkphp5 5.0.22/5.1.29 远程代码执行漏洞 漏洞复现
Thinkphp5 5.0.22/5.1.29 远程代码执行漏洞 漏洞复现
533 0
|
12月前
|
安全 API Windows
恶意代码分析系列-几种常用技术(2)
恶意代码分析系列-几种常用技术(2)
|
12月前
|
安全 API 开发工具
恶意代码分析系列-几种常用技术(1)
恶意代码分析系列-几种常用技术(1)
|
12月前
|
安全 API 数据库
恶意代码分析系列-几种常用技术(3)
恶意代码分析系列-几种常用技术(3)
|
XML JSON 安全
IDOR测试常见绕过技巧小结
一、IDOR介绍 二、常见的测试技巧 1.改变HTTP请求方法 2.路径穿越绕过 3.改变Content-type(内容类型) 4.用数字ID替换非数字 5.大小写替换绕过 6.用通配符替换ID 7.给Web应用提供一个请求ID,哪怕它没作要求 8.HTTP参数污染,为同一参数提供多个值。 9.更改文件类型。添加不同的文件扩展名(例如`.json, .xml, .config`) 10.JSON参数污染 11.在请求体用数组包装参数值 12.尝试不同版本的API
131 0
|
安全 Linux 开发工具
总结,复习,整合命令执行漏洞实现及其绕过(绕过方式大全)
>🍀1复习一下以前的内容 >🍀2总结整合一下过滤方法
186 0
总结,复习,整合命令执行漏洞实现及其绕过(绕过方式大全)