[病毒分析]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

相关文章
|
26天前
|
安全 API 数据安全/隐私保护
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记录(一)
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记(一)
25 0
|
26天前
|
存储 监控 API
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记录(二)
史上最全最完整,最详细,软件保护技术-程序脱壳篇-逆向工程学习记录(二)
48 0
|
存储 算法 安全
[计算机操作系统(慕课版)]第一章 操作系统引论(学习笔记)
[计算机操作系统(慕课版)]第一章 操作系统引论(学习笔记)
|
存储 算法 安全
[计算机操作系统(第四版 汤小丹 汤子瀛)]第一章 操作系统引论(学习复习笔记)
[计算机操作系统(第四版 汤小丹 汤子瀛)]第一章 操作系统引论(学习复习笔记)
|
测试技术
《软件方法》上册笔记
《软件方法》上册笔记
90 0
|
存储 算法 安全
王道操作系统网课笔记合集
第二门完整学完的课程~
312 1
王道操作系统网课笔记合集
|
存储 算法 Linux
2.2计算机软件安装 计算机基础理论知识整理
2.2计算机软件安装 计算机基础理论知识整理
147 0
2.2计算机软件安装 计算机基础理论知识整理
|
存储 数据库 数据库管理
|
SQL 存储 数据库
|
存储 SQL 数据库