代码编织梦想

基于恶意科学的数据软件分析

将学习本书的过程作记录分享。

数据科学是一个不断增长的算法工具集合,可以让我们通过使用统计学、数学和巧妙的统计数据可视化技术来理解和预测数据。一般来说,数据科学有三个组成部分:机器学习、数据挖掘和数据可视化。

第一章 恶意软件静态分析基础

静态分析:是对程序文件的反汇编代码、图形图像、可打印字符串和其他磁盘资源进行分析,是一种不需要实际运行程序的逆向工程。

简单来说,就是仅仅通过来分析程序文件。

1.1 windows可移植可执行文件(PE)

文件格式:

  • PE头:定义了程序的一般属性,如二进制代码、图像、压缩数据和其他程序属性。包括了时间戳字段(攻击者可能伪造,但有时候会忘记伪造)。

  • 可选头:定义了PE文件中程序入口点的位置。即告诉了逆向工程师从哪里开始进行逆向工程。

  • 节头:描述了PR文件中包含的数据节。

    • .text节:可执行的x86代码节。(每个PE程序的节头至少包含一个)
    • .idata节:导入节,包含导入地址表IAT。指出了程序所调用的库,很可能泄露恶意软件的高级功能。
    • 数据节:包括.rsrc.、.data和.rdata等节,存储程序使用的鼠标光标图像、按钮图标、音频和其他媒体等。
  • .reloc节

1.2 用python的pefile解析PE文件格式
import pefile
pe = pefile.PE("ircbot.exe")

#打印 PE文件的各个节
for section in pe.sections:
print(section.Name)
1.3 检查恶意软件的图片

使用wrestool从二进制文件中提取图像

mkdir images
wrestool -x fakepdfmalware.exe -output=images
icotool -x -o images images/*.ico

先创建一个目录来保存所提取的图像,接着使用icotool提取并将Adobe中图像格式中所有资源转换到.png图形。

1.4检查恶意软件的字符串
strings 文件路径 | less
strings 文件名 > 文件.txt

将文件中所有最小长度为4字节的可打印字符串逐行打印到终端上。

可以使用 - n 选项更改最小字符串长度。

strings -n 10 文件名

总结

本章对静态恶意软件分析有了一定的认识,了解了定义Windows操作系统.exe和.dll文件的PE文件格式,还了解了如何使用python库pefile解析实际场景中的恶意软件ircbot.exe二进制文件。以及学习了图像分析和字符串分析等静态分析技术。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cwllll/article/details/125497218

一款c++静态分析工具 —— cppdepend-爱代码爱编程

Wrote by mutouyun. (http://darkc.at/cppdepend/)   去年6月份的时候,CppDepend的一位技术社区经理(technical community manager)突然发邮件联系我,赠送了我一份license,并邀请我体验下他们的C++静态分析工具,也就是CppDepend。 在这款软件

软件测试总结——常见的面试问题(一)-爱代码爱编程

1.软件测试级别? 单元测试:单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。(测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试) 集成测试:(集成测试也称联合测试、组

软件工程——结构化分析方法-爱代码爱编程

结构化方法 概念 用来指导软件项目的开发。 一种系统化的软件开发方法包括:结构化分析方法、结构化设计方法、结构化程序设计方法。 结构化设计方法和结构化程序设计方法的区别,前者指的软件开发设计阶段的软件体系架构以及内部模块细节的设计,而结构化程序设计方法主要指的是软件实现阶段要遵循的编程有关细节技术。 结构化分析模型 模型表达工具 1.数据流图

【软件工程】软件工程需求分析——面向对象分析-爱代码爱编程

halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点 软件工程需求分析——面向对象分析 【更新日志】面向对象分析概述建立用例模型建立对象模型(更新中……)建立动态模型(更新中……)建立数据模型(更新中……) 【更

什么是静态分析?代码分析工具-爱代码爱编程

为了从一开始就在您的软件中提高质量,请使用静态分析——软件工程师可以执行的最简单、最有效的方法来防止缺陷并强化代码,同时加快应用程序交付。 在对任何类型的系统进行工程设计时,尽早(并经常)检查缺陷和修复错误使团队可以显着减少添加到项目中的下游工作量,并且是避免在此过程中出现多头麻烦的可靠方法。 在软件开发中,不是一开始就设计出更好的软件,而是试图落

数据分析思维扫盲-爱代码爱编程

知识来源:接地气学堂1 前言 行文之初衷,建立知识树,因而不易速读,请君悉知。宜为工具书,按索引取之。独学而无友,必孤陋寡闻,请君赐教,不吝感激。循序图之, 数据分析介绍 前言一、基本认识1. 数据分析定义2. 需求层的工作概述3.数据层工作概述4.分析层工作概述5.输出层工作概述7.技术与能力其他概念数据赋能数据产品二.数据分析可以解决问

【软件工程】需求分析文档——需求规格说明书-爱代码爱编程

文章目录 1 引言1.1 编写目的1.2 背景1.3 术语和缩略词1.4 参考资料2 任务概述2.1 项目概述2.1.1 项目来源及背景2.1.2 项目目标2.1.3 系统功能概述2.2 用户特点2.3 假定和约束3 功能需求3.1 功能划分3.1.1 系统功能组成3.1.2 功能编号和优先级3.2 功能描述4 数据需求4.1 静态数据4.2 动态

软件工程——面向对象需求分析方法——知识点总结-爱代码爱编程

面向对象需求分析方法 一、UML统一建模语言1、主要特点2、基本结构3、UML的视图4、9个基本图5、视图和基本图的关系6、UML类图的组成二、面向对象的需求分析建模1、模型组成2、领域模型的构建步骤3、用例模型的创建步骤4、用例5、用例图6、用例说明7、系统顺序图8、操作契约 一、UML统一建模语言 1、主要特点 标准的图形化建模语言,是

《数据分析:企业的贤内助[陈哲]》——读书笔记-爱代码爱编程

贾健 对话 王贤 第1篇 数据分析的价值与要求 第1章 内助出山 数据报警器:渠道建设分析、用户满意度分析、品牌形象分析、广告效果分析第2章 招兵买马 分析师的岗位需求、发展空间 第3章 优秀之路 3.1 四重境界 深度——是什么?为什么?怎么做?信度——对比要可比、差异要显著、描述要全面效度——速度和成本[社交网络分析]通度——沟通的顺畅度

【大数据实战项目一】数据下载以及工具软件的使用-爱代码爱编程

数据下载以及工具软件的使用 1 数据从哪里来?数据怎么用?1.1 本项目中使用的数据——飞机航班数据1.2 结构化数据与非结构化数据1.3 结构表的特征提取和呈现1.4 数据分析金字塔1.5 数据下载2 大数据实战项目中工具软件的选择2.1 原始数据收集器使用的技术——Kafka2.2 原始数据存储使用到的技术——HadoopHDFS2.3 原始数

《十周成为数据分析师》笔记——业务线 第八节 常见互联网业务的数据分析报告的制作及用户分层模型-爱代码爱编程

互联网业务数据分析报告及用户分层模型 一、业务逻辑回顾及互联网相关指标1、实战项目与业务逻辑回顾数据报表(数据源)→用户画像(数据分析)→数据化运营(决策指导)→商业分析(宏观判断)→分析报告(结论梳理)(1)日常型分析报告(2)调研型分析报告(3)展示型分析报告2、常用的数据统计指标3、电子商务运营中统计指标拆解4、互联网产品的指标体系(以AAR

slither——区块链智能合约静态分析工具-爱代码爱编程

一、概述 Slither是一个用Python 3编写的智能合约静态分析框架(源码),提供如下功能: 自动化漏洞检测。提供超30多项的漏洞检查模型,模型列表详见:https://github.com/crytic/slither#detectors自动优化检测。Slither可以检测编译器遗漏的代码优化项并给出优化建议。代码理解。Slither能够绘制合