[病毒分析]WinDBG实战教学(1)(一)

简介: [病毒分析]WinDBG实战教学

WinDBG实战教学(1)

一、初始任务

二、开始分析

三、分析代码

四、WinDBG调试


这里的实例选自《恶意代码分析与实战》第十章实验一

大家可以在这里下载哦

点击下载—提取码:8189

实验工具:

1、WinDBG

2、IDA

3、Dependency Walker

一、初始任务

我们将下载好的文件放到指定位置

C:\Windows\System32

image.png

使用WinGDB 连接至虚拟机(CSDN中有很多关于WinDBG的初始教学,大家可以先看看)

出现下面的界面表示连接成功:

image.png

二、开始分析

第一步,我们使用Dependency Walker 做静态分析

image.png

然后我们可以发现第一个DLL里面导入了这么几个函数

ControlService
CreateServiceA
OpenSCManagerA
OpenServiceA
StartServiceA

第二个DLL导入了这么几个函数

image.png

内容很多,但是我们要清楚,我们最最应该关注的是Create和Write


第二步,我们打开IDA查看String

image.png

1.png

在上图红框中的文件地址,告诉了我们,这个程序会去调用这个sys文件

第三步,分析sys文件

image.png

按照书上的说法,第一个函数KeTickCount是所有驱动都会包含的一个函数,这个可以忽略

然后第二个RtlCreateRegistryKey和第三个RtlWriteRegistryValue,看到这个Registry我们就大概知道这个操作是和注册表有关的操作,然后一个是Create一个是Write,所以这个是创建和写入注册表的操作

第四步,procmon检查

procmon的教学,我曾经发过一篇博客大家可以看看

Proncmon的基础教学,点击查看

1.png

我们自己查看Procmon给我们反馈的消息,我们从中找到几个核心的东西:

image.png

image.png

在程序的上部,我们可以看到:

image.png

在运行过了Lab10-01.exe之后,起了一个线程,也就是Thread Create,然后加载了一个DLL,然后创建了一个文件,C:\WINDOWS\system32\Lab10-

01.EXE-04045C98.pf,然后RegOpenKey打开一个键,结果是Read:

image.png

image.png

这个操作改变了键值,改变了一个加密用的种子值

三、分析代码

我们还是回到IDA中

image.png

这里首先调用了一个OpenSCManagerA,这里是:在指定的计算机上建立与服务控制管理器的连接,并打开指定的服务控制管理器数据库。

如果失败,返回的NULL,然后这里用test测试了返回值,test指令是和and类似的,如果返回的是NULL,test之后,结果为0,则ZF=1,JNZ不会跳转,继续执行,走红线,然后就返回了

如果没有失败,我们继续往下走


image.png

往下走就是这里,之类调用了CreateServiceA这个函数,可以看出这个服务的名字就是Lab10-01,然后访问权限dwDesiredAccess是SERVICE_ALL_ACCESS,最后需要注意的就是lpBinaryPathName,这个的值是"C:\Windows\System32\Lab10-01.sys",意味着服务起来的时候会去加载这个二进制文件,一样的,这个函数调用失败会返回NULL

在这里,如果函数失败,返回NULL,test之后,ZF=1,然后JNZ不会跳转,所以函数失败之后,会继续走红线,也就这写代码。

image.png

这里调用了OpenServiceA,如果上面这个OpenServiceA失败,然后会继续通过StartServiceA来开启这个服务

这些操作,只要一个成功了,就会直接一个JZ跳转然后返回了,如果失败,则继续往下尝试另外的函数

1.png

相关文章
|
2月前
|
Windows Python
【10月更文挑战第2天】「Mac上学Python 2」入门篇2 - 开发环境命令行操作与文件管理
本篇将详细介绍Windows和Mac系统中的常用命令行操作与文件管理,帮助用户掌握如何通过终端或命令提示符进行文件管理和操作开发环境。内容涵盖路径切换、文件与文件夹的创建、删除、查看文件内容等基本操作,这些技能是后续Python开发的基础。
131 6
【10月更文挑战第2天】「Mac上学Python 2」入门篇2 - 开发环境命令行操作与文件管理
|
6月前
|
NoSQL Linux Shell
技术笔记:linux系统开发基础
技术笔记:linux系统开发基础
41 0
|
存储 数据库 数据库管理
|
SQL 存储 数据库
|
存储 SQL 数据库
|
Linux 数据安全/隐私保护 虚拟化
学妹跑过来问我安装Linux虚拟机的详细步骤【手把手教学,顺带教教学妹配置网络】
学妹跑过来问我安装Linux虚拟机的详细步骤【手把手教学,顺带教教学妹配置网络】
学妹跑过来问我安装Linux虚拟机的详细步骤【手把手教学,顺带教教学妹配置网络】
|
安全
[病毒分析]WinDBG实战教学(1)(二)
[病毒分析]WinDBG实战教学(1)
152 0
[病毒分析]WinDBG实战教学(1)(二)
|
安全 网络安全 Windows
[病毒分析]WinDBG实战教学(1)(三)
[病毒分析]WinDBG实战教学(1)
210 0
[病毒分析]WinDBG实战教学(1)(三)
搜索技巧(谷歌)(工欲善其事,必先利其器)
搜索作为获取知识、解决问题的主要途径不言而喻 一、选择正确的搜索引擎 最常见的搜索引擎,目前是谷歌和百度了。但是百度时常并不能搜索到满意的结果。
1229 0