Skip to content

Commit f951db5

Browse files
author
Alex Levinson
committed
fixing import error
1 parent b10fbcd commit f951db5

File tree

3 files changed

+205
-27
lines changed

3 files changed

+205
-27
lines changed

engine/lib_os_windows.go

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
package engine
2+
3+
import (
4+
"errors"
5+
6+
"golang.org/x/sys/windows/registry"
7+
)
8+
9+
var (
10+
regKeys = map[string]registry.Key{
11+
"CLASSES_ROOT", registry.CLASSES_ROOT,
12+
"CURRENT_USER", registry.CURRENT_USER,
13+
"LOCAL_MACHINE", registry.LOCAL_MACHINE,
14+
"USERS", registry.USERS,
15+
"CURRENT_CONFIG", registry.CURRENT_CONFIG,
16+
"PERFORMANCE_DATA", registry.PERFORMANCE_DATA,
17+
}
18+
)
19+
20+
func lookUpKey(keyString string) (registry.Key, error) {
21+
key, ok := regKeys[keyString]
22+
if !ok {
23+
return nil, errors.New("Registry key " + keyString + " not found")
24+
}
25+
return key
26+
}
27+
28+
func (e *Engine) AddRegKeyString(registryString string, path string, name string, value string) error {
29+
regKey, err := lookUpKey(registryString)
30+
if err != nil {
31+
return err
32+
}
33+
openRegKey, err := registry.CreateKey(regKey, path, registry.SET_VALUE)
34+
if err != nil {
35+
return err
36+
}
37+
defer openRegKey.Close()
38+
return openRegKey.SetStringValue(name, value)
39+
}
40+
41+
func (e *Engine) AddRegKeyExpandedString(registryString string, path string, name string, value string) error {
42+
regKey, err := lookUpKey(registryString)
43+
if err != nil {
44+
return err
45+
}
46+
openRegKey, err := registry.CreateKey(regKey, path, registry.SET_VALUE)
47+
if err != nil {
48+
return err
49+
}
50+
defer openRegKey.Close()
51+
return openRegKey.SetExpandStringValue(name, value)
52+
}
53+
54+
func (e *Engine) AddRegKeyBinary(registryString string, path string, name string, value []byte) error {
55+
regKey, err := lookUpKey(registryString)
56+
if err != nil {
57+
return err
58+
}
59+
openRegKey, err := registry.CreateKey(regKey, path, registry.SET_VALUE)
60+
if err != nil {
61+
return err
62+
}
63+
defer openRegKey.Close()
64+
return openRegKey.SetBinaryValu(name, value)
65+
}
66+
67+
func (e *Engine) AddRegKeyDWORD(registryString string, path string, name string, value uint32) error {
68+
regKey, err := lookUpKey(registryString)
69+
if err != nil {
70+
return err
71+
}
72+
openRegKey, err := registry.CreateKey(regKey, path, registry.SET_VALUE)
73+
if err != nil {
74+
return err
75+
}
76+
defer openRegKey.Close()
77+
return openRegKey.SetDWordValue(name, value)
78+
}
79+
80+
func (e *Engine) AddRegKeyQWORD(registryString string, path string, name string, value uint64) error {
81+
regKey, err := lookUpKey(registryString)
82+
if err != nil {
83+
return err
84+
}
85+
openRegKey, err := registry.CreateKey(regKey, path, registry.SET_VALUE)
86+
if err != nil {
87+
return err
88+
}
89+
defer openRegKey.Close()
90+
return openRegKey.SetQWordValue(name, value)
91+
}
92+
93+
func (e *Engine) AddRegKeyStrings(registryString string, path string, name string, value []string) error {
94+
regKey, err := lookUpKey(registryString)
95+
if err != nil {
96+
return err
97+
}
98+
openRegKey, err := registry.CreateKey(regKey, path, registry.SET_VALUE)
99+
if err != nil {
100+
return err
101+
}
102+
defer openRegKey.Close()
103+
return openRegKey.SetStringsValue(name, value)
104+
}
105+
106+
func (e *Engine) DelRegKey(registryString string, path string) error {
107+
regKey, err := lookUpKey(path)
108+
if err != nil {
109+
return err
110+
}
111+
return registry.DeleteKey(regKey, path)
112+
}
113+
114+
func (e *Engine) DelRegKeyValue(registryString string, path string, valueName string) error {
115+
regKey, err := lookUpKey(path)
116+
if err != nil {
117+
return err
118+
}
119+
regKey.DeleteValue(name)
120+
return registry.DeleteKey(reg, path)
121+
}
122+
123+
func (e *Engine) QueryRegKey(registryString string, path string) (RegistryRetValue, error) {
124+
retVal := new(RegistryRetValue)
125+
regKey, err := lookUpKey(path)
126+
if err != nil {
127+
return retVal, err
128+
}
129+
openRegKey, err := registry.OpenKey(regKey, path, registry.QUERY_VALUE)
130+
if err != nil {
131+
return retVal, err
132+
}
133+
_, valType, err := openRegKey.GetValue(path, nil)
134+
if err != nil {
135+
return retVal, err
136+
}
137+
switch valType {
138+
case registry.EXPAND_SZ:
139+
value, _, err := openRegKey.GetStringsValue(path)
140+
if err != nl {
141+
return retVal, err
142+
}
143+
retVal.ValType = "StringArray"
144+
retVal.StringArrayVal = value
145+
case registry.SZ:
146+
value, _, err := openRegKey.GetStringValue(path)
147+
if err != nl {
148+
return retVal, err
149+
}
150+
retVal.ValType = "String"
151+
retVal.StringVal = value
152+
case registry.BINARY:
153+
value, _, err := openRegKey.GetBinaryValue(path)
154+
if err != nl {
155+
return retVal, err
156+
}
157+
retVal.ValType = "ByteArray"
158+
retVal.ByteArrayVal = value
159+
case registry.DWORD:
160+
value, _, err := openRegKey.GetIntegerValue(path)
161+
if err != nl {
162+
return retVal, err
163+
}
164+
retVal.ValType = "Uint"
165+
retVal.IntVal = uint32(value)
166+
case registry.QWORD:
167+
value, _, err := openRegKey.GetIntegerValue(path)
168+
if err != nl {
169+
return retVal, err
170+
}
171+
retVal.ValType = "Uint64"
172+
retVal.LongVal = value
173+
}
174+
}

engine/lib_registry.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import "errors"
88
//
99
// Package
1010
//
11-
// os
11+
// registry
1212
//
1313
// Author
1414
//
15-
// - Vyrus
15+
// - Vyrus (https://github.com/vyrus001)
1616
//
1717
// Javascript
1818
//
@@ -46,11 +46,11 @@ func (e *Engine) AddRegKeyString(registryString string, path string, name string
4646
//
4747
// Package
4848
//
49-
// os
49+
// registry
5050
//
5151
// Author
5252
//
53-
// - Vyrus
53+
// - Vyrus (https://github.com/vyrus001)
5454
//
5555
// Javascript
5656
//
@@ -84,11 +84,11 @@ func (e *Engine) AddRegKeyExpandedString(registryString string, path string, nam
8484
//
8585
// Package
8686
//
87-
// os
87+
// registry
8888
//
8989
// Author
9090
//
91-
// - Vyrus
91+
// - Vyrus (https://github.com/vyrus001)
9292
//
9393
// Javascript
9494
//
@@ -122,11 +122,11 @@ func (e *Engine) AddRegKeyBinary(registryString string, path string, name string
122122
//
123123
// Package
124124
//
125-
// os
125+
// registry
126126
//
127127
// Author
128128
//
129-
// - Vyrus
129+
// - Vyrus (https://github.com/vyrus001)
130130
//
131131
// Javascript
132132
//
@@ -160,11 +160,11 @@ func (e *Engine) AddRegKeyDWORD(registryString string, path string, name string,
160160
//
161161
// Package
162162
//
163-
// os
163+
// registry
164164
//
165165
// Author
166166
//
167-
// - Vyrus
167+
// - Vyrus (https://github.com/vyrus001)
168168
//
169169
// Javascript
170170
//
@@ -198,11 +198,11 @@ func (e *Engine) AddRegKeyQWORD(registryString string, path string, name string,
198198
//
199199
// Package
200200
//
201-
// os
201+
// registry
202202
//
203203
// Author
204204
//
205-
// - Vyrus
205+
// - Vyrus (https://github.com/vyrus001)
206206
//
207207
// Javascript
208208
//
@@ -236,11 +236,11 @@ func (e *Engine) AddRegKeyStrings(registryString string, path string, name strin
236236
//
237237
// Package
238238
//
239-
// os
239+
// registry
240240
//
241241
// Author
242242
//
243-
// - Vyrus
243+
// - Vyrus (https://github.com/vyrus001)
244244
//
245245
// Javascript
246246
//
@@ -272,11 +272,11 @@ func (e *Engine) DelRegKey(registryString string, path string) error {
272272
//
273273
// Package
274274
//
275-
// os
275+
// registry
276276
//
277277
// Author
278278
//
279-
// - Vyrus
279+
// - Vyrus (https://github.com/vyrus001)
280280
//
281281
// Javascript
282282
//
@@ -309,11 +309,11 @@ func (e *Engine) DelRegKeyValue(registryString string, path string, valueName st
309309
//
310310
// Package
311311
//
312-
// os
312+
// registry
313313
//
314314
// Author
315315
//
316-
// - Vyrus
316+
// - Vyrus (https://github.com/vyrus001)
317317
//
318318
// Javascript
319319
//

engine/vm_functions.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,26 +31,30 @@
3131
// Library os
3232
//
3333
// Functions in os:
34-
// AddRegKeyBinary(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyBinary
35-
// AddRegKeyDWORD(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyDWORD
36-
// AddRegKeyExpandedString(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyExpandedString
37-
// AddRegKeyQWORD(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyQWORD
38-
// AddRegKeyString(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyString
39-
// AddRegKeyStrings(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyStrings
40-
// DelRegKey(registryString, path) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.DelRegKey
41-
// DelRegKeyValue(registryString, path, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.DelRegKeyValue
4234
// EnvVars() - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.EnvVars
4335
// FindProcByName(procName) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.FindProcByName
4436
// GetEnvVar(vars) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.GetEnvVar
4537
// GetProcName(pid) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.GetProcName
4638
// InstallSystemService(path, name, displayName, description) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.InstallSystemService
47-
// QueryRegKey(registryString, path) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.QueryRegKey
4839
// RemoveServiceByName(name) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.RemoveServiceByName
4940
// RunningProcs() - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.RunningProcs
5041
// Signal(signal, pid) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.Signal
5142
// StartServiceByName(name) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.StartServiceByName
5243
// StopServiceByName(name) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.StopServiceByName
5344
//
45+
// Library registry
46+
//
47+
// Functions in registry:
48+
// AddRegKeyBinary(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyBinary
49+
// AddRegKeyDWORD(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyDWORD
50+
// AddRegKeyExpandedString(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyExpandedString
51+
// AddRegKeyQWORD(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyQWORD
52+
// AddRegKeyString(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyString
53+
// AddRegKeyStrings(registryString, path, name, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.AddRegKeyStrings
54+
// DelRegKey(registryString, path) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.DelRegKey
55+
// DelRegKeyValue(registryString, path, value) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.DelRegKeyValue
56+
// QueryRegKey(registryString, path) - https://godoc.org/github.com/gen0cide/gscript/engine/#Engine.QueryRegKey
57+
//
5458
package engine
5559

5660
import (

0 commit comments

Comments
 (0)