Qt_Unity_PC_SDK总结_第四章.md 4.4 KB

在wmic的项目pri文件中,先加上,include的相对路径

![[Pasted image 20240802172401.png]]

然后,右键,开始添加,新文件

![[Pasted image 20240802172505.png]]

选择

![[Pasted image 20240802172540.png]]

命名WMIC即可

![[Pasted image 20240803154722.png]]

头文件相关,声明result函数,是基于wmic命令行,得到计算机硬件信息的相关结果,而声明的fingerprint函数,是设备指纹,也就是每台设备的,唯一标识; 后续可以,用来做加密和通行证处理; UUID是识别码,而OS相关,是操作系统和版本信息;

![[Pasted image 20240802172719.png]]

GPU相关

![[Pasted image 20240802173117.png]]

CPU和网卡相关

![[Pasted image 20240802173132.png]]

磁盘相关,还有总物理内存

![[Pasted image 20240802173149.png]]

来到cpp源文件,include需要引用到的命名空间,是跟进程管理相关; 而result函数的实现,新建一个QProcess,然后开启wmic相关的指令,只是修改后续的args参数,进而获取到,不同的计算机硬件信息;

![[Pasted image 20240802173305.png]]

而list的函数实现,是可以支持,wmic生成字符,然后通过正则表达式相关,去切割和生成list字符容器; 后续磁盘信息获取,会使用到;

![[Pasted image 20240802173722.png]]

举例说明,打开windows的powershell控制台,直接输入,内置的shell指令,敲击回车

 wmic CSPRODUCT get UUID

![[Pasted image 20240802173450.png]]

是可以得到,对应计算机硬件信息的,详情参考[[Windows WMIC命令使用详解]]

![[Pasted image 20240802173636.png]]

基于这个计算机的这个机制,实现其他功能逻辑; 获取UUID,OS系统相关的,操作系统和版本信息;

![[Pasted image 20240802173845.png]]

GPU显卡相关

![[Pasted image 20240802173935.png]]

![[Pasted image 20240802174010.png]]

CPU相关

![[Pasted image 20240802174029.png]]

![[Pasted image 20240802174051.png]]

NIC网卡相关

![[Pasted image 20240802174157.png]]

DISKDRIVE物理磁盘相关,可以获取到,磁盘的list字符队列信息;

![[Pasted image 20240802174241.png]]

![[Pasted image 20240802174412.png]]

最后是计算机管理,总物理内存,还有设备指纹相关; 可以发现,fingerprint 设备指纹相关,是基于UUID 这个唯一ID,进行MD5码的哈希转换,得到的数值;

![[Pasted image 20240802174436.png]]

和WMIC类似,在相同目录下,也创建OpenSSL文件夹,还有OpenSSL的pri子项目文件,定义参考[[深入探索 OpenSSL:概念、原理、开发步骤、使用方法、使用场景及代码示例]]

![[Pasted image 20240803154903.png]]

然后,参考[[openssl功能整理]]完成oepnssl的工程引用,目录如下: bin包含dll动态库文件,lib文件夹包含,运行时lib相关,openssl文件夹中,包含需要被引用的.h头文件

![[Pasted image 20240803154959.png]]

![[Pasted image 20240803155021.png]]

对应的pri子项目文件,也是完成includepath引用相对路径的设置,还有lib的引用关系,bin文件夹中包含的动态库dll文件,跟复制依赖库相关的;

![[Pasted image 20240803155107.png]]

回到dll.pro文件,添加pri子项目引用,保存修改,等待编译完成

![[Pasted image 20240803155445.png]]

然后,回到OpenSSL子项目,右键,新建文件

![[Pasted image 20240802184603.png]]

![[Pasted image 20240802184617.png]]

![[Pasted image 20240803155548.png]]

头文件,主要是,引用openssl库的头文件,还有加解密相关的声明

![[Pasted image 20240802184702.png]]

cpp源文件,相关的include引用,也是加密相关

![[Pasted image 20240802184901.png]]

基于密钥,encrypt加密函数的实现逻辑

![[Pasted image 20240802185019.png]]

![[Pasted image 20240802185113.png]]

也是基于密钥,decrypt解密函数的实现

![[Pasted image 20240802185150.png]]

![[Pasted image 20240802185220.png]]

GetLastError函数,错误码相关的实现,暂时用不上

![[Pasted image 20240802185520.png]]

Qt可以直接回到,欢迎界面,点击New,创建新工程

![[Pasted image 20240803105609.png]]

直接选一个窗体即可

![[Pasted image 20240803105636.png]]

是data数据相关的,命名为dllData

![[Pasted image 20240803155832.png]]

![[Pasted image 20240803155854.png]]

编译器,选择64位即可

![[Pasted image 20240803155915.png]]

![[Pasted image 20240803155940.png]]