恶意代码分析入门--静态分析(chapter1_Lab01-01)

恶意代码分析-工具收集 - 17bdw - 博客园 (cnblogs.com)

实验环境:Lab 1-1

这个实验使用Lab01-01.exe和Lab01-01.dll文件,使用本章描述的工具和技术来获取
关于这些文件的信息。

操作环境
操作场景:
windows xp sp3
实验工具:
PEiD v0.95
Strings(新工具-在cmd窗口运行打印出目标程序的可打印字符)
PETools v1.5
VirsCAN,org
实验文件:
Lab01-01.exe
Lab01-01.dll

问题

1、将文件上传至http://www.VirusTotal.com/进行分析并查看报告。文件匹配到了
已有的反病毒软件特征吗?
2、这些文件是什么时候编译的?
3、这两个文件中是否存在迹象说明它们是否被加壳或混淆了?如果是,这些
迹象在哪里?
4、是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
5、是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
6、是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
7、你猜这些文件的目的是什么?

实验思路

  1. 利用网络扫描工具对自标程序进行扫描
  2. 利用本地静态分析工具分析自标程序
  3. 又 对上述结果进行分析

实验过程

1

如图所示:检测出报毒

image.png

image.png

2

文件.exe和.dll都是属于PE文件结构

看到下面的PE结构图

20191105010119908.jpg

在PE头的位置,有IMAGE_FILE_HEADER 成员,里面有TimeDateStamp的时间戳,表明了程序是什么时间编译的。由于难找工具,我直接使用的是LoadPE软件进行查看:

image.png

可以看到上面Lab01-01.exe的日期时间标志经过解码之后的时间。

然后看到Lab01-01.dll的时间也是差不多的一样。

image.png

3

image.png

image.png

以上可见Lab01-01.exe没有加壳,通过观察区段表也可以知道,非常的完整。

Lab01-01.dll分析同上理

4

我们先用PEID来观察.exe的导入表如下:

image.png

就能基本观察到他用了哪些API,懂点英文就应该能知道,find查找,filew文件,copy复制,Create创建,所以一般病毒都是先把自己复制到系统目录里隐藏起来。这事根据经验之谈。

再看Lab01-01.dll文件的导入表可以猜测功能:

image.png

分析可知,WS2_32.dll是进行一些联网的操作,然后Sleep休眠,CreateProcessA创建进程,CreateMutexA创建一个互斥体。等都是病毒经常使用的API函数。

5,6

首先这个问题我们可以使用到我们的Strings工具,这个工具我也是第一次用

(34条消息) strings工具(Win、Linux均可适用)_墨痕诉清风的博客-CSDN博客

(34条消息) chapter1 静态分析技术-04字符串搜索 strings工具_尉晓昌的博客-CSDN博客

据说可以列出在对象文件或二进制文件中查找可打印的字符串。

先看Lab01-01.exe 可以知道并且推测,由于数字1和字母l 在windows中长得太像了,所以可以推测这个程序将Lab-01-01.dll文件改名成了Kerne123.dll文件,实现伪装隐藏。

image.png

下面在看Lab-01-01.dll 可以发现一个IP地址

image.png

去查询ip.cn发现这是一个内网地址,可见病毒作者处于教学的目的,只随便写了一个内网地址,如果他是一个公网地址,那就很有可能在后台访问这个ip进行一些危险操作。

image.png

7

分析目的:

由于dll文件是不能够直接自己来运行的,所以,必须借助exe的外力在后台运行。所以exe就是专门用来安装和运行这个dll后门程序的。当exec和sleep结合使用的时候,必需特别的注意,因为exec可能通过网络来给后门程序传送命令,让他能通过CreateProcessA函数运行一个程序,而sleep可能是命令后门程序进入休眠模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/19399.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【操作系统不挂科】<信号量(9)>选择题(带答案与解析)

前言 大家好吖,欢迎来到 YY 滴操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的操作系统题目,供yy应对期中考试复习。大家可以参考 本章为选择题题库,试卷…

服务器数据恢复—raid5阵列故障导致上层系统分区无法识别的数据恢复案例

服务器数据恢复环境: 某品牌DL380服务器,服务器中三块SAS硬盘组建了一组raid5阵列。服务器安装Windows Server操作系统,划分了3个分区,D分区存放数据库,E分区存放数据库备份。 服务器故障: RAID5阵列中有一…

【ARM】MDK在debug模式下的Registers窗口包含哪些内容

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决客户对于Debug模式下,对于Registers窗口包含的内容了解。 2、 问题场景 Registers窗口是在进入到debug模式下后,就会出现一个窗口。窗口中包含了很多寄存器信息。但是对于具体内容不了解…

【后端】版本控制

版本控制 1. 什么是版本控制? 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理…

高项 - 项目进度管理

个人总结,仅供参考,欢迎加好友一起讨论 博文更新参考时间点:2024-12 高项 - 章节与知识点汇总:点击跳转 文章目录 高项 - 项目进度管理进度管理ITO规划监控 管理基础项目进度计划的定义和总要求管理新实践用户故事(补…

【数据结构】【线性表】【练习】反转链表

申明 该题源自力扣题库19&#xff0c;文章内容&#xff08;代码&#xff0c;图表等&#xff09;均原创&#xff0c;侵删&#xff01; 题目 给你单链表的头指针head以及两个整数left和right&#xff0c;其中left<right&#xff0c;请你反转从位置left到right的链表节点&…

鸿蒙原生应用开发元服务 元服务是什么?和App的关系?(保姆级步骤)

元服务是什么&#xff1f;和App的关系&#xff1f; 元服务是是一种HarmonyOS轻量应用形态&#xff0c;用户无需安装即可使用&#xff0c;具备随处可及、服务直达、自由流转的特征。 元服务是可以独立部署和运行的程序实体&#xff0c;独立于应用&#xff0c;不依赖应用可独立…

Redis中的String数据类型及相关命令

[经典面试题] redis虽然是单线程模型&#xff0c;为什么效率还这么高&#xff1f;速度这么快呢&#xff1f; 原因&#xff1a;1、redis主要访问内存&#xff0c;数据库则是主要访问硬盘。 2、redis的核心功能&#xff0c;比数据库的核心功能更简单。数据库对于数据的CRUD&…

远程管理不再难!树莓派5安装Raspberry Pi OS并实现使用VNC异地连接

前言&#xff1a;大家好&#xff01;今天我要教你们如何在树莓派5上安装Raspberry Pi OS&#xff0c;并配置SSH和VNC权限。通过这些步骤&#xff0c;你将能够在Windows电脑上使用VNC Viewer&#xff0c;结合Cpolar内网穿透工具&#xff0c;实现长期的公网远程访问管理本地树莓派…

本地部署 Chat Nio

本地部署 Chat Nio 0. 引言1. 本地部署2. 访问 Chat Nio3. 渠道设置4. 聊天 0. 引言 Chat Nio 的功能&#xff1a; &#x1f916;️ 丰富模型支持: 多模型服务商支持 (OpenAI / Anthropic / Gemini / Midjourney 等十余种格式兼容 & 私有化 LLM 支持)&#x1f92f; 美观 …

C# OpenCV 通过高度图去筛选轮廓

//输入图像 threshCropMap.ImWrite("D:\\test\\threshCropMap_BeforeFilterByBlob.bmp"); //设定我们要筛选的高度 var ResultHeight 60; //创建对应高度的图像&#xff0c;由于是高度信息图&#xff0c;所有要使用32位来存放数据 Mat mat new Mat(filter.Rows, fi…

23.UE5删除存档

2-25 删除存档制作_哔哩哔哩_bilibili 按照自己的风格制作删除按钮 这样该行的存档就被从存档列表中删除了&#xff0c;并且实际存档&#xff08;我的存档蓝图&#xff09;中也被删除了 但是存在一个问题&#xff0c;如果存档数据中存在索引为: 0 1 2 3的存档&#xff0c;当索…

【graphics】图形绘制 C++

众所周知&#xff0c;周知所众&#xff0c;图形绘制对于竞赛学僧毫无用处&#xff0c;所以这个文章&#xff0c;专门对相关人员教学&#xff08;成长中的码农、高中僧、大学僧&#xff09;。 他人经验教学参考https://blog.csdn.net/qq_46107892/article/details/133386358?o…

kafka基础

文章目录 一、Kafka入门1.1、JMS1.2、生产者-消费者模式1.3、ZooKeeper 二、kafka基础架构2.1、producer2.2、kafka cluster2.2.1、broker2.2.2、Controller2.2.3、Topic2.2.4、Partition2.2.5、Replication2.2.6、Leader & Follower 2.3、consumer 一、Kafka入门 Kafka是一…

PMP–一、二、三模、冲刺–分类--5.范围管理--技巧--需求跟踪矩阵

文章目录 技巧一模反例不选“需求跟踪矩阵”4.整合管理86、 [单选] 项目经理加入一个项目&#xff0c;但项目经理在该项目所涉及的行业经验有限&#xff0c;在该项目的整个生命周期中&#xff0c;项目经理精心记录每个差距、问题和不一致性。但是&#xff0c;无论项目经理如何记…

掌握Golang中的数据竞争检测:runtime/race包全面教程

掌握Golang中的数据竞争检测&#xff1a;runtime/race包全面教程 引言数据竞争问题概述数据竞争的定义数据竞争对程序的影响常见数据竞争场景 Golang runtime/race包概述runtime/race包简介启用数据竞争检测使用 go run使用 go build使用 go test 基本用法与示例单元测试中的使…

ThreadLocal父子线程、线程池数据传递解决

多线程并发数据访问&#xff0c;确保数据安全至关重要&#xff0c;常用保证数据安全的方法有对代码synchronized锁、Lock锁&#xff0c;以及基于CAS的原子类&#xff0c;这些都是通过数据共享保障数据安全的&#xff0c;今天聊一聊另一种方案ThreadLocal线程副本&#xff0c;实…

Docker 从入门到精通全攻略

一、Docker 初印象 Docker 诞生于 2013 年&#xff0c;由 dotCloud 公司发起&#xff0c;最初是一个公司内部项目。其诞生背景源于程序员们苦于应用部署环境的复杂性&#xff0c;开发、测试、部署过程中各种库的依赖纷繁复杂&#xff0c;版本差异以及测试环境与部署环境不一致等…

WordPress设置自动更新CSS版本号

WordPress 通常会在引用 CSS 文件时添加版本号参数&#xff08;?verx.x.x&#xff09;。如果版本号未更新&#xff0c;浏览器可能继续加载旧的文件。 解决方法&#xff1a;确保你在 functions.php 文件中正确加载了 CSS 文件&#xff0c;并动态更新版本号。例如在functions.p…

达梦 DG

监视器 switchover 关于达梦DG switchover的细节&#xff0c;以下是一些关键步骤和注意事项&#xff1a; • 切换前检查确认&#xff1a; • 确认数据库版本和DG架构&#xff0c;包括IP信息及切换角色前后的情况。 • 检查DG切换方式&#xff0c;是switch over还是fail ove…