EnumRegistryPeristence get all the potential registry values used for persistence
()
| 46 | |
| 47 | // EnumRegistryPeristence get all the potential registry values used for persistence |
| 48 | func EnumRegistryPeristence() (values []RegistryValue, errors []error) { |
| 49 | |
| 50 | keys := []registry.Key{registry.USERS, registry.LOCAL_MACHINE} |
| 51 | subkeys := []string{`SOFTWARE\Microsoft\Windows\CurrentVersion\Run`, `SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce`} |
| 52 | |
| 53 | for _, k := range keys { |
| 54 | for _, s := range subkeys { |
| 55 | v, err := EnumRegHivePersistence(k, s) |
| 56 | if err != nil { |
| 57 | errMsg := fmt.Errorf("%s\\%s - %s", GetRegistryHiveNameFromConst(k), s, err) |
| 58 | errors = append(errors, errMsg) |
| 59 | } |
| 60 | |
| 61 | for _, value := range v { |
| 62 | values = append(values, value) |
| 63 | } |
| 64 | |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | return values, errors |
| 69 | } |
| 70 | |
| 71 | // GetRegistryHiveNameFromConst format registry.Key hive name as a string |
| 72 | func GetRegistryHiveNameFromConst(key registry.Key) string { |
no test coverage detected