首页
社区
课程
招聘
[原创] X大师逆向分析及利用
发表于: 2025-6-20 16:24 6588

[原创] X大师逆向分析及利用

2025-6-20 16:24
6588

        众所周知,X大师的硬件检测功能很强,于是有了想分析下原理的想法。



         经过分析,X大师分析硬件的方法有些复杂,要还原其功能,然后自己重写,工作量很大。所以采用调用X大师二进制文件接口的方法,获取硬件信息。下面着重介绍分析思路:


        老规矩,先看X大师的日志文件,找到下面的信息:


       有关键字GetOverviewJson,下面的信息是CPU、主板、供应商,说明是”硬件总览信息”对应的日志信息。

       然后分析X大师的进程和文件,发现有下面几个进程:



       其中ComputerZ_CN.exe是界面进程,ComputerZService.exe是个服务进程:

      猜测ComputerZService.exe调用一些dll进行实际的硬件检测等功能,ComputerZ_CN.exe负责展示。

再看文件:

      看名字ComputerZ_HardwareDll.dll像是实现硬件检测功能的DLL,需重点分析。

      基于前面的日志文件,上IDA打开ComputerZ_HardwareDll.dll,搜索GetOverviewJson字符串:


找到引用的地方:

      可以看到Machine、OS、CPU、Motherboard等字符串。说明此处正是”硬件总览信息”对应的代码位置。

      首先想到的是直接构造参数调用此函数。但经过尝试,程序各种报错。想到是X大师在调用此函数前做了些初始化工作,而直接调用是没有经过初始化的。后面也分析出了好多初始化操作,补上后,程序还是报错。

       于是尝试调用X大师靠上层的一些函数接口,也就是一开始扫描硬件就会调用的函数。

看ComputerZ_HardwareDll.dll的导出函数:


       看名称,就一个CreateHdwInfo函数是创建硬件信息的,应该是扫描硬件前调用的。并没有扫描的函数。

       ComputerZ_HardwareDll.dll找不到,我们就去调用ComputerZ_HardwareDll.dll的exe,也就是ComputerZService.exe中去找。看它调用了          ComputerZ_HardwareDll.dll哪些函数。IDA中搜“ComputerZ_HardwareDll.dll”关键字:

      可以看到并未搜索到,但是这个字符串是存在的:

      看到是调用了dll的CreateHdwInfo和hardware_info_main函数。hardware_info_main函数在dll中如下:

      我们调用hardware_info_main时,第一个参数需要传this指针,至于this指针应该填充什么,也是在IDA中分析调用的上下文得出的。下图是分析出填充的this指针内容:

        ComputerZService.exe最后调用了:

在sub_34D680函数中调用了ComputerZ_HardwareDll.dll扫描函数。为什么是

(*(*v14 + 0x1C))(); 这里调用了扫描函数呢?答案是在ComputerZ_HardwareDll.dll的g_GetOverviewJson(识别出来后重命名的)处下断点,然后栈回溯到ComputerZService.exe的调用空间:

于是写代码依次调用这3个函数,并在g_GetOverviewJson中Hook一下,就能拿到"硬件总览信息”了:

拿到本机的信息如下:


       最简单、最直接的方法是使用Cheat Engine搜索数值,然后对数值下硬件写入断点,就能定位到代码位置。

因为GPU的使用率和温度数值是变化的:

用CE的First Scan、Next Scan可以搜索到变化的值。所以是最简单的方法:

搜索到后定位到下图的代码处:

于是Hook就可以拿到GPU的使用率和温度数据了。


 在CE搜索CPU使用率时,刚开始对搜索结果进行了排除,只留了一个数据。导致定位时没找到地方,只找到了ComputerZService.exe对数据的处理部分:

其实是3个数据:

依次查看这3条数据:在数据位置点击右键->find out what writes to this address.


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2025-6-20 16:29 被yirucandy编辑 ,原因:
上传的附件:
收藏
免费 18
支持
分享
最新回复 (17)
雪    币: 2627
活跃值: (2625)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
2
牛逼,学习一波!
2025-6-20 17:04
0
雪    币: 5383
活跃值: (4502)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
3
莫灰灰 牛逼,学习一波!
飞哥,好久不出来吹水了
2025-6-20 17:09
0
雪    币: 5712
活跃值: (6115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
厉害了,很详细。
2025-6-21 13:43
0
雪    币: 5599
活跃值: (6452)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
鲁大师是依靠Windows的api去获取硬件信息的吗
2025-6-22 13:55
0
雪    币: 168
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
问下获取硬件信息很复杂是很咋获取的 ?
2025-6-23 01:17
0
雪    币: 2627
活跃值: (2625)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
7
yirucandy 飞哥,好久不出来吹水了[em_013]
哈哈哈哈,这年头搞 Windows 的同学不多了呀
2025-6-23 15:59
0
雪    币: 557
活跃值: (1708)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8

   ‎

最后于 2025-8-14 01:32 被Asbeel编辑 ,原因:
2025-6-27 19:27
0
雪    币: 1430
活跃值: (4627)
能力值: ( LV9,RANK:156 )
在线值:
发帖
回帖
粉丝
9
感谢你的贡献
2025-6-29 09:25
0
雪    币: 5383
活跃值: (4502)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
10
Asbeel    ‎
已私聊你
2025-6-30 09:54
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
大佬,小白请问一下,如果碰到反调试是一个个点去试吗,有什么技巧吗,如能回复万分感谢
2025-6-30 14:18
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
虽然不太懂,但是我很认真看了
2025-7-4 08:37
0
雪    币: 325
活跃值: (958)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
这年头搞win的都是老前辈了
2025-7-7 14:31
0
雪    币: 133
活跃值: (2290)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
14
厉害厉害
2025-7-9 02:33
0
雪    币: 147
活跃值: (766)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
牛逼了
2025-7-9 10:16
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
????大哥大哥教教我,我想学
2025-11-8 21:19
0
雪    币: 186
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大哥有个需求,有偿,私我一下。
2025-11-14 19:12
0
雪    币: 5383
活跃值: (4502)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
18
mb_qsxhpjqp 大哥有个需求,有偿,私我一下。
已私聊
2025-11-14 20:19
0
游客
登录 | 注册 方可回帖
返回