多努力就会有多特殊(neverforever)——仌
关于 python读取电脑识别码 的程序请参考文章:
https://blog.csdn.net/weixin_44204327/article/details/85162826
目标
python实现c语言运行 用python语言,识别电脑机器码,通过授权码,只允许软件运行在唯一电脑上,实现“一机一码”。
然后通过C语言调用python程序,在C语言基础上完成软件授权码程序的编写。
注:程序识别的机器码包括:
- CPU序列号(ID)
- 本地连接 无线局域网 以太网的MAC
- 硬盘序列号(唯一)
- 主板序列号(唯一)
C语言授权码程序运行分析
程序代码
C语言代码部分
#include<Python.h>
int main()
{
Py_Initialize();//初始化python
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('../\\pythonbases\\site-packages')");
PyRun_SimpleString("sys.path.append('../\\pythonbases\\site-packages\\win32')");
PyRun_SimpleString("sys.path.append('../\\pythonbases\\site-packages\\win32\\lib')");
PyObject * pModule = NULL; //声明变量
PyObject * pFunc = NULL;
pModule = PyImport_ImportModule("author");
pFunc = PyObject_GetAttrString(pModule, "checkAuthored");
PyEval_CallObject(pFunc, NULL);
Py_Finalize(); //释放python
return 0;
}
python语言代码部分
import wmi
import json
import win32com
import base64
from pyDes import *
############ 1. 获取硬件信息,输出 macode
# 1.CPU序列号(ID) 2.本地连接 无线局域网 以太网的MAC 3.硬盘序列号(唯一) 4.主板序列号(唯一)
global s
s = wmi.WMI()
#cpu 序列号
def get_CPU_info():
cpu = []
cp = s.Win32_Processor()
for u in cp:
cpu.append(
{
"Name": u.Name,
"Serial Number": u.ProcessorId,
"CoreNum": u.NumberOfCores
}
)
# print(