begin process at 2012 05 25 03:38:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

Ecrire registre valeur dword32


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ecrire registre valeur dword32

samedi 3 janvier 2009 à 14:08:26 | Ecrire registre valeur dword32

goldofff

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
lundi 5 janvier 2009 à 09:20:34 | Re : Ecrire registre valeur dword32

BruNews

Administrateur CodeS-SourceS
Tu parles de mettre un DWORD et tu envoies l'adresse d'une chaine de caractère, faudrait un peu de cohérence.

ciao...
BruNews, MVP VC++
lundi 5 janvier 2009 à 11:39:12 | Re : Ecrire registre valeur dword32

goldofff

Salut,

si je voyais mon erreur, je ne demanderait pas de l'aide.

J'ai regardé dans la msdn pour trouver une explication sur le formatage d'un dword et je n'ai rien trouvé qui a éclairé ma lanterne.

donc si tu as un exemple, je suis preneur.

merci d'avance.
lundi 5 janvier 2009 à 12:16:25 | Re : Ecrire registre valeur dword32

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

Mais enfin, un DWORD ne se "formate" pas.
Il faut donner l'adresse d'un DWORD (valeure binaire sur 4 octets).

lpData db  '12345',0
REMPLACER PAR:
dwData  DD  12345 ; VALEUR DWORD BINAIRE

push 4 ; 4 OCTETS EST TAILLE DWORD
push offset dwData
push REG_DWORD
push 0
push offset lpValueName
push phkResult
call RegSetValueExA

ciao...
BruNews, MVP VC++

lundi 5 janvier 2009 à 15:34:13 | Re : Ecrire registre valeur dword32

goldofff

Merci ,

Je ne vois pas pq tu es faché !

Ca te parait peut-etre évident, moi pas ! Bien entendu comme cela ça devient plus clair.

Merci encore de m'avoir aidé.

lundi 5 janvier 2009 à 15:53:50 | Re : Ecrire registre valeur dword32

BruNews

Administrateur CodeS-SourceS
passionné seulement, pas faché du tout.

ciao...
BruNews, MVP VC++
lundi 5 janvier 2009 à 16:11:42 | Re : Ecrire registre valeur dword32

goldofff

Content de ne pas avoir faché quelqu'un.

et je suis aussi passioné par ce que je découvre.

Mais il n'est pas facile de se documenter facilement sur certaines choses

comme par exemple pourquoi DD au lieu de DB etc.

je découvre cela au fur et à mesure et c'est très prenant.

encore merci.
lundi 5 janvier 2009 à 16:20:57 | Re : Ecrire registre valeur dword32

BruNews

Administrateur CodeS-SourceS
DD
define DoubleWord
réservation de 4 octets.

DB
define Byte(s)
réseve autant d'octets (chaine ou non) que tu en auras mis derriere le déclarateur.

etc...

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : valeur, clef, dword, offset, push


Répondre à ce message

Sujets en rapport avec ce message

LecteurEstDvd asm inline [ par AlexMAN ] Bonjour, Voila j'ai un ptit pb au nivo, je pense, de l'appel de la fonction DeviceIoControl, le code : //Fonction Cint __stdcall LecteurEstDvd(char *p md.dll, comment utiliser md5() ? [ par Noit ] J'ai récupéré la dll sur le site de WiteG(le lien se trouve sur le site asmfr)J'arrive à compiler le programme suivant avec masmmais en débuggant il s Afficher valeur registre ? [ par Zootella ] Hello all, dans un programme, celui-çi test la valeur d'un registre : cmp  dword ptr [eax],4550h je voudrais faire des tests et afficher cette vale [Nasm - Alink - WIn32] Probleme avec SetWindowsHookEx [ par jean84 ] Salut à tous ;)Je me permet de poser une chtite question car après avoir passé du temps à chercher la réponse à mon problème, bah j'ai toujours pas tr ça marche pas, aide ... [ par iscalibar ] Bonjour, j'ai un petit probleme, j'ai ecris un program pour le compilateur masm32 qui ne fai que afficher une fenetre, mai malheureusement ça marche p Problemme avec mes character... XD [ par belette321 ] J'esseil d'ajouter une commande administrateur a dans un des mes jeux en-ligne, /admin_popup (Fait apparaitre un MSG dans une boite dans le lobby). Un BeginPaint code débutant [ par TRAX44 ] Bonjour, le problème est tout simple je comprends absolument pas ce qui marche pas. Le "programme" est censé créer une fenêtre est afficher du texte e Traitement message WM_PAINT [ par AlexMAN ] Bonsoir, je vous explike : j'ai une dialog box modeless, mon pb c ke lors de l'affichage de la boite de dialogue, celle ci prend en fond la fenetre se une librairie [ par rhumsek ] slt mon prog contient une erreur d'après ma compilationje ne la voie pas pouvez vous m'aidé??TITLE Test de la librairieINCLUDE Irvine32.libCR=0DhLF=0A GetProcAddress d'une procédure dans une Dll [ par biloute54 ] bonjour, j'essaie d'appeler une procédure dans une DLL, mais GetProcAddress me retourne 0 [u]programme principal :[/u] [code=autre] dll DWORD ? fnc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales