Un peut d'aide pour une messagebox...

Résolu
zerolol Messages postés 6 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 30 janvier 2006 - 29 août 2005 à 12:09
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.
A voir également:

6 réponses

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
29 août 2005 à 12:52
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
3
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
29 août 2005 à 15:23
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 )

@++
3
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
29 août 2005 à 15:27
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
...
3
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
30 août 2005 à 07:52
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...

@++
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zerolol Messages postés 6 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 30 janvier 2006
30 août 2005 à 01:32
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
0
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
ok je te remerci...

A++
0
Rejoignez-nous