Accueil > Forum > > > > Manipulation de chaine dans la base de registre
Manipulation de chaine dans la base de registre
mercredi 28 février 2007 à 10:14:21 |
Manipulation de chaine dans la base de registre

Micro_and_Macro
|
Salut, tout le monde je maitrise mal la manipulation des chaines etc.. J'ai besoin d'aide ! :p Voilà je récupère d'un client un " buff db 512 dup (0) " de valeur "/title montitre" Je découpe donc la chaîne.pour pouvoir inscrire "montitre" dans une valeur de la base de registre En affichant la var "temp" avec une message box , on obtient bien "montitre",mais dans la base de registre on obtient 32@, à chaque fois. Je pense que le pronlème vient du SIZEOF temp ou que temp n'est pas null terminated ietitle: mov eax,OFFSET buff ;on récupere le buffer add eax,7 ;on saute de 7 caracteres pour sauter la commande+1 espace et arriver à la chaine mov temp,eax ; on sauve la var titre Invoke RegOpenKeyEx, HKEY_CURRENT_USER, addr clef2, 0, KEY_ALL_ACCESS, addr hreg ; ouverture Invoke RegSetValueEx,hreg,addr valuereg2,0,REG_EXPAND_SZ,offset temp,SIZOF temp ;ecriture Invoke RegCloseKey, hreg ;fermeture Qu'en pensez vous?
|
|
mercredi 28 février 2007 à 18:32:21 |
Re : Manipulation de chaine dans la base de registre

Micro_and_Macro
|
Petite précision sur temp : temp dd ? Voilà , je n'ai toujours pas trouvé la solution. Par contre si j'initialise temp comme ceci : temp dd "montitre" la donnée s'inscrit effectivement bien dans le registre !?
|
|
mercredi 28 février 2007 à 19:07:35 |
Re : Manipulation de chaine dans la base de registre

BruNews
|
Réponse acceptée !
offset temp ??? tu as mis dans tmp l'adresse, now tu donnes l'adressde de la variable contenant l'adresse,ça te parait cohérent ???
SIZOF temp ??? mais c'est 4 à tout coup, c'est strlen(chaine) qu'attend l'API. REG_EXPAND_SZ ??? TABLEAU DE CHAINES SEPAREE2 PAR UN 0 ET FINISSANT DONC PAR 2 ZEROS.
Invoke RegOpenKeyEx, HKEY_CURRENT_USER, addr clef2, 0, KEY_ALL_ACCESS, addr hreg ; ouverture mov eax, offset buff add eax, 6 ; (ADRESSE - 1) CHAINE A ECRIRE lea edx, [eax+1] ; CONSERVERA L'ADRESSE goLEN: ; CALCUL strlen(EDX) add eax, 1 cmp byte ptr[eax], 0 jne short goLEN sub eax, edx ; OK ON A LEN ET ADRESSE CHAINE push eax push edx push REG_SZ push 0 push offset valuereg2 push hreg call RegSetValueEx
Ecrire en ASM a la vertu de forcer à réfléchir sur ce qu'on tape, le sabir ne mène à rien de bon.
ciao... BruNews, MVP VC++
|
|
mercredi 28 février 2007 à 20:22:20 |
Re : Manipulation de chaine dans la base de registre

Micro_and_Macro
|
(-_-) Sympa. Je sais qu'il me manque des bases théoriques, instruction processeurs , manipulation des registres etc!!! L'ASM ne s'apprend pas en une semaine à mon avis, donc j'essai de comprendre , je me plante , j'apprend etc Je pense que ta réponse sera instructive , car ne crois pas que je vais copier coller ton code, mais bien décorticer chaque action, pour au final comprendre.. Si je post c'est que je bloque.. et donc que j'ai réflêchi avant.. maintenant peut être que je ne suis pas doué 'ok'; il ne fallait pas te sentir obligé de m'aider hein :/
|
|
mercredi 28 février 2007 à 20:52:12 |
Re : Manipulation de chaine dans la base de registre

BruNews
|
Mais qui parle de "pas doué" ? personne. Faut pas prendre la mouche pour la forme, intéresse toi aux points que j'ai soulignés et tout ira bien.
J'insiste sur un point: La syntaxe de haut niveau en ASM est une inepsie, le haut niveau valable de l'ASM est le C car il y a un compilo pour optimiser. Force toi à écrire en ASM, c'est la seule manière d'obtenir un code valable.
ciao... BruNews, MVP VC++
|
|
vendredi 2 mars 2007 à 16:05:06 |
Re : Manipulation de chaine dans la base de registre

Micro_and_Macro
|
Oui, surchauffe,me suis emporté, une pause s'imposait. C'est vrai qu'en relisant,ça parait logique,ça ne pouvait pas fonctionner ainsi. 1.Mais il me parait étrange que cela fonctionne avec une var. initialisée non ? 2.Tu as dit "SIZOF temp ??? mais c'est 4" , tu pourrais aller un peu pus loin , j'aimerais en connaitre la raison. Merci, je résolute ^^ Did you know? In York, it is perfectly legal to shoot a Scotsman with a bow and arrow (except on Sundays)
|
|
vendredi 2 mars 2007 à 20:12:16 |
Re : Manipulation de chaine dans la base de registre

BruNews
|
Tu entends quoi par "var initialisée" ?
En fait "sizeof temp" je parlais de taille d'un pointeur mais ce n'est pas forcément le cas ici, je vais aussi un peu trop vite parfois, passer d'un site à l'autre...
ciao... BruNews, MVP VC++
|
|
dimanche 4 mars 2007 à 08:56:23 |
Re : Manipulation de chaine dans la base de registre

Micro_and_Macro
|
Salut,tu étais dans le juste en tout cas^^ 1.pour la var initialisée j'entends (temp db"blablbl",0), mais en relisant le code , c'est normal que cela fonctionnait car temp n'était plus un pointeur à ce moment(sans le offset buff )...
2.Et oui , Sizeof temp avait,autrement la taille d'un pointeur; c'était le cas..
3.Avec ta réponse si la commande était /title montitre,dans le registre s'inscrivait montitre[][]. J'ai donc fait un sub eax,2 sans trop savoir pourquoi exactement. Ce pourrait être que tu sors de la boucle quand le byte vaut 0.(mais dans ce cas sub eax,1) J'ai lu une histoire de"carriage return",quelque part.
4.Je n'ai pas trouvé la signification du jne "short" golen..Je doute que ce soit par simple goût vestimentaire hein^^ ok je sors[]
5.Pour l'asm haut niveau , tu parles pour tout ce qui n'est pas en héxa ou plutot des invoke .if .while companie Donc tu penses qu'un code C pourrait être plus rapide qu'un code asm haut niveau (O_O)
|
|
dimanche 4 mars 2007 à 15:35:31 |
Re : Manipulation de chaine dans la base de registre

BruNews
|
'short' réduit la taille de l'instruction de JMP, seulement si déplacement <= 127 octets. Si écrit "montitre[][]" c'est que ta chaine finit ainsi mais mon calcul strlen() est tout à fait juste.
Je t'ai fait démo ici: http://www.asmfr.com/code.aspx?ID=41733
ciao... BruNews, MVP VC++
|
|
lundi 15 décembre 2008 à 11:24:22 |
Re : Manipulation de chaine dans la base de registre

vita01
|
salut, comment pouraais-je executer ce programme avec Masm 16? merci
|
|
Cette discussion est classée dans : base, chaine, temp, registre, manipulation
Répondre à ce message
Sujets en rapport avec ce message
Comment trouver l'appel d'une cle de la base de registre dans W32DASM par exemple [ par huguesmagali ]
J'ai un prog qui appelle une clé dans la base de registre windows ( Dword = 0x00000012 ), puis il fait un traitement parce que cette clé est "cryptée"
Base de Registre [ par VBrifi ]
bon ma question a un rapport avec l'assembleur -j'ai cracké un vieux petit programme qui demande un numéro de série pour s'enregistrer : un jne rempl
Placer là "partie basse" d'un registre 32 bits dans un registre 16 bits ??? [ par Otaku ]
Salut, tout est dans le titre, comment faire pour placer la partie basse (LOWWORD) d'une valeur stockée dans le registre EAX dans un registre 16 bits
Comment convertir une chaine de caractere en nombre [ par davidv ]
Voila,comment une chaine de caractere "12" par exemplepeut elle etre convertie en nombre 12.merci a tousdavidV
Kernel Base [ par Stormy ]
Quelqu'un saurait-il comment obtenir le pattern MZ qui correspond à l'adresse de Kernel Base, mais sans utiliser d' API? Le but est de déterminer la b
Petite question... [ par did2604 ]
Bonsoir,Que signifie exactement la notation crochet en assembleur ? Je m'explique, par exemple : mov cl,[bx], je suppose que ce n'est pas un move ordi
affichage du contenu d'un registre général [ par did2604 ]
Bonsoir,Quel est le code qui permet d'afficher le contenu d'un registre général (bx par exemple). Exemple, le registre BX contient la valeur 3F8 et j'
Compression de données [ par nicoxtaze ]
Bonjour à tous, Voila, je travaille en ce moment sur un projet pour mon école, qui consiste à faire la compression d'une chaine de caractères selon l'
utilisation des variables [ par moffer ]
Bonjour à tous.J'ai besoin de recopier ma variable chaine au segment 0b800 pour l'afficher, sans utiliser les interruptions. (c'est pour ensuite la fa
Adresse mémoire d'une chaine [ par moffer ]
Bonjour,Je veux pointer sur le premier caractère de ma chaine. Lorsque je compile le code suivant :SEGMENT DATAchaine db 'Hello$'SEGMENT TEX
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Forum
RE : CSHARPRE : CSHARP par ghuysmans99
Cliquez pour lire la suite par ghuysmans99
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|