Sécuriser une application.

Kleidp Messages postés 124 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 10 février 2008 - 4 sept. 2006 à 12:41
dodo7263 Messages postés 616 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 - 29 avril 2011 à 21:09
Bonjour a tous,

Je suis en train de coder une application que j'aimerais sécuriser un minimum, pour au moins décourager les hacker du dimanche.

Pour commencer, j'ai un login / Mot de passe a entrer que je compare à un hash de SHA256, bon pas de quoi casser des briques ...
Maintenant il faudrait que je me protège plus ou moins efficacement contre le désassemblage et le tracing.

Contre le désassemblage que pensez vous d'une obfuscation et d'une compression upx, en gros est ce que ça tiendra plus de quelques heures (en espérant que le nuisible se décourage vite :) ?
Le point le plus difficile apparemment est d'empêcher qu'un debuggeur s'exécute, voici ce que j'ai trouvé :
En effet un programme peut effacer lui-même les Drx (debug registers ;
registres hardware de debugging) de son propre CONTEXT (cf. structure
CONTEXT de Get/SetThreadContext). La structure CONTEXT est directement
atteignable au travers du SEH.


Mais le problème reste le même, le SEH peut être ou non pris en charge
par le debuggeur, le mieux est encore d'alterner des SEH qui ne font
rien de spécial, et des SEH qui vont s'occuper de tester si l'on est
effectivement débuggé.


Pour un "anti-tracing" (empêcher un débugger de tracer le code de son
application) on peut manipuler le registre EFLAGS (toujours dans un
SEH) en mettant le drapeau TF (trap flag) à 1 dans un SEH. Le trap flag
une fois armé déclenche une exception de type "trap" et les debuggeurs
sont incapables de continuer à tracer...


Le mieux est encore de coupler tout ca avec des méthodes anti-analyse
(junk code, VM, crypto) + une détection de breakpoint (en cherchant
l'opcode 0xCC qui correspond à une INT3) + un CRC pour vérifier
l'intégrité de son propre code : on commence à tenir une protection qui
tient la route :!:





Outch pas facile à voir comment réaliser ça en C#, mais est ce seulement réalisable (puisqu'on ne peut utiliser l'asm) ?
Y a t'il un autre moyen d'empêcher un debuggeur de s'éxecuter, de poser des breakpoints sur notre code en mémoire ?

Voila, j'en ai fini avec mes questions, merci pour vos futur (et intéressante) réponses.

6 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
5 sept. 2006 à 14:33
mouaip... tout en sachant que pour "cracker" ton prog il suffit de le désassembler (ildasm)... avec un peu d'entrainement la modification ne prend que quelques minutes...

donc les protections anti debuggeur... ne servent à rien.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
Kleidp Messages postés 124 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 10 février 2008
6 sept. 2006 à 15:42
C'est justement pour ça que je veux compliquer la lecture du code désassembler.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
6 sept. 2006 à 15:58
mouaip... mais conbien de temps ca va tenir :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
Kleidp Messages postés 124 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 10 février 2008
6 sept. 2006 à 18:39
Bizarrement je n'arrive pas a trouver de documents (en français) sur le sujet !
Je sens que je vais devoir plutot regarder du coté des sites obscures :)
0

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

Posez votre question
afihamza34 Messages postés 3 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 29 avril 2011
29 avril 2011 à 17:45
pour la sécurisation il faut faire une astuce qui permet a votre application de marcher a sens unique;
par exemple faire une test au démarrage au l'@ mac de pc qui utilise votre application.

af_h
0
dodo7263 Messages postés 616 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 6
29 avril 2011 à 21:09
Bonjour,

Simple curiosité de ma part :
Quel genre d'application mérite une telle protection ?

Est ce une application commerciale et dans ce cas je comprends ta démarche ou est ce une application que tu veux partager avec la communauté ?

Sinon comme le dis sebmafate, de la patience, de la volonté et des connaissances et on fait à peu près tout ce qu'on veut avec un PC.

@pluche

[b]"Chez ceux qui semblent très vertueux se cachent en général la vanité, l'orgueil, l'intolérance".

P.Coehlo (Maktub 2004)/b
0