Un peut d'aide pour une messagebox... [Résolu]

Messages postés
6
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2006
- - Dernière réponse : zerolol
Messages postés
6
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2006
- 31 août 2005 à 12:00
Salut

Voila je cherche un autre facon de créé une messagebox autre que ceci...

invoke MessageBox, NULL,addr MsgBoxText2, addr MsgCaption2, MB_OKCANCEL
cmp eax, IDCANCEL

et ci vous avez des exemple pour cacher le code pour qu'on ne puisse pas trouver
ex un message d'erreur avec un debuger sans a avoir a utiliser un packer...

merci.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
26 mars 2016
1
3
Merci
Salut,
Pour se compliquer la vie,pas de problème .Faire appel a une dialog box , de preference générer a l'execution (et non pas dans le fichier de ressource ,c'est trop simple!).
Masm contient des macros pour faire ça.Le fichier doit s'appeler dlg quelque chose.
On peut aussi faire appel a une feuille fille,et générer la boite par createwindowsex.

ToutEnMasm

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 199 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ToutEnMasm
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
3
Merci
salut,

pour proteger un programme, il faut savoir comment le cracker.

pour cacher une chaine, on peut l'inclure directement dans le code:

maProc PROC p1:DWORD;...
;jmp @F
; azUser32 db "user32.dll",0,0 ; chaines a "xorer" suivant le code + bas
; azMsgBox db "MessageBoxA",0
; azMsg db "chaine inclue dans le code",0
;@@:
lea edx,azUser32
xor [edx],0AAAAAAAAh
xor [edx+4],055555555h
xor [edx+8],0AAAAAAAAh
invoke GetModuleHandle,edx
and eax,eax
lea edx,azMsgBox
je sortie
xor [edx],0AAAAAAAAh
xor [edx+4],055555555h
xor [edx+8],0AAAAAAAAh
invoke GetProcAddress, eax,edx
and eax,eax
lea edx,azMsg
push MB_OKCANCEL
push 0 ; par defaut, windows affichera "Erreur"
push edx
push 0
je sortie
xor [edx],0AAAAAAAAh
...
call eax
lea esp,[esp+4*4] ; optionnel si leave
sortie:
ret
azUser32 db "user32.dll",0,0 ; chaines a "xorer" suivant le code + haut
azMsgBox db "MessageBoxA",0
azMsg db "chaines inclues dans le code",0
maProc ENDP

un bpx avec softice sur MessageBoxA donnera toujours ce qu'on veut.

autrement que de chercher a faire une solution anti-debugger, on peut aussi commencer a emuler le debut du code de la fonction MessageBoxA et sauter a une adresse inferieure.

comme un bpx sur l'ensemble du code de la fonction permettra tj de nous reperer, on peut faire de meme avec createwindowsex ou autres...

on peut aussi inclure du code dans une exception. ( div 0, ou GPF )

@++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 199 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
3
Merci
oups, petite erreur !!!

invoke GetProcAddress, eax,edx
and eax,eax
lea edx,azMsg
je sortie
push MB_OKCANCEL
push 0 ; par defaut, windows affichera "Erreur"
push edx
push 0
xor [edx],0AAAAAAAAh
...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 199 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
3
Merci
salut,

c'est tout a fait possible
il faut simplement reouvrir ton exe en mode partagé pour la lecture et
soit lire directement le bloc qui t'interesse et appliquer un checksum perso,
soit mapper le fichier et verifier a des emplacement precis que le code est bon.

pourquoi pas les 2 a des emplacement différents...

@++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 199 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_patatalo
Messages postés
6
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2006
0
Merci
Salut merci pour vos reponce.

C'est sur "patatalo"quon peut toujours trouver un messagebox mais bon le but ici c'est simplement que le message ne soi pas visible directement.
C'est pour un crackme de niveau moyen je ne veut encore mettre de packer ni d'anti-debug.
J'ai simplement augmenté l'algo pour le serial et je veut trouver une soluce pour pas voir les messages sous ollydbg... parce que ce debuger est assé balaise.

PS: Est ce que c'est possible de faire verifier une fonction au code asm pour voir ci elle toujours presente sans avoir a installer une protection par checksum pour le programme complet.

merci
Commenter la réponse de zerolol
Messages postés
6
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2006
0
Merci
ok je te remerci...

A++
Commenter la réponse de zerolol