Commit 614bcb50 by 陶腾飞

2022-07-31 v1.0

parent 4210c7c5
File deleted
# windows-boom
一款知微定制版的windows、office激活工具,无毒无害,可重复激活至永久。
## 说明
目前仅支持Windows 10 Pro,之后将更新office 2016和2019版本
## 用法
下载[文件](http://115.231.214.234:16823/file/windows-boom.exe)到本地,以管理员权限运行即可。
## 更新记录
2022-07-31 v1.0 支持windows 10 Pro的激活
\ No newline at end of file
package main
import (
"fmt"
"log"
pub "git.zhiweidata.top/taotengfei/AD-Control-Golang/public"
)
var MS = &pub.MS
func main() {
if pub.Zhiweireach() {
log.Printf("该主机属于知微域")
}
if err := activeWindows(); err != nil {
log.Println("Windows 激活失败")
log.Println(err)
}
log.Println("按任意键继续")
fmt.Scan("233")
}
#!/bin/bash
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o kmsc.exe
\ No newline at end of file
package main
import "log"
// 自动激活
// 查看激活状态
func main() {
res, err := reg_query_item_one(HKLM, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, "ProductName")
if err != nil {
log.Println(err)
}
log.Println(res)
}
module main
go 1.18
require golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098 h1:PgOr27OhUx2IRqGJ2RxAWI4dJQ7bi9cSrB82uzFzfUA=
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
package main
import (
"golang.org/x/sys/windows/registry"
)
const (
HKCU = iota
HKLM
HKU
)
func reg_query_item_one(root int, path string, key string) (string, error) {
k, err := registry.OpenKey(prase(&root), path, registry.READ)
if err != nil {
return "", err
}
defer k.Close()
s, _, err := k.GetStringValue(key)
if err != nil {
return "", err
}
return s, nil
}
func prase(root *int) registry.Key {
switch *root {
case HKCU:
return registry.CURRENT_USER
case HKU:
return registry.USERS
case HKLM:
return registry.LOCAL_MACHINE
}
return registry.LOCAL_MACHINE
}
module main
go 1.17
require golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098 // indirect
require git.zhiweidata.top/taotengfei/AD-Control-Golang/public v0.0.0
require git.zhiweidata.top/taotengfei/AD-Control-Golang/registry v0.0.0
require (
github.com/Azure/go-ntlmssp v0.0.0-20211209120228-48547f28849e // indirect
github.com/go-asn1-ber/asn1-ber v1.5.3 // indirect
github.com/go-ldap/ldap/v3 v3.4.2 // indirect
github.com/gookit/color v1.5.0 // indirect
github.com/mozillazg/go-pinyin v0.19.0 // indirect
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect
golang.org/x/text v0.3.7 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
)
replace git.zhiweidata.top/taotengfei/AD-Control-Golang/public v0.0.0 => ..\AD-Control-Golang\public
replace git.zhiweidata.top/taotengfei/AD-Control-Golang/registry v0.0.0 => ..\AD-Control-Golang\registry
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
github.com/Azure/go-ntlmssp v0.0.0-20211209120228-48547f28849e h1:ZU22z/2YRFLyf/P4ZwUYSdNCWsMEI0VeyrFoI2rAhJQ=
github.com/Azure/go-ntlmssp v0.0.0-20211209120228-48547f28849e/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
github.com/go-asn1-ber/asn1-ber v1.5.3 h1:u7utq56RUFiynqUzgVMFDymapcOtQ/MZkh3H4QYkxag=
github.com/go-asn1-ber/asn1-ber v1.5.3/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
github.com/go-ldap/ldap/v3 v3.4.2 h1:zFZKcXKLqZpFMrMQGHeHWKXbDTdNCmhGY9AK41zPh+8=
github.com/go-ldap/ldap/v3 v3.4.2/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg=
github.com/gookit/color v1.5.0 h1:1Opow3+BWDwqor78DcJkJCIwnkviFi+rrOANki9BUFw=
github.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo=
github.com/mozillazg/go-pinyin v0.19.0 h1:p+J8/kjJ558KPvVGYLvqBhxf8jbZA2exSLCs2uUVN8c=
github.com/mozillazg/go-pinyin v0.19.0/go.mod h1:iR4EnMMRXkfpFVV5FMi4FNB6wGq9NV6uDWbUuPhP4Yc=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8=
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o=
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220403020550-483a9cbc67c0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098 h1:PgOr27OhUx2IRqGJ2RxAWI4dJQ7bi9cSrB82uzFzfUA=
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
File added
module server
go 1.18
package main
func main() {
}
package main
import (
"fmt"
"log"
"strings"
pub "git.zhiweidata.top/taotengfei/AD-Control-Golang/public"
reg "git.zhiweidata.top/taotengfei/AD-Control-Golang/registry"
)
func checkWindows() bool {
var status bool
out := pub.Execcmd_output(`cscript C:\Windows\SysWOW64\slmgr.vbs /xpr`)
outs := strings.TrimSpace(string(out))
winProductName := reg.Query_key_one(reg.HKLM, `SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform`, "BackupProductKeyDefault")
if strings.Contains(outs, "计算机已永久激活") {
log.Printf("当前已永久激活,使用的密钥为%s", winProductName)
return false
} else if strings.Contains(outs, "找不到产品密钥") {
status = true
} else if strings.Contains(outs, "处于通知模式") {
status = true
} else if strings.Contains(outs, "批量激活将于") {
log.Printf("当前已激活")
return false
} else {
fmt.Println(outs)
}
log.Printf("准备激活Windows")
return status
}
func requestWindowsKey() (string, string, error) {
product := reg.Query_key_one(reg.HKLM, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, "ProductName")
if product == "" {
return "", "", fmt.Errorf("无法查询到系统产品名称")
}
log.Printf("系统产品名称:%s\n", product)
pub.SendBoomServer(pub.Msg_Boom_Active, product)
if pub.MS.Error {
return "", "", fmt.Errorf(pub.MS.Errmsg)
}
return product, pub.MS.S, nil
}
func activeWindows() error {
if !checkWindows() {
return nil
}
product, key, err := requestWindowsKey()
if err != nil {
return err
}
log.Printf("请求到%s的密钥:%s\n", product, key)
kmsfile := "vlmcsd-Windows-x64.exe"
kms := fmt.Sprintf(`%s\%s`, pub.Dir_tmp, kmsfile)
if pub.NotExist(kms) {
log.Printf("下载kms服务器")
url := fmt.Sprintf("%s/%s", pub.Msg_File, kmsfile)
if err := pub.DownloadFileInside(url, kms); err != nil {
log.Printf("下载失败")
return err
}
}
if !pub.Telnet("192.168.0.21", "1689") {
return fmt.Errorf("无法连接到知微kms")
}
log.Printf("探测到kms服务器已经运行")
outstr := string(pub.Execcmd_output(`cscript C:\Windows\SysWOW64\slmgr.vbs /skms 192.168.0.21:1688`))
if strings.Contains(outstr, "拒绝访问: 所请求的操作需要提升特权") {
return fmt.Errorf("请使用管理员权限打开本程序")
} else if strings.Contains(outstr, "密钥管理服务计算机名称成功地设置为") {
log.Printf("kms设置成功")
}
outstr = string(pub.Execcmd_output(`cscript C:\Windows\SysWOW64\slmgr.vbs /ipk ` + key))
if strings.Contains(outstr, "拒绝访问: 所请求的操作需要提升特权") {
return fmt.Errorf("请使用管理员权限打开本程序")
} else if strings.Contains(outstr, "成功地安装了产品密钥") {
log.Printf("成功安装产品密钥")
}
outstr = string(pub.Execcmd_output(`cscript C:\Windows\SysWOW64\slmgr.vbs /ato`))
if strings.Contains(outstr, "拒绝访问: 所请求的操作需要提升特权") {
return fmt.Errorf("请使用管理员权限打开本程序")
} else if strings.Contains(outstr, "0x8007000D 数据无效") {
return fmt.Errorf("kms地址无法是本地地址")
} else if strings.Contains(outstr, "成功地激活了产品") {
log.Printf("激活%s成功", product)
}
// log.Println(outstr)
return nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment