Base de registre et transfere de bmp dans system32

Soyez le premier à donner votre avis sur cette source.

Vue 5 263 fois - Téléchargée 274 fois

Description

Programme simple pour particulier ou professionnel, on prend un logo que l' on place dans System32, puis on touche au registre pour y mettre l' adresse du BMP mais aussi les coordonnées de l' entreprise ou de la personne qui gère le SAV du PC.

Source / Exemple :


Tous est dans le zip,
p0m1.bmp = Image 90X90 pixel
p0m1.ico = icone du programme
SAV_p0m1.asm = Source
data.inc = source
rsrc.rc = pour que l' icone soit prise en compte

Make asm.bat = Build to MASM32
SAV_p0m1.wap = pour l' editeur  WinAsm

SAV_p0m1.exe = éxécutable
SAV_p0m1.jpg = résultat visuel (windows+pause)
SAV_p0m1.reg = ce que l'on touche a la base de registre

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
41
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
4 octobre 2012

lol monologue^^
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
j'ai confondu avec le "near" autant pour moi.
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

Je ne suis pas sur que le "jne short" serve a quelquechose étant donné qu'il transforme un dword en word et non en byte. La transformation byte étant fait automatiquement avec masm.

Cela doit donner un db 0x66+jne word.

@++
Messages postés
4
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
8 mars 2010

Merci
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
PROG TESTE ET FONCTIONNANT

J'ai fait sur VC++, je n'utilise plus MASM depuis des lustres.
La syntaxe est idem, c'est pur ASM.
J'ai juste changé les chaines pour retrouver le bmp et les entrées dans la BDR afin de nettoyer.

#include <windows.h>

char szappname[] = "TrnsBmp";
char szMybmp[] = "aaa.bmp";
char szRegKey[] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\OEMInformation";
char szRegKeyValueMOV[] = "Powered by BruNews";
char szRegKeyValueMO[] = "Model";


__declspec(naked) void __stdcall myWinMain()
{
__asm {
lea eax, [esp - 272]
mov edx, 264
mov esp, eax ; buffer[264] + handle en [esp+264] + ESI
mov [eax + 268], esi

push edx
push eax
call dword ptr GetSystemDirectory
lea edx, [esp + eax] ; sur fin de sysDir
mov ecx, offset szMybmp
mov esi, esp ; ESI = ADDR chaine
mov byte ptr[edx], 5Ch ; '\'
cpyBMP:
mov al, byte ptr[ecx]
add edx, 1
add ecx, 1
mov [edx], al
test al, al
jne short cpyBMP

push 0
push esi ; ADDR chaine newFileName
push offset szMybmp
call dword ptr CopyFile
lea edx, [esi + 264] ; ADDR handle
test eax, eax
je progEND ; inutile aller plus loin si pas copie

push edx
push KEY_SET_VALUE
push 0
push offset szRegKey
push 80000002h ; HKEY_LOCAL_MACHINE
call dword ptr RegOpenKeyEx
mov esi, [esp + 264] ; ESI = handle BDR
test eax, eax
jne progEND

push 19 ; TAILLE de szRegKeyValueMOV AVEC 0 final
push offset szRegKeyValueMOV
push REG_SZ
push 0
push offset szRegKeyValueMO
push esi
call dword ptr RegSetValueEx
test eax, eax
jne closeBDR
; POUR LA SUITE ON CONSIDERERA OK ECRITURE VU QUE 1er REUSSI

; Comme tout est bon, tu continueras seul les 5 RegSetValueEx suivants


; ICI POUR TEST QUE EST ALLE JUSQU'AU BOUT
mov eax, esp
push 0
push offset szappname
push eax
push 0
call dword ptr MessageBox

closeBDR:
push esi
call dword ptr RegCloseKey
progEND:
pop esi
add esp, 268
push 0
call dword ptr ExitProcess
ret 0
}
}
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.