Désassemblage de mes éxécutables

jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Dernière intervention 5 février 2009 - 10 mars 2008 à 17:49
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 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

20 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
10 mars 2008 à 18:43
Ce n'est pas la découverte de tes mots de passe (tu peux les crypter autant que tu veux...) qui lui a servi...

Il a tout simplement substitué une condition à l'autre, picétou ...

genre :

Private Sub Command3_Click()
  If True Then MsgBox "on continue"
  If Not False Then MsgBox "on continue"
End Sub

et tu pourras difficilement lutter contre ces méthodes vieilles comme le monde
0
jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Derniè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.

jolauje
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Dernière intervention 5 février 2009
10 mars 2008 à 20:52
merci, j'ai bien compris ça.

jolauje
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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
0
jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Derniè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 ?

jolauje
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Derniè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. ;)

Je crois que je vais travailler la-dessus.

jolauje
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 mars 2008 à 21:59
si tu veux un testeur, je me portes volontaire... enfin, si ca prend pas trop de temps

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Derniè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.

merci à tous pour votre aide.

jolauje
0
cs_michelmm Messages postés 5 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 28 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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2008 à 14:46
postes une nouvelle question sur le forum...
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
24 sept. 2008 à 11:24
NHenry, qu'appeles-tu "demarrer une instruction ASM"...???
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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.

http://nhen0039.chez-alice.fr/index.php
0
jolauje Messages postés 32 Date d'inscription samedi 20 janvier 2001 Statut Membre Derniè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.

jolauje
0
mihoubi3333 Messages postés 21 Date d'inscription mercredi 28 décembre 2005 Statut Membre Dernière intervention 14 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,
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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).

http://nhen0039.chez-alice.fr/index.php
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 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)."

Comment cela??
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 avril 2009 à 11:39
tu fais pas :

If PasGentilUtilisateur Then
End
End If

faut etre plus filou...

consommer de la mémoire, se faire des bombes a retardement, quoi...
0
Rejoignez-nous