Comment spécifier les entrées REG_EXPAND_SZ dans un fichier .REG?
9
J'essaie d'utiliser un script de commandes et un .regfichier pour configurer certains services personnalisés. La plupart des clés sont configurées correctement, mais je dois définir la DependOnServiceclé pour certains services, qui sont normalement des chaînes multiples. Est-il possible de définir cette clé à partir d'un .regfichier ou une saisie manuelle sera-t-elle requise?
REG_MULTI_SZles données des .regfichiers doivent être encodées en hexadécimal. Si le contenu ne change jamais, vous pouvez créer un élément factice dans votre registre avec les données, l'exporter et l'adapter à vos besoins.
Si cela change, il sera probablement beaucoup plus facile d'utiliser le regprogramme inclus avec Windows pour l'ajouter. Pour ce faire, appelez regdans ce format:
L'interrupteur séparateur est facultatif. S'ils ne sont pas utilisés, les chaînes à écrire doivent être séparées par la séquence d'échappement pour le caractère nul ( \0). Par exemple, pour ajouter un élément nommé Flairà HKLM\SOFTWARE\WhizBang\Excite-O-Ramades chaînes foo, baret bazvous courriez:
Excellente réponse (en utilisant un .batfichier avec une regcommande au lieu d'un .regfichier), mais pourquoi parle-t-il de REG_MULTI_SZ lorsque la question concerne REG_EXPAND_SZ?
Norswap
0
dword: = DWORD
hex(2): = Chaîne extensible
hex(7): = Multi-String
A DWORDest un entier non signé 32 bits (plage décimale: 0- 4294967295) et, dans le registre, a DWORDcommence toujours par 0xet comporte 8 chiffres qui suivent 0x. Cela peut être au format décimal ou hexadécimal; par exemple, 1000peut être écrit comme 0x00001000ou 0x000003e8.
DWORDSne peut utiliser que les chiffres 0- 9. Les chaînes, de toute sorte, utilisent toujours ASCII, et en ACSII, 1000ne peuvent être écrites qu'en 31,30,30,30. Pour le type de données String, ASCII fonctionne en arrière-plan sans même que vous le sachiez car l'ordinateur ne comprend que les 1 et les 0.
Pour les types de données à chaîne extensible et à chaînes multiples, ceux-ci enregistrent vos entrées sous la forme d'une série de codes ASCII au format hexadécimal, séparés par des virgules et des zéros hexadécimaux; donc une chaîne extensible 1000seraithex(2):31,00,30,00,30,00,30,00
Convertissons %PROGRAMFILES%en une chaîne extensible:
Utilisez un outil de conversion ASCII en hexadécimal , entrez %PROGRAMFILES%dans la zone de texte, délimiteur de sortie défini par l'utilisateur:, %sélectionnez Convertir, et cela vous donnera:
%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25
Copiez / collez le résultat dans un éditeur de texte: déplacez le premier %à la fin, recherchez / remplacez tout %par ,00,et supprimez la virgule à la fin de la chaîne. Tu devrais obtenir:
Cette leçon contient toutes les connaissances nécessaires pour effectuer une rétro-ingénierie de toute entrée de registre à code hexadécimal non chiffrée.
Le lien hotfile est juste une archive 7z avec une page html (qui contient le convertisseur) stockée à l'intérieur. Pourquoi ne pas simplement créer un lien vers la page Web elle-même?
John Bensin
1
Pour éviter la pourriture des liens, veuillez publier toutes les informations pertinentes dans votre réponse. pour plus d'informations sur la façon de répondre aux questions, veuillez consulter Comment répondre
.bat
fichier avec unereg
commande au lieu d'un.reg
fichier), mais pourquoi parle-t-il de REG_MULTI_SZ lorsque la question concerne REG_EXPAND_SZ?dword:
=DWORD
hex(2):
= Chaîne extensiblehex(7):
= Multi-StringA
DWORD
est un entier non signé 32 bits (plage décimale:0
-4294967295
) et, dans le registre, aDWORD
commence toujours par0x
et comporte 8 chiffres qui suivent0x
. Cela peut être au format décimal ou hexadécimal; par exemple,1000
peut être écrit comme0x00001000
ou0x000003e8
.DWORDS
ne peut utiliser que les chiffres0
-9
. Les chaînes, de toute sorte, utilisent toujours ASCII, et en ACSII,1000
ne peuvent être écrites qu'en31,30,30,30
. Pour le type de données String, ASCII fonctionne en arrière-plan sans même que vous le sachiez car l'ordinateur ne comprend que les 1 et les 0.Pour les types de données à chaîne extensible et à chaînes multiples, ceux-ci enregistrent vos entrées sous la forme d'une série de codes ASCII au format hexadécimal, séparés par des virgules et des zéros hexadécimaux; donc une chaîne extensible
1000
seraithex(2):31,00,30,00,30,00,30,00
Convertissons
%PROGRAMFILES%
en une chaîne extensible:%PROGRAMFILES%
dans la zone de texte, délimiteur de sortie défini par l'utilisateur:,%
sélectionnez Convertir, et cela vous donnera:%
à la fin, recherchez / remplacez tout%
par,00,
et supprimez la virgule à la fin de la chaîne. Tu devrais obtenir:Cette leçon contient toutes les connaissances nécessaires pour effectuer une rétro-ingénierie de toute entrée de registre à code hexadécimal non chiffrée.
la source