PROTECTION D'APPLICATIONS PAR SERIAL / CLE VIA INTERNET

celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007 - 9 juin 2004 à 01:24
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007 - 28 déc. 2005 à 19:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23534-protection-d-applications-par-serial-cle-via-internet

celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
28 déc. 2005 à 19:35
Salut,

<< une exe n'est qu'une suite de bits (comme tout autre fichier d'ailleurs) avec un header qui lui aussi n'est qu'une suite de bits, et les bits c'est modifiable donc je te laisse conclure par toi même >>

Cela va de soi, je m'accorde volontiers à cette explication très claire. Mais cela reste coco évidement... ;)
Mais c'est très vrai !

@+
Celiphane
JoNasx86 Messages postés 14 Date d'inscription jeudi 19 mai 2005 Statut Membre Dernière intervention 30 décembre 2006
26 déc. 2005 à 23:51
Hum excellent code celiphane !!
Mais bon je rejoins Mindiell et ThierryTheOne dans leur modification d'EXE : c'est tout à fait possible! L'ajout e sections dans le PE etc est possible du moment que l'on a un EXE dépacké/decrypté en clair quoi :) Et puis rappellez vous une chose : une exe n'est qu'une suite de bits (comme tout autre fichier d'ailleurs) avec un header qui lui aussi n'est qu'une suite de bits, et les bits c'est modifiable donc je te laisse conclure par toi même ;)
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
25 juin 2004 à 12:16
En faite, en partant du principe que si il n'y a qu'une seul solution mais plusieurs façon d'y arriver, sa veut dire que l'on facilite la tache du craker non ? je pence qu'il faut une solution pour une façon de la calculer.

Ah oui aussi y a bien un test de validation qui aide lors du desassemblage :
If CP.GetSubName("a77clns7clncsz") = "affichefichier" Then MsgBox "Bien :)" Else MsgBox "Pas bien :("

je suis d'accore sa sert a rien de faire un nop sur cette comparaison pour obtenir l'affichage du "Bien" car sa ne debloque pas les fonctions mais sa permet d'avoir une idee de la clef !!!

Ah oui un detail qui peu etre important de prendre en conte, lorsque l'on debug le programme avec windasm en chargent le processus pour pouvoir voire l'etat des registre et que l'on arrive a ce niveau la :

Public Function LaunchProtectedSub(ByRef Owner As Object, ByVal SubName As String) As Boolean
On Local Error Resume Next
CallByName Owner, GetSubName(SubName), VbMethod
LaunchProtectedSub (Err.Number 0)
End Function

si la fonction CallByName gener une erreur windasm plante royalement impossible d'aller plus loin autrement dit le logiciel le plus utiliser par les craker debutant ne sert a rien (j'avais eu le meme probleme avec la premiere de tes protection avec "SC.ExecuteStatement Ch" lorsqu'elle generais une erreur). Mais bon on peu quand meme se servir de softice et de ollydbg sans probleme. Je pence que si tu trouve d'autre moyen d'empecher les craker d'utiliser leurs logiciels preferer tu aura une bonne protection ;) .
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
25 juin 2004 à 09:46
Je pense pas que ca soit exactement son esprit Mindiell, car vois-tu n'importe qu'elle clé de n'importe qu'elle programme obtient elle aussi TJRS 100, pour être validé et reconnu par le programme cible.

Il dit bien "qu'une seul et unique clef". la clé c'est le calcul, le résultat c'est la validation de la protection.

@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
25 juin 2004 à 09:30
ce que nomitsu veut dire c'est que tu obtiens toujours 100, donc c'est trop facile a passer...
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
25 juin 2004 à 09:18
ok pour tes 1er points,
cependant concernant le dernier point, on doit forcément pouvoir trouver un moyen de générer plusieurs clé du même "type" qui donneront toutes la même chose, c'est mathématiques, il suffit de prendre la base de la base :

50+50=100
30+70=100
20+80=100
etc...
etc...

Je ce que je veux dire c'est qu'il doit bien y a voir un moyen de faire un cryptage dans ce sens...

Mais en tout cas voilà tout pour le moment concernant mes idées de protection SANS test validateur...

;)

merci de t'y être intéressé NoMitsu. ;)

@+
Celiphane
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
25 juin 2004 à 01:47
Donc voila se que je pence de la protection apres etude de la source et reanalyse lol

En faite, lorsque l'on regarde attentivement avec l'editeur hexa le programme on s’aperçois assez rapidement que les nom des fonctions apparaisse en claire (regarde par toi meme ouvre ton prog avec le bloc note ou un editeur hexa et fait une recherche AfficheFichier et MontreDossier) et il se trouve a peu pres au meme endroit a chaque foi, il suffie d'avoir le nom de la feuille et pis on recupere le nom des fonctions tres facilement.

Une foi que l'on a l'algo de cryptage et le nom de la fonction c tres simple de trouver la clef.

Apres il est vrais que sans la source du prog je savais pas trop comment mis prendre et cette technique derouter un bon nombre de craker debutant.

Maintenant meme en utilisant un algo de cryptage plus puissant sa ne sera pas veritablement un probleme c'est vraiment tres facile de remonter le processus en sens inverses sa prend juste un peu de tps mais qq1 de motiver finira bien par y arriver.

En suite, y a bien une chose que me gene avec cette technique, et se n'est pas du point de vue protection enfin pas directement, en effet le nom des fonctions est unique ce qui implique qu'il n'y aura qu'une seul et unique clef pour activer le programme !! or si l'on décide de commercialiser un programme on ne peu pas baser la protection sur une clef mais sur un algorithme qui permet d’identifier l'utilisateur.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
22 juin 2004 à 09:42
Encore moi, concernant le serial, c'est bien ce que tu avais dit, sauf que tu comprendras tout seul je pense pourquoi ca ne marchait pas pour l'autre fonction, alors qu'elle utilise pourtant la même clé !

Mais voilà, j'ai fait ca comme ca car ce n'était LA démonstration d'un cryptage, donc place toi dans un contexte avec un vrai cryptage, celui qu'on est aujourd'hui à même d'y implenter en informatique...

bon voilà je te laisse, please your feedbacks ! ;)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
22 juin 2004 à 09:37
Ha au fait, j'oubliais le plus important, voici la license qui débloque l'application :

a4z5er0ty7ui-8opmlkj6hgfd3sq9wx1cv2bn


Note également que cette protection autorise la protection de n'importe qu'elle procédure, quel que soit son contenu.

Bon c'est vrai que le tout est à réfléchir encore un peu, pour homogééniser l'ensemble, car j'avais tout fait en à peine 1 heure (de la réflexion à la compilation lol)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
22 juin 2004 à 09:34
Salut NoMitsu,

je vois que tu t'es penché sur le problème, et cela me réjouit ;)

Je pense que tu seras aussi très agréablement surpris en voyant les sources de ce nouveau projet, que je viens de placer dans le zip de cette source dans un nouveau zip appelé "protec.zip".

Bien que tu ne sois pas, de tes dires, un cracker pro, il n'empêche que contrairement à ce que peux affirmer, cette protection est plutôt intéressante tu en jugeras par toi-même. Car celle là, tu n'y es pas parvenu, et elle est bien plus que le cryptage que tu pensais être en la dés-asm-ant.

Enfin, bien plus, tu me diras, toutefois je la juge encore plus intéressante que la précédente.

Tu constateras qu'une fois de plus, je suis parvenu à annuler le test d'une condition pour executer tel ou tel code, ce qui rend la protection assez performante comme le démontre ton "semi-échec" : en effet, ya bien une question de cryptage la-dedans.

Aussi, ma routine de cryptage est ce qu'elle est, imagine une meilleure... Car comme d'habitude, je ne montre ici que le principe global.



Bon assez parlé, regarde et dis-moi si tu penses qu'il faut que j'en fasse une source indépendante, ou bien une fois de plus penses-tu qu'une ruse -aisée- est possible ?

Merci

@+
Celiphane
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
21 juin 2004 à 19:55
Salut salut, apres quelque jour d'absence me revoici !!

tous d'abord merci, j'avais bien capter que cette foi ci y avais plus besoin de connexion a un serveur (d'ou les mots "chaine crypter pour remplacer la connections" se qui veut bien dire qu'il n'y en a plus lol enfin passons ce quiproquo)

Donc je resume, la protection a tenue 2h, (et oui je suis pas un craker pro mais amateur, g encore plein de progres a faire)

Donc voici, si qui en est, arrete moi si je me suis tromper quelque par,
il n'y a donc pas 3 chaine crypter mais une table "aqwxsz2e9d6cv03frtgb5nh7y-ujk1iol4m8p", et 2 chaines qui donne la position des caracteres dans les clef qui sont rentrer, je c pas si je me suis bien fait comprendre, je crois qu'un bout de code sera plus simple (rassurer vous je l'ai "traduit" de l'asm en vb pour que tous le monde comprenne :

---------------------------------------------------------------------------------
Dim i As Long, j As Long
Dim TabString As String, Tmp As String
Dim sClef As String, sPass As String


'Pass pour la fonction afficher fichier
sPass = "a000er00000i000000000h0fc0000000c"
sClef = "a77clns7clncsz"

'Pass pour la fonction voir dossier (pas encore fait)
'sPass = "a000er00000i000000000h0fc0000000c"
'sClef = "r3pezsy3uucsz"

TabString = "aqwxsz2e9d6cv03frtgb5nh7y-ujk1iol4m8p"

For i = 1 To Len(sClef)
j = InStr(1, TabString, Mid(sClef, i, 1))
Tmp = Tmp & Mid(sPass, j, 1)
Next i

Debug.Print Tmp
---------------------------------------------------------------------------------

Cette exemple montre l'algorithme utiliser pour valider la commande afficher fichier.

Voila se que g trouver donc, j'ai pas encore fait (et je ne pence pas le faire en faite sauf si c primordial pour toi celiphane) pour la fonction voir le dossier (mais j'avoue que je n'est pas encore trop compris comment on la valide (g pas encore trop chercher).

Donc voila, je pence pas que se soit une super bonne protection, mais si tu veux bien poster les sources que je voie quand meme le code en vb plutot qu'en asm sa sera mieux et moins long ;)

donc voila un des serial possible "a000er00000i000000000h0fc0000000c", on peu remplacer les "0" par n'importe quoi !
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
18 juin 2004 à 16:49
Alors comme explique ci-dessus, il a modifie son programme pour ce cas-la :o)

Merci de lire les reponses avant d'en ecrire une ;op
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 juin 2004 à 16:35
Et si tu n'a pas internet ?
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
17 juin 2004 à 10:14
Ha oui bien sûr, excuse moi j'ai pas lié ta réponse à ma question, il était tard lol :o)

@+
Celiphane

(alias CELIne & stéPHANE) ;)
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
17 juin 2004 à 08:24
Ton prenom, grace a l'exe... Il y a dedans le repertoire de sauvegarde de ton programme ;o)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
17 juin 2004 à 01:09
quoi grâce à l'exe ?

j'ai pas très très bien cadré ton message, Mindiell, je dois être fatigué surement...


@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
17 juin 2004 à 00:33
Oui, grace a l'exe :o)

Je suis pas alle plus loin qu'une simple edition, je passe mes journees a bosser, moi :op

Pour le reste, autant faire du freeware, c'est beaucoup mieux et ca se passe de protections ;op
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
17 juin 2004 à 00:04
Alors comme tu me le demandes, je t'arrête tout de suite, à ta réplique :

"il y a 3 petits chaine crypter pour remplacer la connections a un serveur"

la réponse est non, il y a effectivement des chaînes cryptées, mais elles ne remplacent pas la connexion à un serveur : en effet, cette appli se passent COMPLETEMENT du net, on est ici dans un autre registre. Tout y est local, tu te trouves ici comme devant un VRAI shareware, si ce n'est qu'il est nul ;) (cela dit certains volent bas).

Ainsi sur ce prog, la procédure est simple : pas de serial rempli, pas droit aux fonctions privées, une fois le bon serial rempli les fonctions deviennent utilisables ET le restent, à moins que le programme ne soit réinstallé ailleurs (je passe par un fichier dans le dossier de l'exe pour ne pas pourrir ta base de registre). Tu peux te déconnecter du Net pour celui-ci, aucun rapport !

Et cette solution, sans être miraculeuse, me semble assez sympa. Veux-tu que je te donne le serial afin que tu puisses tester de manière plus approfondie ? Plutôt que de te prendre le chou, tu pourras ainsi réellement confirmer ou au contraire infirmer que ce type de protection est valide. Si la réponse se montre positive, j'en ferais une source ici même.

Demande moi des infos pour la casser, si ca peut aider à démontrer qu'elle vaut le coup.

Sinon, bon courage pour tes examens, plonge t'y fort, c'est important.

@+
Celiphane
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
16 juin 2004 à 23:42
salut celiphane, c'est gentil de penser a moi ;), justement je cherchais quoi faire de mes journee (de l'info qu'elle question !!! lol)

Bon serieusement, je viens de jeter un coup d'oeil a ton programme, donc arret moi si je me trompe
il y a 3 petits chaine crypter pour remplacer la connections a un serveur.
Dans l'absolue c'est faisable de suivre l'algo de cryptage pour decodée la chaine mais sa vas me prendre du temps alors je ferais sa apres mon orale de francais si sa te gene pas trop.

++ et bonne prog
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
16 juin 2004 à 14:47
Pour ce qu'il y a à pourrir étant donné que la protection ne protège pas lol :)

Tu veux ouvrir un truc où ?

Et d'où tu connais mon prénom ? :-Grâce à l'exe ?

@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
16 juin 2004 à 14:06
Bon Stephane, ca serait p'tet bien qu'on s'ouvre un truc ailleurs plutot que de pourrir ta source, non ?
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
16 juin 2004 à 13:26
-------------------------------
Message destiné à NoMitsu
-------------------------------


Je me suis permis de refaire un nouveau test, mais cette fois avec une méthode complètement différente de celle-ci : plus besoin de web ni rien.

Du coup, j'ai remis un EXE nommé "DemoProtection" dans le ZIP, et j'aimerai assez que tu me dises ce que tu en penses. Il a 2 fonctions qui nécessite l'enregistrement. Pourras-tu les débloquer même sans le serial qu'il attend ?

Merci de me tenir au courant !


@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
16 juin 2004 à 12:00
Pas forcément !

Regarde : ya certains jeux qui commencent à sortir et à l'heure actuelle, aucun pirate n'est en mesure d'y apporter un crack malgré la lourde demande.

Je prends pour exemple le jeu français Trackmania, protéger par la protection Starforce, le crack a mis plus de 3 mois à voir le jour, et encore il est incomplet et instable : le jeu plante dans certain mode etc (j'ai la version complète moi, achetée ;) ).
Aujourd'hui, plusieurs patchs pour améliorer le jeu sont sortis, et bien aucun cracker n'a suivi l'évolution : le crack restant demeure instable ET pour le jeu non patché (v1.0), contrairement aux jeux plus "vieux", genre GTA Vice city (pourtant récent quand même), où un crack suivait de quelques jours la sortie d'un patch.

On y viendra à la protection parfaite, mais demain.

@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
16 juin 2004 à 09:55
Desole celiphane, mais tant qu'il reste une clef pour entrer dans une piece, on pourra toujours en faire un double. Le must de la protection serait tout simplement que personne pas meme l'acheteur puisse y acceder.

C'est mon opinion, et elle n'engage que moi ;o)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
16 juin 2004 à 09:50
"sa prouve encore une foi qu’en informatique « impossible » n’existe pas"


Ca c'est clair, c'est également ma devise. De toute facon, ce qui a été fait peut toujours être défait : la logique même non ?

Je vois pas comment on parviendra à sécuriser réellement tout ca... Ca viendra peut-être un jour, mais ce sera dur... Où peut-être ce sera vrai quand les moyens de cryptage deviendront si onéreux que les pirates, entités seuls, ne pourront plus suivre pour le décryptage.

Pas demain la veille, sauf si demain, un octet d'une appli deviens un giga crypté (c'est un ordre d'idée bien entendu). Là faudra s'accrocher les baloches !

@+
Celiphane
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
15 juin 2004 à 23:33
Salut,
j'avais bien capter qu'il y avais un fichier cree apres l'enregistrement, en effet le string data ref "Le fichier de license est alt" m’avais mis la puce a l’oreille, en bidouillent un peu je l’ai fait apparaitre mais a partir de la mon debuggeur plantais a chaque tentative de chargement du prog et je doit dire que je ne comprenais pas pour quoi.
A se propos je te remercie d'avoir donner la reponse, sa ma permis de comprendre se qui c'est passer, il semblerais que windasm et olldebug ne supporte que le composant scriptControl plante !

Pour se qui est de la technique utiliser elle est plus proche du reversing engineering que du cracking, j'ai fait exactement se que tu fait lorsque tu envoi la commande pour reactiver la frame :

p1150032448410202222111141.enabled = true
p1150032448410202222111141.visible = true
me.height = 4815

sauf que je l'ai code en "dur" dans le programme et qu'a la place de mettre
me.height = 4815 je l'ai mis a 3200 je crois et que la frame j'ai modifier son top pour cacher la partie de l'enregistrement en ligne.

Voilà, c’est aussi simple que sa, et sa prouve encore une foi qu’en informatique « impossible » n’existe pas.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
15 juin 2004 à 13:51
Très honnêtement chapeau bas. C'est du bon boulot NoMitsu !

Je serais très curieux aussi de savoir comment tu t'y ai pris !

En ce qui concerne ton point de vue, je l'approuve à 100%.



En fait, sur cet exe, le serial était :

mon-serial-qui-est-13-dur-a-trouver

Ceci débloque l'application, toutefois, une fois le serial saisi, il n'est plus nécessaire de le retaper, chose que tu n'as pas du voir depuis ton poste de cracker, et c'est bien normal.

En revanche il est clair que je me demande comment tu as fait, surtout qu'à aucun moment l'application n'était censé faire disparaitre la textbox du serial, ni le label "Numero de licence :" ni le bouton "Valider" !

Pourrais-tu nous en apprendre davantages sur tes connaissances, s'il te plait ?

merci, et bravo

@+
Celiphane
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
15 juin 2004 à 13:41
Sinon, voila une petite reflexion sur ta protection (se point de vue n'engage que moi bien sur)

Je trouve le concept vraiment bon, le faite que se soit le serveur qui envoie les commandes pose vraiment quelque probleme au cracker, mais d'un autre cote c'est super dangereux, car il n'y a aucune verif de faite sur se qui est envoyer, se qui est une faille enorme car un peu executer n'importe qu'elle instruction. On peu tres bien imaginer qq1 qui hack le serveur et qui modifie les donner envoyer au client, lui demander de telecharger un virus ou bien un trojan !!

Enfin, en omettant la faille de securite, il se pose un autre probleme, je doute que l'utilisateur supporte longtemps de devoir s'enregistrer a chaque foi qu'il veut utiliser sont programme
de se faite il faut penser a enregistrer quelque par le serial apres le premier enregistrement de l'utilisateur et la on retombe dans un probleme « classique » si je puis dire, le cracker preferera casser la protection a se niveau la plutot que sur l'enregistrement en ligne (du moins c'est se que je ferais)

Voila, maintenant je peu me tromper et ce n'est qu'un debut de protection comme tu la dit : "c'est a creuser d'avantage"
Bon courage pour la suite
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
15 juin 2004 à 13:19
Bon c pas grave j'ai cree un conte, voila l'url pour telecharger le prog
http://www.ifrance.com/NoMiWEB/superappli.exe
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
15 juin 2004 à 13:03
sa serais avec plaisir mais il faudrais me donner ton adresse stp ;)
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
15 juin 2004 à 12:51
Desole celiphane, je t'avais prevenu...
Nomitsu, envoie le moi par mail, je le mets sur mon site perso pour que tout le monde puisse le dl...
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
15 juin 2004 à 12:40
Voila c cracker, j'ai acces a une magnifique calculatrice qui fait des addition lol, j'ai pas le serial mais j'ai quand meme acces a "toute" les fonction du programme, on envoie ou l'exe ?
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
15 juin 2004 à 10:55
Ok, ThierryTheOne,

dorénavant dans le zip de cette source, tu y trouveras un nouvel executable, sans ses sources, nommé "superappli.exe".

Ce programme requiert un serial pour débloquer sa véritable fonction, une calculatrice hyper sophistiquée autorisant l'addition de 2 valeurs saisies par l'utilisateur. La partie Web du programme n'est vraiment liée QU'A la protection.Le cas est donc réel. De plus, une fois la protection dévérouillée par le serial, l'appli reste débloquée.

Merci de me tenir au courant lorsque tu auras vu l'exe, puis par la suite, de tes avancements.

Bonne chance,

@+
Celiphane
ThierryTheOne Messages postés 8 Date d'inscription mercredi 10 décembre 2003 Statut Membre Dernière intervention 30 juin 2004
15 juin 2004 à 09:17
ça m'interesse un nouvel exe sans source, ni serial.
Mais qu'est-ce qu'il ferait une fois le bon code entré?
Parce que si ton prog est juste une interface où les TOUTES les commandes
seraient sur un serveur distant. Je pense pas que beaucoup de gens seraient près à prendre un log comme ça. (infos/vie privée).

Mais si dans ton prog TOUT est déjà dedans, par ex:
le prog sert juste à indiquer par des boites de message si le code est bon
MAIS, aucune instruction dans ton prog ne fait arriver vers ces boites.
Par contre SEULEMENT, une commande venue d'internet ferait aller où il faut, ben y'a pas trop de probleme à modifier.

Enfin bon j'espère avoir été clair.
Parce que pour moi les commandes venant d'internet sont soit:
1- Faire continuer le prog ici parce que le code est bon soit
2- Une interface où il faudrait rester connecté à internet pendant toute la durée d'utilisation du prog parce que les commandes sont pas ds le prog.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 16:39
Je te remercie.

En fait, j'ai des notions en crack, des petites, mais qui m'ont permis à titre personnel de faire fonctionner certains de mes jeux sans leur CD (par exemple Rocket Jocket, un vieux jeux). A titre personnel je le jure ! :-|

Du coup j'ai qq technique bien entendu, et en faisant ce programme, aucune ne peux me servir. Mais bien entendu, je ne connais pas tout.

Cela dit j'attends les experts pour appliquer ce dont tu me parles. Je répètes (et c'est pas parceque je suis têtu ni parceque je suis fier de moi hein !!!) que je ne penses pas que ca se cassera si simplement :

tu me dis "je reprends ces commandes" mais elles n'existent pas dans le programme.

tu me dis "je les insere ou il faut en "sautant" ta partie de verification" mais justement, je n'ai pas de parti de vérification !


Disons donc que j'ai créé un bon casse tête, reste à voir s'il est suffisament bien pensé pour résister a un bon cracker.

@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 16:00
Ben ton programme, il recoit un truc. Ok, et apres il effectue des commands en assembleur. Donc je reprends ces commandes et je les insere ou il faut en "sautant" ta partie de verification. C'est comme ca que font les crackers.

Maintenant, je ne suis pas assez competent pour te le faire, desole. Mais ta protection est quand meme bien pensee.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 15:52
je reste vraiment dubitatif :)

désolé, je ne vois pas comment insérer une instruction dans un code compilé... cela dit MERCI de nourrir le débat, c'est fortement intéressant.

Tu ne peux pas et de toute facon en tant que cracker (donc sans les sources ci-jointes) tu ne sais pas quel code il faut insérer, les noms de variables et d'objet te sont inconnues.

Nan j'aimerai vraiment entendre quelqu'un me dire "je vais te casser ta protection et je vais t'expliquer comment je m'y suis pris", sur un nouvel exe que je fournirai dans le zip sans les sources cette fois, et sans le serial. Ne serait-ce pas intéressant ? Reste à attendre le "compétent" ! :)

@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 15:21
ok, mais ca m'empeche pas de "sauter" ta phase de verification.
Il suffit que je voie ce que le programme fait apres avoir recu la commande par Internet.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 14:32
Ok j'ai lu ton article. Tu avoueras qu'on est similairement dans le même cas que celui que j'ai présenté ;)


Mais ca confirme bien une chose (et oui désolé lol ;) ) : on ne peut pas modifier un programme dans le sens où tu l'entends ! Où du moins dans le sens où tu l'entendais par la phrase : "On modifie l'exe en y rajoutant la commande".

En effet, dans ce que je t'ai présenté, et dans ce que tu m'as présenté derrière (la même chose à l'envers), ce n'est pas une modif du programme d'origine. On ne lui a pas ajouté de code : je maintiens que c'est impossible ;)

C'est bien 2 prog différents qui cohabitent (ou bien un qui parasite l'autre plutot puisqu'on parle de virus).

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 14:26
lol, c'est le débat ici ! passez le mot venez tous ! ;)


c'est ça qu'est bien sur des sites communautaires comme ça !

:)

je me renseigne et je viens alimenter prochainement ! ;)

@+
Celiphane

NB: argggggg si je comprends bien on est plus a l'abris de rien arggggg ;)
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 13:09
Merci de me soutenir Thierry ;o)
ThierryTheOne Messages postés 8 Date d'inscription mercredi 10 décembre 2003 Statut Membre Dernière intervention 30 juin 2004
14 juin 2004 à 12:54
Et puis si le code a injecter est trop grand on peut toujours rajouter une section dans le PE du prog, faire ses modifs où il faut et avoir un prog plus grand en taille et avec ce qu'il faut à l'interieur. (Reverse Engineering)

En ce qui concerne le cryptage, les instructions seront bien décryptées en mémoire!!!!
Peu importe le niveau de cryptage, faut juste attendre la fin de décryptage, un petit ReadProcessMemory (ASM Powaaa lol) et c'est bon.

Voila!
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 12:15
Voila :
http://www.chez.com/popyk/ppvirus/RAPPORT.HTM

Lis la section 2.1.2, "Les virus parasites".

En gros, ton virus ajoute en debut de code un saut(1) vers la fin du code ou est situe son code à lui, puis a la fin de son code à lui, il ressaute(2) au debut du code juste apres le premier saut(1), ainsi le programme s'execute normalement...
Il faut, pour cela, modifier dans l'en-tete de l'executable la taille de l'executable (il ne la connait pas et en a besoin pour se copier en memoire pour etre executer).

Les premiers enti-virus se basaient sur une fonction de saut dans les premieres commandes du programme pour signaler la presence eventuelle d'un virus.

Content ? :o)
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 11:34
Ok, je vois que tu y tiens... Je te cherche les infos :)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 11:34
Et en fait, à bien y réfléchir, concernant ta solution d'écoute pour connaitre les lignes de codes à passer pour que le programme se déverouille, il suffit d'améliorer le programme : pourquoi ne pas crypter les lignes de code envoyé, il les decryptes et les executes...

Trop facile à décrypter tu penses ? Alors encore mieux, le cryptage peut prendre en compte des paramètres diverses telle le jour le mois et l'année, ce qui fait que selon le jour de la demande, le codage généré ne sera pas suivable, car différent chaque jour, enfin tu vois, tout est a faire avec cette idée... c'est pas top top mais ya du bon !

enfin, c'est mon avis ;)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 11:29
Ok, donc tu as dis "on l'achete" ;)

Je suis bien d'accord, mais là on peut pas faire grand chose de plus :)
Si demain je donne mon serial de tout mes logiciels à tout le monde, aucune protection ne peut parer à ça, je suis bien d'accord, mais dans ce cas précis ta solution dépasse mon problème : personne ne peut y remédier, pas même microsoft ! C'est "hors course" donc...

Je te reconfirme que modifier un exe EST impossible. Je ne suis pas un pro non plus, toutefois j'ai mes acquis. ;)

Concernant les virus, comme tu les cites, ils ne modifient en rien un exe en s'y ajoutant, non.
Ils agissent plutot comme winzip ou winrar par exemple, mais en mal : ces programmes génèrent des autoextractibles, c'est à dire qu'ils génèrent des programmes qui extraient des données. Et bien les virus dont tu parles, c'est pareil, ils recherchent sur le disque des exe (rien d'impossible ici), ils génèrent un fichier exe qui contient d'une part du code malveillant qui a été fait pour ca, et d'autre part les octets fichier exe ciblé (rien d'impossible ici), puis nomme le résultat pareil que le fichier ciblé et remplace le fichier ciblé par ce résultat (rien d'impossible ici).

La substitution est faite, dès lors, quand tu penses lancer l'exe notepad par exemple, c'est pas lui, c'est du code malveillant qui fait sa mauvaise besogne (de diverse sorte), puis extrait le VRAI notepad qu'on lui a fait ingurgité dans le dossier TEMP par exemple puis l'execute : a l'ecran, tu n'as rien vu : notepad s'est ouvert.

MAIS TON EXE D'ORGINE N'A PAS ETE MODIFIE dans le sens que tu l'entend : c'est IMPOSSIBLE.

@+
Celiphane
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 10:55
Pour ta premiere remaraque, tu as du mal me lire. J'ai dit "on l'achete" :o)
C'est la base de la plupart des crackers ;o)

Modifier un exe n'est pas impossible. Certains virus le font, non ? On peut donc le faire a la main. Et pourtant ils ne connaissent pas du tout le code de l'exe qu'ils vont infecter. Tu veux vraiment une preuve ? (je suis pas un pro, t'auras que l'explication de base...)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 10:47
"On le lance en utilisant un surveillant de paquet et on attend la réponse du serveur avec sa commande"

Faux :

le serveur ne donnera sa commande QUE si le serial qui lui a été fourni est correct. Sinon, tu peux toujours l'attendre : faut donc payer la license.


"On modifie l'exe en y rajoutant la commande (si, si, c'est possible, desole...)"

Faux :

C'est complètement impossible. 2 solutions s'offrent à toi pour cela : recompiler (mais tu n'as pas les sources en tant qu'acheteurs) ou alors parvenir à faire "une injection" mémoire, ce qui est mission impossible (nan en fait C'EST impossible) dans une appli que tu n'as pas toi même compiler. Tout ce que tu peux faire, c'est modifier, c'est à dire patcher. Retirer, modifier, oui, ajouter, non.
Et quand bien même tu réussiras à injecter, tu ne sauras pas QUOI injecter. Dans mon exemple, le cas est simple. Bien utiliser, il est impossible de savoir quelles lignes de codes injecter.

Navré, sauf si tu me le prouves, tes propositions ne fonctionnent pas. Merci de t'être intéressé, et merci de tes félicitations.


Suivant ?


@+
Celiphane

PS: bcp de protections aujourd'hui ouvrent leur porte grâce à une connection internet, et le mouvement est grandissant. Même s'il est vrai qu'aujourd'hui tout le monde n'en dispose pas, je l'avoue volontiers.
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
14 juin 2004 à 10:25
2 petites choses... En connaissant la méthode, on peut cracker ton logiciel. Je m'explique :
- On l'achete
- On le lance en utilisant un surveillant de paquet et on attend la réponse du serveur avec sa commande.
- On modifie l'exe en y rajoutant la commande (si, si, c'est possible, desole...)

Ceci dit cette protection est pas mal, mais il faut internet et ca. Ben tout le monde ne l'a pas.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 juin 2004 à 09:45
Oui désolé c'est vrai !

En fait, cette protection ne se base pas sur le test d'un valeur avec une autre comme toutes autres protection : en effet, ces protections n'offres qu'une protection que peut efficace parceque le cracker peut désassembler l'application et nopper, ou bien modifier le test de l'égalité des valeurs. De cette manière les protections sautent...

D'où mon idée : éliminer tout test de valeur de l'exe pour valider le serial... impossible ? et bien non !

En fait le programme envoie le serial tapé sur une URL, c'est le serveur web qui teste la valeur, et si elle est ok, ce serveur web renvoie L'INSTRUCTION VB a exécuté pour poursuivre !!! Le programme la recoit et l'interprete en live.

En fait, l'instruction permettant de poursuivre une fois le bon serial tapé N'EXISTE PAS DANS LE PROGRAMME. Donc on ne peut pas modifier le programme pour qu'il l'active : il ne connait pas cette instruction... et comme on ne peut rien ajouter dans un exe une fois compilé...

@+
Celiphane
cs_Becks Messages postés 24 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 16 août 2005
13 juin 2004 à 15:10
Bravo !!
Je trouve ton code très bien !!! Mais maintenant que ta donner le code tu pourais fournir quelque commentaires !!! Pour l'améliorer tu pourais donner un serial par exe et quand tu envoie la requête sur le site envoie aussi ce serial, comme ca tu pourai avoir un seul code par exe !!
Bravo mais ce serait bien d'avoir des commentaires !!!
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
11 juin 2004 à 00:41
Allez, je donne le serial...

pour avoir l'aval de la protection mise en place, il faut valider ce code :

123-456-789-0


Je trouve que la protection fait bien son office : en désassemblant, le cracker est incapable de trouver le je ou le jne à faire sauter, et il ne peut pas non plus nopper. Est-il vraiment piéger ? Je continue de croire que c'est efficace, j'attends donc la preuve du contraire.


@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
10 juin 2004 à 16:11
non, pourquoi cette question ?
Il suffit de tester de toute facon...
ThierryTheOne Messages postés 8 Date d'inscription mercredi 10 décembre 2003 Statut Membre Dernière intervention 30 juin 2004
10 juin 2004 à 15:13
Le CRC32 tiendra pas longtemps. Et est-ce que ton serial serait pas:
"Aïe" par hasard?
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
10 juin 2004 à 12:51
Il me semble que sur ce site il y a un code qui permet de calculer le CRC32 d'un exe, je pense qui si tu l'utilise, tu peux verrouiller la modif du prg une fois compiler.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
10 juin 2004 à 10:24
jpeman> pour protéger un shareware par exemple.

ce qui est drôle, c'est que la personne qui a mis la note "1" n'a même pas compris la source ! :)

comment j'en suis sûr ? personne ne m'a encore donné le serial qui débloque la sécurité... donc elle reste en course !

;)

@+
Celiphane
jpeman Messages postés 22 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 24 mai 2005
9 juin 2004 à 18:49
faut que je me renseigne sur ce code car j'en comprends pas trop le principe et dans quelle utilisation on peut en avoir besoin, merci tout de meme, a+
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
9 juin 2004 à 10:48
J'vais jeter un oeil la-dessus quand j'aurais le temps...
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
9 juin 2004 à 10:39
d'ailleurs, je me REcite lol :

"En effet, vous ne trouverez dans mon zip qu'un exemple "tout con" de l'application de mon idée"

Voir l'idée donc, cracker l'idée, mais pas la faille X. Après chacun fait sa sauce avec l'algo ci-proposé.

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
9 juin 2004 à 10:38
lol

belle performance mais tu n'as pas compris !

je m'en fous que tu puisses afficher la form X ou la Y. Le but de la source est de montrer une idée de protection. En l'occurence, la regarder est le seule intérêt.

Quand je parle de la déjouer, c'est bien elle qu'il faut déjouer et pas une autre faille.

Tu piges pas ? Ba par exemple si je veux je change le programme et AU LIEU QUE LA REUSSITE SOIT L'OUVERTURE DE Fprivate, je FAIS EN SORTE QUE CE SOIT L'APPARITION D'UNE MESSAGE BOX, de la création d'un fichier etc...

Tu comprends pourquoi je dis que tu n'as pas compris j'espère ? Réessaye en fesant comme il faut, ce sera plus intéressant !

Merci de ton intérêt tout de même !

@+
Celiphane
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
9 juin 2004 à 09:39
Salut,
desoler de te le dir comme sa, mais ta protection n'a pas tenue 30 secondes, appene le temps de lancer VB !!
Non pas que je soi bon (loin de la) ni meme que ton code ne le soi pas (je ne l'ai pas regarder (par manque de temps). mais il existe une faile dans visual basic qui permet de selectionner la feuille de demarage meme apres compilation resultat des cource il suffie de dire que l'on veu demarer avec la feuille Fprivate et ne pas lancer Fpublic et le tour est jouer !! y a meme pas eu besoin de decompiler le prog !!

pour plus d'explication aller jetter un coup d'oeil ici
http://www.vbfrance.com/code.aspx?ID=5474 (la faille est entierement expliquer par Warning)

et ici pour avoir le logiciel de Warning pour pouvoir zaper toute les protection comme la tienne
http://www.vbfrance.com/code.aspx?ID=4946

voila y a encore du taf a faire pour proteger ses appli, non seulement faut penser a faire une protection corecte mais en plus faut trouver un moyen de compler les failles des outils a bilou lol

Bon courage pour la suite !!
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
9 juin 2004 à 01:24
Alors, pourquoi ce "truc" ?

et bien voyez-vous, j'ai souhaité contourné le sempiternelle test "=" ou "<>" qui conditionne la validité d'un serial, et qui est le plus simplement du monde contourner par une décompilation / patchage...

En attente de retours :)


@+
Celiphane
Rejoignez-nous