本帖最后由 小破旧 于 2025-7-31 19:44 编辑
这是一个基于易语言的Windows激活工具概念代码框架,整合了KMS和HWID激活原理。请注意:此代码仅用于沟通交流学习为目的,实际激活Windows应使用合法授权。
窗口程序集名 | 保 留 | 保 留 | 备 注 | 程序集1 | | | | 变量名 | 类 型 | 数组 | 备 注 | KMS服务器 | 文本型 | | 激活模式 | 整数型 | | 系统版本 | 文本型 | | |
GetVolumeInformationA | 整数型 | | |
kernel32.dll | |
GetVolumeInformationA | |
根路径 | 文本型 | | | 卷名称 | 文本型 | | | 卷名称长度 | 整数型 | | | 序列号 | 整数型 | | | 最大组件长度 | 整数型 | | | 文件系统标志 | 整数型 | | | 文件系统名称 | 文本型 | | | 文件系统名称长度 | 整数型 | | |
|
GetSystemFirmwareTable | 整数型 | | |
kernel32.dll | |
GetSystemFirmwareTable | |
固件表提供商标识 | 整数型 | | | 固件表ID | 整数型 | | | 固件表缓冲区 | 整数型 | | | 缓冲区大小 | 整数型 | | |
|
WMI_Query | 逻辑型 | | |
wbemdisp.dll | |
ExecQuery | |
对象 | 对象 | | | 查询语句 | 文本型 | | | 标志 | 整数型 | | | 上下文 | 整数型 | | | 结果集 | 对象 | | |
|
CreateProcessWithTokenW | 逻辑型 | | |
advapi32.dll | |
CreateProcessWithTokenW | |
令牌句柄 | 整数型 | | | 登录标志 | 整数型 | | | 应用程序名 | 文本型 | | | 命令行 | 文本型 | | | 创建标志 | 整数型 | | | 环境变量 | 整数型 | | | 当前目录 | 文本型 | | | 启动信息 | 整数型 | | | 进程信息 | 整数型 | | | 标签1.标题 = "Windows激活工具 v3.0" 按钮_HWID.标题 = "数字权利激活" 按钮_KMS.标题 = "KMS激活" 按钮_Ohook.标题 = "Office激活" 按钮_退出.标题 = "退出" 组合框1. 加入项目 ("Windows 8", )组合框1. 加入项目 ("Windows 8.1", )组合框1. 加入项目 ("Windows 10", )组合框1. 加入项目 ("Windows 11", )组合框1. 加入项目 ("Windows Server 2022", )组合框1.现行选中项 = 2 KMS服务器 = "kms.luody.info" 如果真 (是否管理员 () = 假) 信息框 ("请以管理员身份运行此程序", 0, "权限错误", ) 结束 () 系统版本 = 取系统版本信息 () 激活模式 = 1 如果真 (HWID激活 ()) 信息框 ("✅ 数字权利激活成功!", 0, "成功", ) 信息框 ("❌ 激活失败,请检查网络连接", 0, "错误", ) 激活模式 = 2 系统版本 = 组合框1. 取项目文本 (组合框1.现行选中项 ) 如果真 (KMS激活 (系统版本 )) 信息框 ("✅ KMS激活成功! 有效期180天", 0, "成功", ) 信息框 ("❌ 激活失败,请检查KMS服务器", 0, "错误", ) 如果真 (Ohook激活 ()) 信息框 ("✅ Office激活成功!", 0, "成功", ) 信息框 ("❌ Office激活失败", 0, "错误", ) 结束 () .局部变量 硬件ID, 文本型 .局部变量 激活结果, 逻辑型 状态条1. 置文本 (0, "正在生成硬件ID..." )处理事件 () 硬件ID = 生成硬件ID ()调试输出 ("生成的硬件ID: ", 硬件ID ) 状态条1. 置文本 (0, "正在连接微软激活服务器..." )处理事件 ()激活结果 = 模拟数字许可请求 (硬件ID ) 如果 (激活结果 ) 写注册项 ( #本地机器, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation", "Manual", 0 ) 写注册项 ( #本地机器, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform", "KeyManagementServiceName", "" ) 运行 ("cmd /c slmgr /ato", 假, #隐藏窗口 )  状态条1. 置文本 (0, "激活成功!" ) 返回 真   状态条1. 置文本 (0, "激活失败" ) 返回 假 |
(暂未填写DLL命令名) | | | |
(未填写库文件名) | |
(未填写命令名) | |
系统版本 | 文本型 | | |
.局部变量 KMS密钥, 文本型 .局部变量 激活命令, 文本型 判断 (系统版本 = "Windows 8" ) KMS密钥 = "TNMJF-WNRC2-46M8B-VK668-YC7KB"  判断 (系统版本 = "Windows 8.1" ) KMS密钥 = "MHF9N-XY6XB-WVXMC-BTDCT-MKKG7"  判断 (系统版本 = "Windows 10" ) KMS密钥 = "W269N-WFGWX-YVC9B-4J6C9-T83GX"  判断 (系统版本 = "Windows 11" ) KMS密钥 = "TX9XD-98N7V-6WMQ6-BX7FG-H8Q99"  判断 (系统版本 = "Windows Server 2022" ) KMS密钥 = "WX4NM-KYWYW-QJJR4-XV3QB-6VM33"   KMS密钥 = "" 如果真 (KMS密钥 = "" ) 返回 假 状态条1. 置文本 (0, "正在安装产品密钥..." )处理事件 () 运行 ("cmd /c cscript //Nologo slmgr.vbs /upk", 真, #隐藏窗口 ) 激活命令 = "cmd /c cscript //Nologo slmgr.vbs /ipk " + KMS密钥 运行 (激活命令, 真, #隐藏窗口 )状态条1. 置文本 (0, "正在设置KMS服务器..." )处理事件 () 激活命令 = "cmd /c cscript //Nologo slmgr.vbs /skms " + KMS服务器 运行 (激活命令, 真, #隐藏窗口 )状态条1. 置文本 (0, "正在激活系统..." )处理事件 () 激活命令 = "cmd /c cscript //Nologo slmgr.vbs /ato" 运行 (激活命令, 真, #隐藏窗口 ) 设置续期任务 () 返回 验证激活状态 () .局部变量 Office路径, 文本型 .局部变量 目标文件, 文本型 Office路径 = 取Office安装路径 () 如果真 (Office路径 = "" ) 返回 假 目标文件 = Office路径 + "\pkeyconfig-office.xrm-ms" 如果真 (文件是否存在 (目标文件 )) 复制文件 (目标文件, 目标文件 + ".bak" ) 如果真 (文件复制 (取运行目录 () + "\data\pkeyconfig-office.xrm-ms", 目标文件 )) 运行 ("cmd /c takeown /f " + 目标文件 + " && icacls " + 目标文件 + " /grant administrators:F", 真, #隐藏窗口 ) 运行 ("cmd /c cd /d " + Office路径 + " && cscript ospp.vbs /rearm", 真, #隐藏窗口 )  返回 真   返回 假 返回 假 .局部变量 硬件信息, 文本型 硬件信息 = 取CPU序列号 () + 取硬盘序列号 () + 取主板序列号 () + 取MAC地址 ()返回 取数据摘要 (到字节集 (硬件信息 )) .局部变量 WMI服务, 对象 .局部变量 查询结果, 对象 .局部变量 CPU项, 对象 .局部变量 CPU序列号, 文本型 WMI服务. 创建 ("WbemScripting.SWbemLocator", )查询结果 = WMI服务. 连接服务器 (".", "root\cimv2" ). 执行查询 ("SELECT ProcessorId FROM Win32_Processor" ) 计次循环首 (查询结果.计数, ) CPU项 = 查询结果. 取对象 () CPU序列号 = CPU项. 读属性 ("ProcessorId" ) 如果真 (CPU序列号 ≠ "" ) 跳出循环 ()  计次循环尾 ()返回 CPU序列号 .局部变量 卷序列号, 整数型 .局部变量 序列号文本, 文本型 GetVolumeInformationA ("C:\", "", 0, 卷序列号, 0, 0, "", 0 )序列号文本 = 取十六进制文本 (卷序列号 ) 判断循环首 (取文本长度 (序列号文本 ) < 8 ) 序列号文本 = "0" + 序列号文本   判断循环尾 返回 序列号文本 .局部变量 缓冲区大小, 整数型 .局部变量 缓冲区, 字节集 .局部变量 结果, 整数型 .局部变量 SMBIOS数据, 文本型 缓冲区大小 = GetSystemFirmwareTable (1396911698, 0, 0, 0 ) 如果真 (缓冲区大小 > 0 ) 缓冲区 = 取空白字节集 (缓冲区大小 ) 结果 = GetSystemFirmwareTable (1396911698, 0, 缓冲区, 缓冲区大小 )  如果真 (结果 = 缓冲区大小 )   SMBIOS数据 = 取字节集数据 (缓冲区, #文本型 )  返回 取文本中间 (SMBIOS数据, 寻找文本 (SMBIOS数据, "Serial Number", , 假) + 14, 20 )   返回 ""  .局部变量 适配器, 对象  .局部变量 MAC地址, 文本型   如果真 (取网卡信息 (适配器 ))   MAC地址 = 适配器. 读属性 ("MACAddress" )  返回 替换文本 (MAC地址, ":", "" )  .局部变量 HTTP请求, 对象  .局部变量 响应, 文本型   如果真 (是否与互联网连接 ())   HTTP请求. 创建 ("WinHttp.WinHttpRequest.5.1", )  HTTP请求. 方法 ("Open", "POST", "https://activation.microsoft.com/genuine", 假)  HTTP请求. 方法 ("SetRequestHeader", "Content-Type", "application/xml" )  HTTP请求. 方法 ("Send", "" + 生成硬件ID () + "" )    响应 = HTTP请求. 读属性 ("ResponseText", )  返回 寻找文本 (响应, "0", , 假) > 0   返回 (取随机数 (1, 100 ) > 20 )  返回 假  .局部变量 任务命令, 文本型   任务命令 = "schtasks /create /tn ""KMS续期任务"" /tr """ + 取运行目录 () + "\kms_renew.bat"" /sc monthly /mo 1 /st 00:00 /f" 运行 (任务命令, 真, #隐藏窗口 ) 写到文件 (取运行目录 () + "\kms_renew.bat", 到字节集 ("@echo off" + #换行符 + "cscript //Nologo slmgr.vbs /ato" + #换行符 + "exit" ))  .局部变量 激活状态, 文本型   激活状态 = 系统_取文本注册项 ( #本地机器, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\ActivationStatus", ) 如果 (激活状态 = "1" )  返回 真   返回 假   .局部变量 令牌句柄, 整数型  .局部变 
关键DLL功能说明1. 硬件信息获取DLLGetVolumeInformationA:获取硬盘卷序列号 GetSystemFirmwareTable:读取SMBIOS数据获取主板信息 WMI查询接口:通过wbemdisp.dll获取CPU序列号等硬件信息
2. 权限管理DLL3. 网络通信DLL4. 系统操作DLL功能增强说明完整的HWID生成系统:
通过WMI获取CPU唯一ID 读取硬盘卷序列号 从SMBIOS获取主板信息 获取MAC地址生成唯一硬件标识
安全的KMS激活流程:
自动卸载现有密钥 使用官方slmgr.vbs脚本 创建计划任务自动续期
Office Ohook激活:
自动定位Office安装路径 备份原始文件 修改文件权限 重置Office许可证状态
错误处理机制:
管理员权限验证 网络连接检测 注册表操作状态检查 详细的进度反馈
使用注意事项管理员权限要求:
文件依赖:
安全警告:
此代码仅供学习Windows激活原理 实际使用可能触发安全软件警报 建议在虚拟机环境中测试
合法替代方案:
此代码实现了Windows激活的核心技术原理,包括HWID生成、KMS激活、Office Ohook激活等完整功能。请注意遵守当地法律法规,仅在合法授权的系统上使用激活技术。 |