jolauje
Messages postés32Date d'inscriptionsamedi 20 janvier 2001StatutMembreDernière intervention 5 février 2009
-
10 mars 2008 à 17:49
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
29 avril 2009 à 11:39
Bonjour
L'un de mes éxécutables (compilé en code natif) d'un addon de 800mo se voie cracké par un hacker.
Pourquoi ? parce-qu'il arrive à lire tous les textes de type String inscrits dans le code
donc contourner mes mots de passe et mes MsgBox.
Ma question est:
Comment puis-je cacher tous les textes sans utiliser le MD5 sur tous les textes (type String) ?
merci de vos réponses rapides. C'est urgent, ce prog est utilisé par plus de 10000 personnes.
jolauje
Messages postés32Date d'inscriptionsamedi 20 janvier 2001StatutMembreDernière intervention 5 février 2009 10 mars 2008 à 19:19
salut
oui voilà le soucis, il passe à côté et n'affronte pas ma protection directement
il fait sauter le MsgBox et c'est tout. Comment faire ? comment faire ?
........
et pourquoi pas avec un compresseur perso qui lance mon exécutable ?
de type executable Winrar mais sans avoir la page de démarrage Winrar bien sûr.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 mars 2008 à 20:41
Toute protection quel qu'elle soit a (et aura) toujours un gros point faible, le test d'autorisation.
Quel quel soit le système que tu mettra en place, il faudra toujours à moment donné testé si l'autorisation d'execution est donnée.
Et ce test est toujours contournable.
Maintenant si évidement tu stocke tes mdp en dur et en clair dans le code, il n'est même pas necessaire de contouner le test, une simple ouverture avec notepad (MSWord en mode Récupération de texte est aussis pas mal) permet de récupérer le code.
Commence déja par non pas stocker les mdp, mais leurs signatures (hash). Comment ça impossible de retrouver le mdp à partir du texte dans l'exe.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 11 mars 2008 à 09:04
Bonjour
Sinon, autres conseils :
- Si c'est possible, ne pas bloquer toute l'application, mais réduire ses fonctionnalités (petit à petit), comme ça c'est plus difficile de trouver où est fait le controle.
- Ne pas mettre les chaines critiques (mots de passe, texte demandant l'authentification, ...) en clair (mais pas tout crypter non plus), un XOR peut suffir, mais il y a mieux et c'est plus lourd aussi.
- Sinon, il y a une astuce, vue quelque part, mais je ne sais plus où (The hackademy journal je crois), qui consiste à demarrer une instruction ASM, ce qui a tendance à déconcerter les désassembleurs quand c'est bien fait.
voilà, pour completer.
Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 mars 2008 à 10:45
oui, evites le "Vous n'etes pas autorisé => Unload Me"
réduit les fonctionnalités, provoques des crashes... duplique le code de tes a divers endroits...
testes la presence de debuggeurs,
testes le temps avant/après autour de la protection... si ce temps est trop long, on analyse surment le flot de traitement de ton appli
jolauje
Messages postés32Date d'inscriptionsamedi 20 janvier 2001StatutMembreDernière intervention 5 février 2009 11 mars 2008 à 18:59
oui, le hacker m'a recontacté, il me met qu'il a mis 10 mn pour contourner ma protection parce-qu'il a listé mes msgbox (visibles en clair dans son prog désassembleur) et a donc annulé l'effet de celui-ci en changeant uniquement un bit.
Je suis un peu déconcerté par tout ça, ça me fout les nerfs.
2 ans de boulot foutus en l'air en 10mn.
Il y a sûrement une solution, enlever les msgbox ou je ne sais plus.
Reste la solution serveur internet, mon prog se connecte à internet pour fonctionner.
Je peux très bien récupérer des informations par ce biais.
Qu'en pensez-vous ?
Est-ce que ça peut facilement se cracker aussi ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 mars 2008 à 19:34
si les infos recupérées par internet sont indispensables au bon fonctionnement du programme, oui...
si ca te permet juste de faire un if qui va bien, c'est mort.
si ce hacker peut faire les tests qui vont et te tenir au courant, c'est sympa
jolauje
Messages postés32Date d'inscriptionsamedi 20 janvier 2001StatutMembreDernière intervention 5 février 2009 11 mars 2008 à 19:43
merci de ta réponse.
pas de if, c'est le serveur qui va interpréter en conséquence
et réagir en fonction car ça passe via internet pour l'envoi de temps de course.
Donc, s'il mon prog détecte une anomalie et qu'il le dit au serveur, celui-ci
enregistrera l'information et m'en avertira, donc pas de msgbox, pas de if. ;)
jolauje
Messages postés32Date d'inscriptionsamedi 20 janvier 2001StatutMembreDernière intervention 5 février 2009 11 mars 2008 à 22:24
je te remercie mais, non, c'est trop compliqué.
j'ai trouvé la solution, je pense.
Contrôle MD5 (+ cryptage) de mes fichiers compressés 7z et encryptés AES 256 avec mot de passe (beaucoup de caractères) + cryptage du mot de passe.
Contrôle caché rapide, pas de valeur mémorisée, pas de msgbox, pas de if, envoi sur serveur direct, vérification du serveur sur base de données avec mot de passe, autorisation ou pas de l'utilisation ou mémorisation de la tricherie.
Egalement, prog compilé et recompilé
Je crois que ça va le faire encore faut-il s'en donner les moyens.
Ce qui inclus que je doive recoder mes fichiers avec un nouveau mot de passe puis le crypter, créer les MD5 cryptés aussi, créer la base de données ainsi que le code serveur etc... etc...
je vais le faire car j'ai trop travaillé sur ce projet pour le voir capoter si vite.
cs_michelmm
Messages postés5Date d'inscriptionmardi 20 septembre 2005StatutMembreDernière intervention28 avril 2008 28 avril 2008 à 14:44
Bonjour
Au propos de protéger un exe par une liaision au net, pouvez-vous me dire comment et où déposer une base de données ACCESS 97 sur le net et y effectuer une requete SQL depuis l'appli !
Je possède une page perso sur Orange.
Comment effectuer la connexion à cette page par VB et pouvoir transmettre un SELECT * FROM ??? ou autre ?
Michel MONTIAS - idc informatique
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 24 sept. 2008 à 13:04
Bonjour,
Ce que j'ai voulu dire, c'est que une chaine de texte est clairement visible dans un décompilateur, il suffit juste de commencer (1er octet par ex) par un code de début d'instruction, et le désassembleur interpretera la chaine comme des instructions assembleur.
jolauje
Messages postés32Date d'inscriptionsamedi 20 janvier 2001StatutMembreDernière intervention 5 février 2009 24 sept. 2008 à 20:07
re
Maintenant, je code tout avec la méthode citée plus haut (pas de chaine string, tout en numérique). C'est compliqué mais ça fonctionne.
PQ ? Les désassembleurs font sauter les msgbox pour laisser passer...
et modifient les strings.
mihoubi3333
Messages postés21Date d'inscriptionmercredi 28 décembre 2005StatutMembreDernière intervention14 juin 2011 28 avril 2009 à 23:07
proposition:
utilisez la condition(si le logiciel de désassemblage est en cours d'exécution then terminer l'application) pour éviter de loader l'application par un desassembleur;
je suis zero au VB,
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 29 avril 2009 à 11:07
Bonjour,
Ce n'est pas ce qu'il y a de mieux, car le vil pirate corsaire, n'aura qu'à vérifier l'utilisation de la commande de fermeture du programme pour voir où il se fait jeter.
Le mieux, c'est détourner l'exécution du programme. (Un jeu faisait cela, passé un certains temps, il y avait trop d'ennemi pour pouvoir continuer le jeu).
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 29 avril 2009 à 11:36
"Le mieux, c'est détourner l'exécution du programme. (Un jeu faisait
cela, passé un certains temps, il y avait trop d'ennemi pour pouvoir
continuer le jeu)."