bonjour tlm,
- je voudrais si c'est possible , sécurisé ou controler la copie ou l'instalation de mon application ; pour qu'elle ne soit pas utilisé par n'importe qui sans mon accord.
Merci
bonjour tlm,
- je voudrais si c'est possible , sécurisé ou controler la copie ou l'instalation de mon application ; pour qu'elle ne soit pas utilisé par n'importe qui sans mon accord.
Merci
Malheureusement aucune méthode n'est vraiment efficace. Les plus grand éditeurs (Microsoft, etc...) sont ultra piraté, et ceci malgré des sommes astronomiques dépensées dans la protection logicielle.
Mais si c'est pour un usage a très petite échelle, tu peux envisagé des petites protections qui seront inefficaces contre des "pirates" avertis, mais suffisantes pour des utilisateurs lambda.
Regarde sur cette page, tu trouvera quelques conseils basiques.
Bon courage
C'est un gros travail que tu attaque ici, personnellement j'ai passer presque un an a protège une applic (le résultat n'est pas parfait, je passe au travers facilement mais je connait mon algo)
les solutions que j'ai retenue :
- Packer l'applic (verifier si sa taille a changer pendant l'exécution)
- Check somme sur le code en interne
- Vérifier si il y a de breakpoint de mis sur des endroit critique
- auto-modification du code a l'exécution
- Vérification si des debbugers sont présent
- Pas de message d'erreur en cas de détection de crack mais plantage aleatoire...
Voila pour les plus général ce qu'il faut absolument c'est que chaque fois que le crackeur pense avoir finit il se retrouve après quelque temps devant un nouveau problème.. pour finir par le décourager (sans grand espoir )
D. d.
Si c'est pour une application commerciale sur un ordinateur de bureau, tu as également l'option de passer par une protection physique (sous la forme de mini-clé USB) qui est nécessaire pour le démarrage de l'application.
Dans tous les cas, aucune méthode n'est sûr à 100%.
En fait je modifie une partie de mon code pendant l'exécution de façon a brouiller un peu les pistes..
Un petit exemple ci dessous (une Form avec 2 boutons et un label)
Le bouton 2 incremente chx et affiche dans le label
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int chx; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { LPVOID addressdebut; // pointeur sur le debut du code unsigned long oldprotect; //ancienne protection char *chardest; int result; asm{ mov dword ptr addressdebut,offset [sa_roule] //on calcul l'adresse du code a deplacer } chardest = (char *) addressdebut; // Ici on autorise l'ecriture dans la section code result = VirtualProtect(addressdebut,6,PAGE_EXECUTE_READWRITE,&oldprotect); chardest[0]=0x90; chardest[1]=0x90; chardest[2]=0x90; chardest[3]=0x90; chardest[4]=0x90; chardest[5]=0x90; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { asm{ sa_roule: } chx=chx+1; // se que l'on va modifier Label1->Caption=chx; } //---------------------------------------------------------------------------
Le bouton 1 va changer le code dans Button2click remplacer chx=chx+1 par des NOP...
Voila pour le principe après on peut faire bien plus compliqué ...
D. d.
- merci beaucoup pour les reponses , c vrais qu'il n y a pas de solution 100% sure.
Partager