Page 11 sur 12

Publié : mer. 17/août/2005 22:47
par AYBABTU
Bon j'ai pu prendre en main un windows en remote desktop, et debugger ton truc. Donc on arrive a un rond rose pale, avec un caré jaune qui se balade dedans, et la souris qui peut pas en sortir... Je vais voir pour te donner nom et serial correspondant maintenant, voir coder un keygen si possible, mais ca va donner des serials avec des caracteres non imprimables. Peut etre en 'injectant' le serial via le handle de l'edit, on va voir ca...

Pour l'algo en speed, ca prend la valeur ascii de la Xeme lettre du nom, ca l'ajoute a la valeur ascii de la Xeme lettre du serial, ca concatene ca dans une string en decimal, et c'est comparer avec une constante. Voila

Publié : mer. 17/août/2005 22:59
par Backup
8O

:lol: :lol: :lol: :lol:

bon ben celui-la c'est pas un manche :lol: :lol:

Bravo msieu , et t'a pu passer le timer ?

ps : pour la souris click bouton droit !

Publié : mer. 17/août/2005 23:04
par Oliv
AYBABTU a écrit :
Oliv a écrit :
AYBABTU a écrit : pas en WinDev...).
Tu es sur un forum poyr PUREBASIC, ne l'oublions pas..... Certains selectionnent des messages, d'autres oublient le sujet du forum :lol:
Je sais très bien que c'est un forum PureBasic, c'est suffisament écrit gros en haut pour le savoir :) Mais comme PureBasic m'a l'air d'etre un langage sympa (sans avoir testé) je prefere dire que WinDev n'est pas un vrai langage parce que je sais que certain le pratique ici. (sans vouloir viser quelqu'un)

gangsta93, retourne chez ta maman et laisse les grandes personnes parler entres elles.

Dobro, je parlais du niveau de Zorglub, pas du mien. Encore une fois quelqu'un qui fait un raccourcis facile... Suffit que je parle de cracking pour que je sois un adolescent boutonneux, pretentieux, vaniteux, qui pense etre une leet ? tsss...

De toute facon il m'est tout a fait impossible de faire ce crackme, étant donné que je suis sous linux. Je veux bien le lancer avec Wine mais pas possible de le debugger. Je peux prevenir des personnes si tu veux, c'est le max. que je puisse faire ce soir.

EDIT: Ca plante sous Wine de toute facon, je peux meme pas voir a quoi ca ressemble.
Je vois que tu as essayé donc ce message et en partie faux, mais tu demandes des cracks-me et après tu rales qu'ils ne sont pas "comme tu veux"


Gansta93 : C'était justement pour te montrer que tes 3-4 derniers messages ne servent à rien :wink:
Certaines personnes donnent leur avis, même si on leur dit qu'il sont pathétiques ou autre..... :wink:

Publié : mer. 17/août/2005 23:13
par AYBABTU
Oliv a écrit : Je vois que tu as essayé donc ce message et en partie faux, mais tu demandes des cracks-me et après tu rales qu'ils ne sont pas "comme tu veux"
Hum tu dois pas connaitre Wine. Wine est un programme qui permet de faire fonctionner certains logiciels windows sous linux. Mais je dis bien fonctionner, et pas debugger. Je peux pas lancer mon debugger avec wine, il tournerait pas sous linux. Donc au moment de l'edit, non je n'avais pas testé sous windows. Il plantait sous wine, cad sous linux, et c'etait tres surement normal (c'est en testant sous windows ensuite, en remote desktop, cad depuis ma machine sous linux, en me connectant sur une machine sous windows xp et en en prennant le controle, que j'ai vu que le plantage était normal et qu'il avait lieu meme sous windows)

Dobro, tu ne vois pas de probleme a ce que je continue ca demain ? Il commence a se faire tard, et j'ai des obligations demain matin.

Publié : mer. 17/août/2005 23:14
par Backup
pour moi t'a deja reussi le chalenge ! :D

Publié : mer. 17/août/2005 23:15
par AYBABTU
Dobro a écrit :pour moi t'a deja reussi le chalenge ! :D
lol merci, bonne nuit alors.

Publié : mer. 17/août/2005 23:17
par Backup
yes ! dort bien :D

Publié : mer. 17/août/2005 23:20
par Oliv
AYBABTU a écrit :
Oliv a écrit : Je vois que tu as essayé donc ce message et en partie faux, mais tu demandes des cracks-me et après tu rales qu'ils ne sont pas "comme tu veux"
Hum tu dois pas connaitre Wine. Wine est un programme qui permet de faire fonctionner certains logiciels windows sous linux. Mais je dis bien fonctionner, et pas debugger. Je peux pas lancer mon debugger avec wine, il tournerait pas sous linux. Donc au moment de l'edit, non je n'avais pas testé sous windows. Il plantait sous wine, cad sous linux, et c'etait tres surement normal (c'est en testant sous windows ensuite, en remote desktop, cad depuis ma machine sous linux, en me connectant sur une machine sous windows xp et en en prennant le controle, que j'ai vu que le plantage était normal et qu'il avait lieu meme sous windows)

Dobro, tu ne vois pas de probleme a ce que je continue ca demain ? Il commence a se faire tard, et j'ai des obligations demain matin.
sisi je connais Wine mais ce qui m'a étonné c'est que tu demandes des cracksme et quand t'en as tu dis que tu ne vas même pas essayer de le faire, enfait tu l'a fait, donc je m'écrase :oops: Bon moi aussi j'ai du boulot emain bonne nuit

Publié : mer. 17/août/2005 23:33
par AYBABTU
rien ne sert de courrir il faut partir a point ;) (Dobro, qui est le roi du Dobro, comprendra ;))

(je vais etre mort demain, mais quand j'ai un truc qui me trote dans la tete j'arrive pas a dormir...)

en clair:
nom: dobro est le roi du Dobro
mot de passe: rien ne sert de courrir il faut partir a point

Publié : mer. 17/août/2005 23:56
par Backup
:lol: :lol:

le nom etait "rien ne sert de courrir il faut partir a point"
et le pass etait , "dobro est le roi du Dobro"

ce qui fait correspondre a la constante (dont je ne regarde que les
130 premiers characteres ! , bien sur le test aurai pu etre plus long !
puisque j'avais autorisé un pass et un nom de 1000 characteres !


vraiment impressionant j'avais essayé de te perdre avec des faux
tests, t'a pas ete dupe Bravo encore :D

puis je me suis dit on va pas utiliser Xor en plus , j'aurai peut etre du :D
j'avait ajouter un timer au cas ou tu "ponte" un ou 2 test
de façon a planter le programme au cas ou !

mais bon vu que t'es pas un mancho t'a tracer comme il faut la routine de control , ce qui t'a ammener a comprendre !!
c'est vrais que le test en lui meme n'etait pas compliqué ;
puisque la constante apparait tres clairement dans OllyDbg , par exemple :D ; j'aurai du la cripter quand meme :D

Comparer par rapport a une constante , etait evident pour un cracker "moyen ou fort" , un petit "nopeur ou une JNZeur" moyen aurai peut etre bloqué quand meme !

la presence de faux numero de code est une astuce pour perdre les debutant traceur ! car il se disent , "facile le code apparait en clair dans le listing" !!!
la pour mon Crack me , j'en ai mis trop, du coup cela perd en credibilitée !!:D

j'essairai de t'en faire un plus dur un de ces 4 :D


voici le listing en purebasic :
vous y verrez les multiples tests bidons pour embrouiller un peut le "traceur"
,plus on en met , plus le gars qui trace se fatigue , la il n'y en a manifestement pas assez !! y en faudrai 1000 avec des goto a la spagueti !! :D

Code : Tout sélectionner


; prg crée par Dobro
; en pure basic 3.94 beta4
; a l'aide de Japbe !!! <--ça marche avec !! :D
Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
ept.s="21421421619922414314220214723113322221764214212137131211234146182216212"
nom$ = InputRequester("crackme", "entrez votre nom", "")
pass$ = InputRequester("entrez le code", "le mot de pass", "")
Dim c$(10000)
Dim car$(10000)
Dim car2$(10000)

For t=0 To Len(nom$)
    car$(t)=Mid(nom$,t,1)
Next t

For t=0 To Len(pass$)
    car2$(t)=Mid(pass$,t,1)
Next t

For t=0 To 10000
    c$(t)=Str(Asc(car$(t))+Asc(car2$(t))) 
    do$=do$+c$(t) 
Next t

If do$<>"5"
EndIf

Goto 150
200:
If c$(5)<>"15354564-565465"
    Goto suite 
EndIf
suite:
If c$(5)<>"15354564-565465-dgdf4454"
    c$(5)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"15354564-565465"
    Goto suite2
EndIf
suite2:
If c$(8)<>"15354564-565465-dgdf4454"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"15354564-56ffjfg465-fgh554-fprizjcpz"
    Goto suite3
EndIf
suite3:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"15354564-565dfhsn5-fgh554-fprizjcpz"
    Goto suite4
EndIf
suite4:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"15354564-56sfnsf-65-fgh554-fprizjcpz"
    Goto suite5
EndIf
suite5:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"15354564-565dndg--5-fgh554-fprizjcpz"
    Goto suite6
EndIf
suite6:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
uop.s="6199224143142202147231133222217642142"
If c$(8)<>"15354564-565465-fgh554-fprizjcpz"
    Goto suite7
EndIf
suite7:
If c$(8)<>"15354564-565dgn---dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"15354564-565465-fgh554-fprizjcpz"
    Goto suite8
EndIf
suite8:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

risk.s="14621610832102971171163211297114116105114329732112111105110116"
If c$(8)<>"15354564-565465-fgh554-fprizjcpz"
    Goto suite9
EndIf
suite9:
If c$(8)<>"15dgn6546545465gn--64-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

If c$(8)<>"153545dgn-dgn54dgn64-565465-fgh554-fprizjcpz"
    Goto suite10
EndIf
suite10:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

Goto zaza
toto:


If  c$(13)<>Chr(50)
    Dim c$(10)
EndIf





toto5 :
InitSprite()
InitMouse()


top$=ept
top2$=risk
top3$=uop
top$=top$+top2$+top3$
CallDebugger
Debug top$
Debug do$

If Left(do$,130)<>Left(top$,130) 
    do$=Chr(45) 
    top$=do$+Right(do$,130)
    tii=tii+1
    Goto suite12 
EndIf

For t=1 To Len (top$)
Next t
Declare Forme(forme)



If OpenWindow(0, 0, 0, 400, 400, #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Test") = 0 Or CreateGadgetList(WindowID(0)) = 0
        
    End
EndIf
WindowID = WindowID(0)
If tti>0
    ru=1
EndIf
SetTimer_(Handle,ru, 5000, @TimerProc()) ; envoie un evenement toutes les 1000 millisecondes


OpenWindowedScreen(WindowID, 0, 0, 400, 400, AutoStretch, 1, 1)

CreateSprite(1, 32,32)
StartDrawing(SpriteOutput(1))
Box(0, 0,32, 32,RGB($F1,$FD,$1A) )

StopDrawing()

Forme(2) 
; change le chifre = change la forme !!!
; forme(0) = rectangle
; Forme(1) = rectangle avec bord arrondi
; Forme(2)= rond !!!
; Forme(3)=Triangle                                     
; forme(4)=rectangle avec trou
; forme(5)=rond+triangle


sensx=10/2
sensy=16/2
Repeat
    If tii>1000
        End
    EndIf 
        ExamineMouse()
        
        If MouseButton(2) ; si clique bouton droit
                End ; on quitte
        EndIf
        xp=xp+sensx
        yp=yp+sensy
        If xp+32>400 : sensx=-sensx:EndIf
        If xp<0 : sensx=-sensx:EndIf
        
        If yp+32>400 : sensy=-sensy:EndIf
        If yp<0 : sensy=-sensy:EndIf
        
        DisplaySprite(1, xp, yp)
        FlipBuffers()
        ClearScreen(255, 100, 100)
ForEver

End








; les procedures


Procedure Forme(forme)
        Select forme
                Case 1
                        Region = CreateRoundRectRgn_(0, 0, WindowWidth(), WindowHeight(), 40, 60) ; Création de la région pour faire une fenêtre avec les angles arrondis
                        ; CreateRoundRectRgn_(X1, Y1, X2, Y2, R1, R2)
                        ; X1, Y1 : coordonné du point haut gauche de la region
                        ; X1, Y1 : coordonné du point haut gauche de la region
                        ; R1, R2 : rayon de l'ellipse qui va servir à arrondir les angles de la region
                        SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
                        DeleteObject_(Region) ; On supprime la région
                Case 2
                        Region = CreateEllipticRgn_(0, 0, WindowWidth(), WindowHeight()) ; Création de la région pour faire une fenêtre elliptique
                        ; CreateEllipticRgn_(X1, Y1, X2, Y2)
                        ; X1, Y1 : coordonné du point haut gauche de la region
                        ; X1, Y1 : coordonné du point haut gauche de la region
                        SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
                        DeleteObject_(Region) ; On supprime la région
                Case 3
                        Region = CreatePolygonRgn_(?Triangle, 4, #ALTERNATE) ; Création de la région pour faire une fenêtre elliptique
                        ; CreateRoundRectRgn_(Array, NbPoints, Type)
                        ; Array : Adresse de la liste ou de la Data
                        ; NbPoints : Nombre de points du polygone + 1 (car on fait une boucle donc on a 2 fois le premier point)
                        ; Type : Voir msdn
                        SetWindowRgn_(WindowID(), Region, #True) ; On applique la région
                        DeleteObject_(Region) ; On supprime la région
                        
                        
                Case 4 ; rectangle
                        Region1 = CreateRectRgn_(0, 0, WindowWidth(), WindowHeight()) ; Création d'une région en rectangle
                        Region2 = CreateRectRgn_(10, 10, WindowWidth() - 10, 50) ; Création d'une région en rectangle
                        ; CreateRectRgn_(X1, Y1, X2, Y2)
                        ; X1, Y1 : coordonné du point haut gauche de la region
                        ; X1, Y1 : coordonné du point haut gauche de la region
                        CombineRgn_(Region1, Region1, Region2, #RGN_DIFF) ; On combine les 2 régions
                        ; Les modes suivants sont disponibles :
                        ; #RGN_AND : Intersection
                        ; #RGN_OR : Union
                        ; #RGN_DIFF : Différences
                        ; #RGN_XOR : Union moins les intersections
                        SetWindowRgn_(WindowID(), Region1, #True) ; On applique la région finale
                        DeleteObject_(Region1) ; On supprime les régions
                        DeleteObject_(Region2)
                Case 5
                        Region1 = CreatePolygonRgn_(?Triangle, 4, #ALTERNATE)
                        Region2 = CreateEllipticRgn_(0, 0, WindowWidth(), WindowHeight())
                        CombineRgn_(Region1, Region1, Region2, #RGN_OR) ; On combine les 2 régions
                        SetWindowRgn_(WindowID(), Region1, #True) ; On applique la région finale
                        DeleteObject_(Region1) ; On supprime les régions
                        DeleteObject_(Region2)
                        
        EndSelect
        
      
        
        
EndProcedure

DataSection
Triangle :
Data.l 200, 400, 0, 0, 400, 0, 200, 400 ; Coordonnées des points du triangle en x, y (il faut faire une boucle donc on revient au premier point du triangle
EndDataSection 


150:
Goto 200


zaza:
If c$(8)<>"15354564-565465-fgh554-fprizjcpz"
    Goto suite11
EndIf
suite11:
If c$(8)<>"15354564-565ffgh465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"153545464534-565465-fgh554-fprizjcpz"
    Goto suite12
EndIf
suite12:
If c$(8)<>"15354565454-4453*--4-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"15354564-5654689865--6565--5-fgh554-fprizjcpz"
    Goto suite13
EndIf
suite13:
If c$(8)<>"15354564-5654554--65-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"15354564-54645655453-895453-89+899+465-fgh554-fpriz4534jcpz"
    Goto suite14
EndIf
suite14:
If c$(8)<>"15354564-56ddfb5468765-465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"15354564-578338378fgh554-fprizjcpz"
    Goto suite15
EndIf
suite15:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"15354564-565785378-fgh554-fprizjcpz"
    Goto suite16
EndIf
suite16:
If c$(8)<>"15354564-565465-dg78378374-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"15354564-565465456445567834343874-fprizjcpz"
    Goto suite17
EndIf
suite17:
If c$(8)<>"15354564-565465-dgdf4444564554-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf
If c$(8)<>"15354564-565465-fgh554-fprizjcpz"
    Goto suite18
EndIf
suite18:
If c$(8)<>"15354564-565465-dgdf4454-654erorer5"
    c$(8)="ok le code est bon !! "
Else 
    c$(45)= "le code n'est pas bon !" 
EndIf

Goto toto





Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
    Select uMsg
        Case #WM_TIMER
            Select idEvent
                Case 1
                    MessageRequester("hello", "pas encore pas encore :D"  , #PB_MessageRequester_Ok)
                    End
                Case 2
                   
                Case 3
                 
            EndSelect
    EndSelect
EndProcedure




Publié : jeu. 18/août/2005 10:07
par Backup
je me pose quand meme une question!

mon petit algo prend une lettre du nom , l'additionne avec une lettre du pass
puis je la pose dans une variable , comment a tu pu retrouver les mot exacte
car le chemin inverse n'est pas evident !

en effet si l'on additionne le code ascii de "A" et de "B" on obtient la valeur

65+66=131 <=== ceci est le chiffre que tu retrouve dans la constante

1- comment sait tu qu'il ne sagit pas de 13 et de 1 qui se suivent ?

2- 131 peut etre obtenu par plein de combinaison
par exemple la lettre "3" code 51 + la lettre "P" code 80

a partir de la comment as tu pu retrouver les mots exacte du nom
et du pass ? 8O 8O

Comment n'as tu pas pensé que le nom pouvais etre n'importe quoi ?
ainsi que le pass ?

la j'avoue que j'ai du mal a comprendre comment t'as raisonné !!
ici , je pense que cela interresserai beaucoup tout le monde :D

plus que les insultes de ton Con_frere Bulgroz !
(j'ai pensé que vous etiez la meme personne , mais je crois pas en fait :D

Publié : jeu. 18/août/2005 10:38
par djes
PTDR!

Publié : jeu. 18/août/2005 12:49
par AYBABTU
Dobro a écrit :je me pose quand meme une question!

mon petit algo prend une lettre du nom , l'additionne avec une lettre du pass
puis je la pose dans une variable , comment a tu pu retrouver les mot exacte
car le chemin inverse n'est pas evident !

en effet si l'on additionne le code ascii de "A" et de "B" on obtient la valeur

65+66=131 <=== ceci est le chiffre que tu retrouve dans la constante

1- comment sait tu qu'il ne sagit pas de 13 et de 1 qui se suivent ?

2- 131 peut etre obtenu par plein de combinaison
par exemple la lettre "3" code 51 + la lettre "P" code 80

a partir de la comment as tu pu retrouver les mots exacte du nom
et du pass ? 8O 8O

Comment n'as tu pas pensé que le nom pouvais etre n'importe quoi ?
ainsi que le pass ?

la j'avoue que j'ai du mal a comprendre comment t'as raisonné !!
ici , je pense que cela interresserai beaucoup tout le monde :D

plus que les insultes de ton Con_frere Bulgroz !
(j'ai pensé que vous etiez la meme personne , mais je crois pas en fait :D

Alors, en effet la premiere étape a été de decouper la chaine de caractères de facon a obtenir des valeurs decimals plausibles. Comme il s'agissait d'addition de valeur ascii, on pouvait deja avoir une valeur minimale 96 ('0' = 48; 48+48 = 96) et maximale 244 ('z' = 122; 122+122 = 244) On commence donc à découper la chaine, et en fesant ça, je me dit qu'il y a de forte chance que le nom et le mot de passe ne soit pas de la meme longueur, et donc qu'à la fin de la chaine il y ait les valeurs directement du nom, ou du mot de passe. (les valeurs min et max sont donc 48 et 122 pour la fin) Le truc le plus chiant c'est qu'en general on travaille en base hexadecimale et que je me suis melangé les pinceaux a un moment entre les 2 bases, quand je fesais mes calculs a la main.

Une fois qu'on a ça, on "décrypte" la fin (je l'ai fait à la main) et on trouve un truc comme "l faut partir a poin". A la base, j'étais partis pour decrypter la fin à la main, et ensuite coder un petite programme qui m'aurait sortis toutes les solutions possibles du debut, avec les caracteres imprimables uniquement, et de là garder uniquement le bon. Un bon vieux bruteforce pas tres compliqué à mettre en place. Mais là comme il était facile de reconnaitre le proverbe (meme sans le 't' final :p), j'ai pu donc me dire que le mot de passe était "rien ne sert de courrir il faut partir a point" (d'autant plus qu'il y avait pile-poil le bon nombre de caractères), et de là, une simple boucle avec le mot de passe et la chaine cryptée m'a donné le nom.

Et ouais, y'avait trop de faux serials en clair, dès que j'ai vu ça je me suis dis directement que c'etait tous des faux :) D'autant plus que c'est pas très logique, si un serial est bon il ne va pas aller verifier le suivant, pour dire qu'il n'est pas valide.

Au fait, non je ne suis pas Zorglub, mais il est bien meilleur que moi.

Publié : jeu. 18/août/2005 14:28
par Backup
Au fait, non je ne suis pas Zorglub, mais il est bien meilleur que moi.
je faisai allusion a Bulgroz !! (l'insulteur) ....
pas a Zorglub (avec qui le courrant est relativement bien passé ! :D )

Merci pour ton explication !!
leçons bien aprise : je saurai qu'il faut mettre un pass de la meme longueur qu'un nom

qu'il vaut mieux cripter au maximum les données
mettre des pseudo verification plus realiste ect ...

comme quoi la discution avec des crackers peut etre riche d'enseignements ! (sans forcement etre bordé d'insulte et de "J'me la pete car Moa je suis le plus grand cracker-Belin de la planete "



Merci :D

Publié : jeu. 18/août/2005 14:49
par AYBABTU
Dobro a écrit :
je faisai allusion a Bulgroz !! (l'insulteur) ....
pas a Zorglub (avec qui le courrant est relativement bien passé ! :D )
C'est la meme personne ;) le pseudo est juste "reversé" ;)
Dobro a écrit : leçons bien aprise : je saurai qu'il faut mettre un pass de la meme longueur qu'un nom

qu'il vaut mieux cripter au maximum les données
mettre des pseudo verification plus realiste ect ...

Merci :D
Et encore, meme si le nom et le serial était de longeur identique, il etait pas difficile de coder le bruteforcer pour donner des combinaisons qui valident l'algo meme si le nom et le mot de passe ne veulent rien dire, voir meme retrouver les bons parametres avec un peu de chance :)

La protection la plus serieuse reste, comme dit dans un autre post, de distribuer une version de Demo sans toutes les fonctionnalités. Mais ça peut toujours se faire avoir (piratage du site et obtention de la version complete, piratage d'un utilisateur enregistré trouvé via le forum de l'auteur, achat avec une fausse carte bancaire (meme si je crois que c'est plutot blindé maintenant) voir meme réel achat par un mecene :) <- très rare :p D'ailleurs, si un mecene veut bien depenser quelques sous ... pm :p)

Si vous voulez faire un truc non keygennable, il faut aller dans la crypto dure, avec des RSA-1024 ou des courbes elliptiques (bien implementé de preference ;)) Ca sert a rien de se servir d'un RSA si c'est pour faire du RSA-256, sachant qu'un RSA-383 ça se casse en 3 jours sur un CPU a 2Ghz. Mais non keygennable ne veut pas dire non crackable ;) (ex: WinRAR, pas keygennable a cause de son ECC, mais crackable en 2 min)