Bonjour,
j'ai créé un petit prog en assembleur avec winasm qui me permet de créer une clef dans ma base de registre jusque là tout va bien.
maintenant je voudrais créer une valeur dword32bits dans ma clef de registre et cela ne fonctionne pas.
HKEY_CURRENT_USER\SOFTWARE\Monprog\test
Ma clef DWORD:12345
lorsque j'exécute le code, il crée bien ma clef et tout et tout mais lorsque j'ouvre regedit pour aller voir si c'est correct,
La valeur 12345 qu'il m'a mise, il est indiqué valeur dword32bits non valide.
or si je clique sur Ma clef Dword et que je regarde la valeur, il y est bien inscrit 12345
quand je regarde une autre clef dword d'un programme installé, la valeur apparait comme ceci "0x0000(0)"
est-ce que mon problème se situe au niveau du formatage dans mon code?
voici mon code simplifié pour une meilleure compréhension
merci d'avance à ceux qui y comprendront quelque chose.
.386
.model flat, stdcall
option casemap : none
.data
AppName db "Mon prog", 0
AppHWnd dd 0
hKey dd 80000001h ;HKEY_CURRENT_USER
lpValueName db 'Ma clef DWORD',0
lpData db '12345',0
cbData dd 5h
lpSubKey db 'SOFTWARE\Monprog\test', 0
phkResult dd 0
lpdwDisposition dd 0
.code
generator:
push offset lpdwDisposition
push offset phkResult
push 0
push 1F0000h + 1 + 2h
push 0
push 0
push 0
push offset lpSubKey
push hKey
call RegDeleteKey
push offset lpdwDisposition
push offset phkResult
push 0
push 1F0000h + 1 + 2h
push 0
push 0
push 0
push offset lpSubKey
push hKey
call RegCreateKeyExA
;call RegEnumValue
push cbData
push offset lpData
push REG_DWORD ;REG_SZ equ 1
;REG_BINARY equ 3
;REG_DWORD equ 4
;REG_DWORD_LITTLE_ENDIAN equ 4
;REG_DWORD_BIG_ENDIAN equ 5
push 0
push offset lpValueName
push phkResult
call RegSetValueExA
push 0
call RegCloseKey
push 0
invoke MessageBox, NULL, ADDR abtmsg1, ADDR AppName, MB_OK
call ExitProcess
end start