ForumCrack

Nouvelle adresse ! http://www.forumcrack.com/ -- Bienvenue sur le forum de deamoncrack.new.fr -- Chan IRC #uct@EpiKnet
Nous sommes le 09 Sep 2010 7:12

Heures au format UTC + 1 heure [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet  [ 12 messages ] 

Auteur Message
 Sujet du message: Soucis avec ShowWIndow
MessagePosté: 08 Fév 2010 23:45 
Hors ligne

Inscription: 08 Fév 2010 23:40
Messages: 5
Bonjour à tous,

je suis un peu nouveau dans le monde du revers Engineering donc soyez indulgent avec moi :)

En fait j'aurais voulu supprimer un nag-screen dans un logiciel..jusque ici pas de soucis, par contre gros soucis....

En mettant mes bp sur les ShowWindow j'ai bien dû me rendre à l'évidence mais en gros...toutes les fenêtres pointes au final toutes sur le même ShowWIndow..j'ai tenté de remonter le programme pour essayer de contourner le problème mais malheureusement vaine tentative...

J'ai toujours trouvé des solutions dans les tuto de crack mais apparemment je suis tombé sur le seul logiciel ou le nag-screen partage ShowWindow avec les autres fenêtres du logiciels :/

Merci de vos réponses


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 09 Fév 2010 8:26 
Hors ligne
Triumvirat
Triumvirat

Inscription: 22 Mar 2004 17:12
Messages: 1339
sur le meme ShowWindow ? tu est sur de cela ? tous tes handles sont identiques ? et que donnent les
autres fonctions telles que CreateWindow ?

sinon, il te faut trouver un autre moyen d'approcher le probleme... il y as surement un message
d'affiche dans ton nag, ou un graphique, quelque chose qui te permette de localiser l'endroit ou il
cree cette fenetre.

etherlord


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 09 Fév 2010 10:57 
Hors ligne

Inscription: 08 Fév 2010 23:40
Messages: 5
Salut,

oui effectivement c'est assez bizarre, il y a tout d'abord une fenêtre qui s'affiche en me signalant que le programme s'initialise...puis le nag...j'appuye sur ok puis la fenêtre d'initialisation reprend la main et fini par charger le programme ...


j'ai tracé le code et j'ai trouvé qqch du style :

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A9286(C)
|
:004A9384 8B45FC mov eax, dword ptr [ebp-04]
:004A9387 80B83002000005 cmp byte ptr [eax+00000230], 05
:004A938E 0F85B1000000 jne 004A9445
:004A9394 8B45FC mov eax, dword ptr [ebp-04]
:004A9397 80B82F02000001 cmp byte ptr [eax+0000022F], 01
:004A939E 753C jne 004A93DC
:004A93A0 A140EE5900 mov eax, dword ptr [0059EE40]

j'ai pu noter dans cette partie du code qu'il y avait un embranchement qui faisait grossomodo en 4A938E : si ce n'est pas le Nag-Screen aller à 4A9445 (qui est la partie juste avant SendMessage et ShowWindow commune) sinon continuer et si Nag-Screen (en 4A939E) aller à 4A93DC qui se termine au niveau du code sur le même 4A9445 qu'avant comme indiqué ici :

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004A9266(C), :004A9274(U), :004A9371(C), :004A937F(U), :004A938E(C)
|
:004A9445 8B45FC mov eax, dword ptr [ebp-04]
:004A9448 C6803002000000 mov byte ptr [eax+00000230], 00
:004A944F 8B45FC mov eax, dword ptr [ebp-04]
:004A9452 80B82F02000001 cmp byte ptr [eax+0000022F], 01
:004A9459 0F85B5000000 jne 004A9514
:004A945F 8B45FC mov eax, dword ptr [ebp-04]
:004A9462 80B82B02000002 cmp byte ptr [eax+0000022B], 02
:004A9469 7536 jne 004A94A1
:004A946B 6A00 push 00000000
:004A946D 8B45FC mov eax, dword ptr [ebp-04]
:004A9470 E87B47FEFF call 0048DBF0
:004A9475 50 push eax
:004A9476 6823020000 push 00000223
:004A947B A140EE5900 mov eax, dword ptr [0059EE40]
:004A9480 8B4044 mov eax, dword ptr [eax+44]
:004A9483 8B8054020000 mov eax, dword ptr [eax+00000254]
:004A9489 50 push eax

* Reference To: user32.SendMessageA, Ord:0000h
|
:004A948A E849F6F5FF Call 00408AD8
:004A948F 6A03 push 00000003
:004A9491 8B45FC mov eax, dword ptr [ebp-04]
:004A9494 E85747FEFF call 0048DBF0
:004A9499 50 push eax

* Reference To: user32.ShowWindow, Ord:0000h
|
:004A949A E809F7F5FF Call 00408BA8
:004A949F EB51 jmp 004A94F2

J'ai bien remarqué qu'au niveau du push EAX en 4A9499 on voyait ressortir le handle de la pile à ce moment-là...

Je me suis dis que je puisque mon NAG contenait un bouton OK sur lequel il fallait appuyer pour le passer, on pouvait jouer là-dessus et faire que la condition appuyé soit toujours valable...malheureusement...là aussi. la boucle qui gère la fonction "j'ai appuyé" est commune à toutes les fenêtres !!!!..du coup dans le programme si je veux ouvrir une fenêtre...elle se referme instantanément...

J'ai choisi ensuite trouvé l'endroit du code ou le NAG disparaissait ici :

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A9CB0(U)
|
:004A9CA2 8B45FC mov eax, dword ptr [ebp-04]
:004A9CA5 E836FDFFFF call 004A99E0
:004A9CAA C3 ret


:004A9CAB E978B3F5FF jmp 00405028
:004A9CB0 EBF0 jmp 004A9CA2
:004A9CB2 33C0 xor eax, eax
:004A9CB4 5A pop edx
:004A9CB5 59 pop ecx
:004A9CB6 59 pop ecx
:004A9CB7 648910 mov dword ptr fs:[eax], edx
:004A9CBA 68619D4A00 push 004A9D61

En 4A9CAA le Nag disparait juste après le call...alors ni une ni deux j'ai voulu mettre un JUMP 4A9CAA au moment ou mon programme faisait :004A939E 753C jne 004A93DC (comme indiqué au début de mon post) pour passer tout l'affichage du NAG...là aussi soucis...j'ai une exception qui se lève...

Donc voilà... :/ un peu dépité et pas faute d'avoir essayé...


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 09 Fév 2010 12:46 
Hors ligne
Triumvirat
Triumvirat

Inscription: 22 Mar 2004 17:12
Messages: 1339
firens a écrit:
Je me suis dis que je puisque mon NAG contenait un bouton OK sur lequel il fallait appuyer pour le passer, on pouvait jouer là-dessus et faire que la condition appuyé soit toujours valable...malheureusement...là aussi. la boucle qui gère la fonction "j'ai appuyé" est commune à toutes les fenêtres !!!!..du coup dans le programme si je veux ouvrir une fenêtre...elle se referme instantanément...


Il faut trouver une condition pour ne travailler sur que le bouton qui t'interesse..., soit un parametre propre au bouton
(ID ressource), ou un parametre lie a la fenetre de nag (couleure, titre, etc...). Ceci dit ta methode me semble
un peu rustre....

Le nag est initie par une condition (utilisateur non enregistre), trouver la condition et l'eliminer serait plus judicieux
de mon point de vue....

Citation:
En 4A9CAA le Nag disparait juste après le call...alors ni une ni deux j'ai voulu mettre un JUMP 4A9CAA au moment ou mon programme faisait :004A939E 753C jne 004A93DC (comme indiqué au début de mon post) pour passer tout l'affichage du NAG...là aussi soucis...j'ai une exception qui se lève...


En collant un JMP, tu modifie potentiellement le flux du programme. Comment il revient a pouvoir traiter la suite des
instruction qu'il y avait avant que tu fasse le JMP ? as tu pense a preserver la pile ? A quel condition repond le JNE ?
que fait ce branchement ?

etherlord

P.S. : WinDasm, ca se fait un peu vieux, quand meme, tu as deja teste OllyDebug ?


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 09 Fév 2010 13:56 
Hors ligne

Inscription: 08 Fév 2010 23:40
Messages: 5
firens a écrit:

Le nag est initie par une condition (utilisateur non enregistre), trouver la condition et l'eliminer serait plus judicieux
de mon point de vue....


tout à fait d'accord avec toi, le soucis c'est que j'ai beau remonter dans le code, le bp se fait pour le nag et pour d'autres fenêtres...et puis j'ai aussi un gros soucis car à cet endroit :

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A54D7(C)
|
:004A54EB 5B pop ebx
:004A54EC 59 pop ecx
:004A54ED 5D pop ebp
:004A54EE C3 ret


:004A54EF 90 nop
:004A54F0 55 push ebp
:004A54F1 8BEC mov ebp, esp
:004A54F3 51 push ecx
:004A54F4 53 push ebx
:004A54F5 8945FC mov dword ptr [ebp-04], eax
:004A54F8 8B45FC mov eax, dword ptr [ebp-04]
:004A54FB 6683B8CA02000000 cmp word ptr [eax+000002CA], 0000
:004A5503 7412 je 004A5517
:004A5505 8B5DFC mov ebx, dword ptr [ebp-04]
:004A5508 8B55FC mov edx, dword ptr [ebp-04]
:004A550B 8B83CC020000 mov eax, dword ptr [ebx+000002CC]
:004A5511 FF93C8020000 call dword ptr [ebx+000002C8]

en 4A54F0 j'ai remarqué que esp+0000000 valait 4A9161 ce qui me suggère que j'arrive à 4A54F0 par l'appelle à un call dans les environs de 4A9161....je vais donc à cet endroit et je trouve :

.......
:004A9158 66BEAEFF mov si, FFAE
:004A915C E827B9F5FF call 00404A88
:004A9161 33C0 xor eax, eax
:004A9163 5A pop edx
:004A9164 59 pop ecx
:004A9165 59 pop ecx
:004A9166 648910 mov dword ptr fs:[eax], edx
:004A9169 EB17 jmp 004A9182
:004A916B E904BCF5FF jmp 00404D74
:004A9170 8B55FC mov edx, dword ptr [ebp-04]
:004A9173 A140EE5900 mov eax, dword ptr [0059EE40]
:004A9178 E81B4D0000 call 004ADE98
:004A917D E85ABFF5FF call 004050DC

il y a un call mais pas celui qui me renvoie là ou je veux...du coup..totalement perdu :/

firens a écrit:
P.S. : WinDasm, ca se fait un peu vieux, quand meme, tu as deja teste OllyDebug ?

[/quote]

Oui oui :) il est bien utile pour tracer les handle et pleins d'autres trucs, mais disons que w32dasm et plus lisible à mon goût au niveau du code


Dernière édition par firens le 09 Fév 2010 16:49, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 09 Fév 2010 16:25 
Hors ligne
Triumvirat
Triumvirat

Inscription: 22 Mar 2004 17:12
Messages: 1339
firens a écrit:
en 4A54F0 j'ai remarqué que esp+0000000 valait 4A9161 ce qui me suggère que j'arrive à 4A54F0 par l'appelle à un call dans les environs de 4A9161....je vais donc à cet endroit et je trouve :

.......
il y a un call mais pas celui qui me renvoie là ou je veux...du coup..totalement perdu :/


Bonne reflexion. Pour le coup tu a vu juste.....

effectivement...c'est pas droit ce que tu cherchait. Mais le call te rammene un peu plus haut.... apres il y as
probablement un 2eme branchement (conditionnel ?)... on peut egallement simuler les JMP par d'autres instructions....
n'oublie pas que le code en 00404A88 peut tres bien manipuler ebp d'une facon ou d'une autre..

Le probleme avec tes bouts de codes, c'est que je n'ai pas le contexte. Ni au niveau des valeures que contiennent
les registres, ni au niveau des adresses de donnees, etc..... pas de ta faute, mais c'est pas evident de comprendre du
code si tu n'as pas tout le programme qui tourne....

firens a écrit:
Oui oui :) il est bien utile pour tracer les handle et pleins d'autres trucs, mais disons que w32dasm et plus lisible à mon goût au niveau du code


Olly offre passsablement de fonctions que W32Dasm n'offre pas, mais tu n'est pas oblige de les utiliser. Perso je
trouve qu'il y as 2 fonctions extraordinaire avec Olly, c'est la possibilite de commenter ton code desassemble (info
sauvee dans un fichier, donc meme si tu recharge ton code 2 mois apres avoir travaille dessus, tu trouveras tes
commentaires), la deuxieme c'est la possiblite de donner tes labels a tes fonctions. Par exemple, si dans ton
code tu as une petee de Call 0x4967Fa, et que tu te rend compte en tracant le code que ton Call est juste
une fonction qui te retourne la longueur d'une chaine de caracteres, tu pose un label en 0x4967Fa du genre
ReturnStringLength, et partout dans le code ou il y as un appel a 0x4967Fa, tu verra Call ReturnStringLength.

T'imagine pas le temps que tu gagne avec ca, sur des codes consequents.

La possibilite d'avoir en immediat un oeil sur le dump de la memoire, avec le contenu de la pile a cote, plus les
registres, tout ca sur une page... il me semble aussi que cela aide.

Apres c'est comme tous les outils, faut un peu de temps pour le prendre en main, mais ayant moi meme fait
le passage de W32Dasm a Olly (bon, c'etait il y as pas mal de temps...), pour autant que je m'en souvienne
j'ai tres rapidemment pu faire avec Olly ce que je faisait avec W32D. Apres j'ai appris tous ces petits plus qui
nous facillitent la vie.. :). En particulier le fait de pouvoir completement 'coloriser' le code en fonction de
tes preferences. Les plugins, tres rapidemment pris en main, c'est plus que bien.

etherlord


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 10 Fév 2010 10:28 
Hors ligne

Inscription: 08 Fév 2010 23:40
Messages: 5
Citation:
sur le meme ShowWindow ? tu est sur de cela ? tous tes handles sont identiques ? et que donnent les
autres fonctions telles que CreateWindow ?


concernant les handles, comment suivre ceux-ci, j'ai vu dans Olly le nom de mes handles lors de l'appelle à ShowWindow, mais par contre...si je me base sur les valeurs stocké dans la pile...comme à chaque redémarrage d'une session de debug la valeur change...c'est un peu compliqué :/

Concerant CreateWindow...je n'ai pas trouvé de fonction de ce genre dans le programme...est-ce que c'est dans le user32 ?

Merci


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 10 Fév 2010 16:28 
Hors ligne
Triumvirat
Triumvirat

Inscription: 22 Mar 2004 17:12
Messages: 1339
CreateWindows fait effectivement partie de la lib user32.dll. Attentention, il est recommande d'utiliser
CreateWindowsEx plutot que CreateWindows, il faut toujours penser a chercher les deux. De plus, il
est parfaitement possible de charger une fonction sans qu'elle soit declarre dans la table d'import
(API GetProcAddress)

Les handles sont effectivement dynamqiues par rapport a chauqe session. C'est con mais on peut pas
tout avoir :). Par contre, le programme recupere le handle par rapport a un parametre...interesse toi a l'API
qui recupere le handle d'une fenetre active... (suis a la bourre la, pas le temps de retrouver ca dans la
doc et je m'en souvient pas froidement la...)

etherlord


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 10 Fév 2010 21:39 
Hors ligne
Crackeur de folie !!!!
Crackeur de folie !!!!

Inscription: 17 Avr 2004 3:14
Messages: 403
salut etherlord, salut firens

la deuxième partie de mon tut est sur la simulation de clic
ça peut sans doute t'aider si tu continue dans cette voie :
http://www.deezdynasty.xdir.org/cours/t ... 9.0SR1.pdf

a+


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 11 Fév 2010 11:56 
Hors ligne

Inscription: 08 Fév 2010 23:40
Messages: 5
Hello mars,

je vais voir tout ça...en tout cas merci bcp à vous deux pour vos conseils ;)

-- 11 Fév 2010 11:59 --

ah oui juste une question...

selon ton tuto avec DialogBoxParamA, j'ai beau mettre un bp DialogBoxParamA grâce au plug commandbar de olly mon prog ne break point jamais à ce niveau-là...je fais peut être une erreur :/

-- 11 Fév 2010 12:05 --

J'ai tenté aussi de bp sur cette fonction en décompilant le user32 avec W32 et effectivement mon prog ne passe jamais par cette fonction au-niveau du NAG


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 11 Fév 2010 12:26 
Hors ligne
Triumvirat
Triumvirat

Inscription: 22 Mar 2004 17:12
Messages: 1339
Dans Olly, une fois que tu a charge ton prog, bouton droit sur la fenetre principale, Search for -> Name in current module.

Cela va te montrer les fonctions importees par ton programme, tu pourra deja verifier que la fonction dont on parle
est bien importee. Si tu la trouve, bouton droit sur la fonction, tu peut faire un Set BreakPoint on every reference.

Si tu ne la trouve pas, tu auras la liste des fonctions importees, cela va peut etre te donner une idee sur la facon
dont le programme cree ce nag

etherlord


Haut
 Profil  
 
 Sujet du message: Re: Soucis avec ShowWIndow
MessagePosté: 11 Fév 2010 12:57 
Hors ligne
Crackeur de folie !!!!
Crackeur de folie !!!!

Inscription: 17 Avr 2004 3:14
Messages: 403
je ne sais pas ce qui peut remplacer DialogBoxParamA
peut être aura tu une idée en regardant ce lien alors:
http://www.woodmann.com/fravia/bbnag1.htm
sinon tu peux essayer de rechercher la pompe de message avec getdlgitem, getmessage
case 110 (WM_INITDIALOG), la valeur 111 (WM_COMMAND), le control ID de ton boutton...

de toute façon la methode simulation de clic n'est pas la plus facile,

le plus simple c'est sans doute de neutraliser le nagscreen --> tu peux peut être
essayer autre chose que juste ton JUMP 4A9CAA pour neutraliser le nagscreen car si tu as une
exception, c'est sans doute que tu as mis le bordel dans la pile --> il faudra peut être la corriger
en rajoutant des instructions qui jouent sur ebp ou esp pour que le prog se retrouve pas n'importe
ou en plein milieu de la pile aprés ton jmp

a tout hasard, tu peux regarder ce tut (premiere partie sur la supression du nagscreen)
http://www.deezdynasty.xdir.org/cours/T ... p_Mars.rar

mais bon, c'est pas toujours facile de suprimer un nagscreen...

ps: comme etherlord, je crois que c'est vraiment une bonne chose d'abandonner windasm pour ollydbg

a+


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  

Poster un nouveau sujet Répondre au sujet  [ 12 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
:: Powered by phpBB © 2000, 2007 phpBB Group :: FI Theme ::
Traduction par: phpBB-fr.com