首页
社区
课程
招聘
[原创]获得并修改硬件序列号--CPU、主板、内存、硬盘等(有源码)
发表于: 2024-8-2 14:41 27494

[原创]获得并修改硬件序列号--CPU、主板、内存、硬盘等(有源码)

2024-8-2 14:41
27494

大家都知道很多Anti Cheat会封硬件序列号,所以本文探索一下如何get and modify序列号。

这个服务是比较贵的:

        

于是有了研究一下的想法。


思路:

1. 通过厂商自带的程序刷新固件。

2. 自己写驱动修改。


思路1不讨论,要拿到厂商去修改,很不方便。这里重点讨论思路2。

思路2是通过修改SMBIOS表,有两种方法,一种需要开机自启动,一种不需要,后面会介绍。


SMBIOS:

SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。

而DMI(Desktop Management Interface, DMI) 就是帮助收集电脑系统信息的管理系统。

DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。

两种方法都需要解析SMBIOS。


一、先介绍不需要重启的方法:

1.从物理内存 0x000F0000-0x000FFFFF 之间寻找关键字 “ _SM_” 。

2.找到后再向后16个字节,看后面5个BYTE是否是关键字“_DMI_”,如果是,EPS表即找到。

   EPS表结构中16H以及18H处,得出数据表长度和数据表地址,即可通过地址访问 SMBIOS 数据结构表。

   SMBIOS表结构由头和体组成,其中头的结构定义如下:

体的结构由头的TYPE字段决定,如下:

其中TYPE 0结构是BIOS information,TYPE 1结构是SYSTEM Information,其它类型大家查阅我附件里的文档。

总之是依据文档标准去解析。这里给出关键代码:

从而找到EPS和SMBIOS表。然后修改SMBIOS表中的字段。

这样可以修改CPU、主板、内存、硬盘序列号

由于篇幅关系,先介绍到这里,具体代码见附件:GetSMBiosRing0.zip。

效果如下:

图右侧显示BIOS模式为"传统",代表BIOS,非UEFI。


二、再介绍需要重启的方法:

1.

先是想注册回调来修改,通过NtSetSystemInformation函数的

SystemRegisterFirmwareTableInformationHandler,见下面的WRK代码:



编写代码:


发现ntStatus没有成功,返回STATUS_OBJECT_NAME_EXISTS,对象已经存在。

于是尝试先删除已经存在的,TableHandler.Register设置为FALSE:



发现还是删除不了Raw SMBIOS,第一次funZwSetSystemInfomation返回STATUS_INVALID_PARAMETER,

第二次返回STATUS_OBJECT_NAME_EXISTS。

然后查看上面ZwSetSystemInfomation对SystemRegisterFirmwareTableInformationHandler的处理

代码如下:



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2024-8-9 16:53 被yirucandy编辑 ,原因:
上传的附件:
收藏
免费 47
支持
分享
打赏 + 10.00雪花
打赏次数 1 雪花 + 10.00
 
赞赏  游乐娃子   +10.00 2024/08/03 感谢分享~
最新回复 (68)
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
2

这里可以修改主板UUID。

2024-8-2 17:17
0
雪    币: 0
活跃值: (340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
非常不错,刚好用到了
2024-8-2 17:54
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
如果检测虚拟机的显卡,可以用这个办法不
2024-8-2 18:57
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
5
mb_ldbucrik 如果检测虚拟机的显卡,可以用这个办法不
可以,代码里有GPU的逻辑。
2024-8-2 19:47
0
雪    币: 1322
活跃值: (152)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
6
非常不错,帮助很大.
2024-8-2 19:51
0
雪    币: 1627
活跃值: (4703)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
牛逼,楼主还有没有别的思路就是如果硬件信息没有加密,那么能不能先查一下硬件信息 ,直接暴力搜索内存匹配硬件信息,暴力修改内存
2024-8-3 09:33
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
8
逆向爱好者 牛逼,楼主还有没有别的思路就是如果硬件信息没有加密,那么能不能先查一下硬件信息 ,直接暴力搜索内存匹配硬件信息,暴力修改内存
思路不错,就是搜什么关键字。此贴的方法其实相当于搜内存,因为遍历修改的SMBios表,此表在内存中。
2024-8-3 10:09
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
懂了,AC,立马都查一遍
2024-8-3 19:03
0
雪    币: 183
活跃值: (2427)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
师父牛逼!
2024-8-3 19:04
0
雪    币: 15003
活跃值: (6213)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
据我所知,Bios内存是可以直接读的
2024-8-3 19:12
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
12
tDasm 据我所知,Bios内存是可以直接读的
怎么读取呢,wmic还是Smbios
2024-8-4 09:27
0
雪    币: 8107
活跃值: (4889)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习 好文章 
2024-8-4 11:35
0
雪    币: 3700
活跃值: (4091)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
厉害了。
2024-8-4 14:04
0
雪    币: 260
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
Mark 这是个好文章呐
2024-8-5 14:01
0
雪    币: 1467
活跃值: (1906)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感谢楼主分享好文,正好想学习这方面的知识.
2024-8-7 19:03
0
雪    币: 0
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这个源码,在我的系统上,能读,但不能修改是什么情况呢
2024-8-8 13:16
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
18
hmuyin 这个源码,在我的系统上,能读,但不能修改是什么情况呢
驱动加载后需要在注册表里把Start键值改为1,设置为开机自启动。
2024-8-8 13:50
0
雪    币: 297
活跃值: (1647)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

膜拜大师,这个修改工具怎样使用的HardwareSNModify?运行不了

最后于 2024-8-9 10:26 被wx_一叶_733编辑 ,原因:
2024-8-9 10:09
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
20
wx_一叶_733 膜拜大师,这个修改工具怎样使用的HardwareSNModify?运行不了
你把它当驱动加载了吗
2024-8-9 11:49
0
雪    币: 297
活跃值: (1647)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
yirucandy 你把它当驱动加载了吗
没有,怎样加载的?
2024-8-9 14:16
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
22
wx_一叶_733 没有,怎样加载的?
你下载个OSRLOADER.exe加载驱动,然后看下18楼。
2024-8-9 14:43
0
雪    币: 297
活跃值: (1647)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
yirucandy 你下载个OSRLOADER.exe加载驱动,然后看下18楼。
第二种方法,修改后的序列号在下次开机自动启动时是不是又重新随机生成?能固定吗?
2024-8-9 19:04
0
雪    币: 6565
活跃值: (2497)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
24
wx_一叶_733 第二种方法,修改后的序列号在下次开机自动启动时是不是又重新随机生成?能固定吗?
固定有啥好处
2024-8-9 19:42
0
雪    币: 14
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
内存序列号那些也能修改么
2024-8-9 23:12
0
游客
登录 | 注册 方可回帖
返回
//