首页
社区
课程
招聘
[讨论][讨论]分析某个过机器码的驱动文件1
2023-11-4 20:17 8754

[讨论][讨论]分析某个过机器码的驱动文件1

2023-11-4 20:17
8754

图片描述
图片描述
第一个call进去
图片描述
往下拉
图片描述
图片描述
图片描述
可知程序无任何保护,程序是依靠驱动来达到修改机器码的目的。通过下断很容易提取这三个sys文件

图片描述
分析first.sys

图片描述

我电脑系统版本21h2,第一个call实现的方法无效,原因是某个函数的特征码搜不到.
暂时放弃,来分析第二个call
图片描述
分析第一个call
图片描述
用到了ZwQuerySystemInformation,参数SystemModuleInformation
则为遍历内核模块,
图片描述
易得a2为storport.sys的内核起始地址,a3为storport.sys的模块大小
图片描述

返回,这个call是打印输出的
图片描述
图片描述
分析下一个
图片描述

第一个参数为storport.sys的内核起始地址,第二个是个全局变量,
我们看一下这个全局变量是什么
图片描述
看不出来,转成代码试试,
图片描述
很像函数头部的汇编代码,
根据后面第三个参数,推断这个函数应该是通过暴力枚举特征码的方式搜索storport.sys的某个函数地址
进这个call分析
图片描述

图片描述
校验storport.sys的PE有效性
图片描述
根据PE特性,拿到代码段以及PAGE段,因为函数一般都在这些段里
图片描述

第一个参数为代码段或page段的真正起始地址,第二个为这个代码段或PAGE段的大小,第三个参数为特征码,第四个参数为通配符(第三,第四对应sub_1400013C0的第二参数,第三参数)
图片描述

再分析sub_140001344

图片描述

在分析sub_1400016A8
图片描述
如果a3也就是通配符里面的值是空的那就是返回1

图片描述
返回1导致这边这个while不运行了,无法遍历,所以这个特征码搜索应该是写的有点毛病,必须带通配符才能搜索,但具体情况具体分析,很显然这里的a3里面是有值的,
图片描述
因为v5为char[],所以
v5[4]=a1,v5[v6]=a3,这里不知道是不是编译器没优化好还是写法有问题。这里好好理解就知道为什么是特征码搜索了。
图片描述

返回
前面的几部操作是获取storport.sys里某个函数的地址,后面的操作要用到这个函数。IoGetDeviceObjectPointer的用法是根据设备名字获得设备地址,DestinationString由SourceString得到, sub_140001E00和 sub_140001000就是对SourceString进行初始化操作
图片描述

进去sub_140001E00,看着像是对SourceString各种加密操作,根据具体问题具体分析的原则,我们根据调用sub_140001E00的三个参数进行分析

图片描述

图片描述

分析他只会这样走
图片描述

实在看不懂,我们看起汇编代码
图片描述
rdx为0,此外没有别的写入,大胆猜测是对字符串清零

分析sub_140001000
图片描述
这个貌似也是清零?那就不对了,反汇编看看,好家伙ida没识别出来

图片描述

vsnwprintf的函数介绍
图片描述

这个是对字符串真正的初始化

获取到第一个驱动设备,然后

图片描述

v0已经分析过是storport.sys的某个函数
图片描述

old disk serial number说明这个整个call是找到硬盘序列号在内核中的地址
并修改
图片描述
修改的算法,用了RtlRandomEx确保随机性
图片描述


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (6)
雪    币: 19410
活跃值: (29069)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-11-4 21:57
2
1
感谢分享
雪    币: 5596
活跃值: (5125)
能力值: ( LV6,RANK:92 )
在线值:
发帖
回帖
粉丝
0xC5 1 2023-11-5 00:55
3
0
https://github.com/SamuelTulach/mutante
雪    币: 6278
活跃值: (3409)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nekaxi 2023-11-5 06:24
4
0
感谢分享
雪    币: 2140
活跃值: (3523)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
R0g 2 2023-11-5 09:12
5
0
0x10101010....那个是memset
雪    币: 848
活跃值: (3525)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
逆向爱好者 2023-11-5 13:37
6
0
0xC5 https://github.com/SamuelTulach/mutante 请
好的有空再研究研究
雪    币: 848
活跃值: (3525)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
逆向爱好者 2023-11-5 13:37
7
0
R0g 0x10101010....那个是memset
我再看看·
游客
登录 | 注册 方可回帖
返回