IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Protection de code source


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Invit�
    Invit�(e)
    Par d�faut Protection de code source
    Bonjour,
    J'ai fait un sujet semblable sur un autre forum d'informatique mais pas de r�ponse donc je poste ici ;

    J'ai quelque questions sur la protection de fichier avec thermida tout d'abord comment sa fonctionne ?
    Est ce que xenocode est un logiciel semblable a thermida ?
    Peut on enlever la protection apport� par thermida ? comment ?

    Je me demande aussi comment un antivirus fait pour v�rifi� un fichier , j'ai entendu parler des signature en hexadecimal que l'on peut modifier avec avec un �diteur Hexad�cimal et la je me pose plein de question pourquoi l'hexadecimal ? pourquoi prendre juste une signature si on peut prendre la totalit� du code source ? et est ce que un anti-virus peut lire le fichier si il est prot�g� par thermida ? comment vont-ils faire pour voir la l�gitimit� du code source ?

    J'ai vu aussi des aussi des vid�o ou il modifiais la signature en h�xadecimal 0000 par F par exemple et la je comprend plus rien...

    Merci a ceux qui r�pondront a mes questions

    et j'aurais voulu savoir vous personnellement est ce que vous vous souciez de la protection du code source de votre programme si oui vous utiliser quoi ?

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,
    Citation Envoy� par yohann2008 Voir le message
    Bonjour,
    J'ai fait un sujet semblable sur un autre forum d'informatique mais pas de r�ponse donc je poste ici ;

    J'ai quelque questions sur la protection de fichier avec thermida tout d'abord comment sa fonctionne ?
    Est ce que xenocode est un logiciel semblable a thermida ?
    Peut on enlever la protection apport� par thermida ? comment ?

    Je me demande aussi comment un antivirus fait pour v�rifi� un fichier , j'ai entendu parler des signature en hexadecimal que l'on peut modifier avec avec un �diteur Hexad�cimal et la je me pose plein de question pourquoi l'hexadecimal ? pourquoi prendre juste une signature si on peut prendre la totalit� du code source ? et est ce que un anti-virus peut lire le fichier si il est prot�g� par thermida ? comment vont-ils faire pour voir la l�gitimit� du code source ?

    J'ai vu aussi des aussi des vid�o ou il modifiais la signature en h�xadecimal 0000 par F par exemple et la je comprend plus rien...

    Merci a ceux qui r�pondront a mes questions

    et j'aurais voulu savoir vous personnellement est ce que vous vous souciez de la protection du code source de votre programme si oui vous utiliser quoi ?
    Voil� beaucoup de questions...

    Tu aurais sans doute eu int�r�t � cr�er plusieurs discussions, histoire de permettre � "ceux qui savent" de ne r�pondre qu'� ce qu'ils savent, � savoir:
    • une discussion pour demander des informations sur thermida et sur xenocode
    • une discussion sur la signification de l'hexad�cimal
    • une discussion sur le fonctionnement des antivirus
    • une discussion sur la modification de la signature des videos
    (le tout en choisissant correctement la rubrique dans laquelle la discussion aurait eu le plus de chance d'obtenir une r�ponse )

    Car, si on prend mon cas, par exemple:
    Thermida xenocode ... Connais pas

    Mais deux choses sont sures :
    • C++ est un langage compil�, ce qui fait que, quoi qu'il arrive, ce ne sera pas ton code source qui sera attaqu�, mais bien le code (binaire) de ton application
    • Quelle que soit la m�thode de protection choisie pour �viter, non pas de te faire v�roler ton code, mais plutot de te faire pirater ton application (en �vitant de payer la licence pour celle-ci, le plus souvent ), aucune m�thode n'est totalement infallible, au grand dam des plus grands fournisseurs de logiciel
    Concernant le "pourquoi l'hexad�cimal", la r�ponse est simple : parce que c'est la base num�rique la plus ais�e � utiliser lorsqu'on travaille en binaire

    En effet, la base de calcul hexad�cimal permet de repr�senter seize valeurs avec un seul symbole (de 0 � 15, ou, plutot, de 0 � A ).

    Or, l'ordinateur travaille d'office en base 2 (il ne dispose que de deux symboles pour repr�senter son ensemble de valeurs : 0 et 1), alors que nous (les humains ) sommes beaucoup plus habitu�s � compter en base 10 (avec 10 symboles pour les unti�s :de 0 � 9 )

    Il se fait que, si l'on groupe 8 "bits" (8 fois un symbole binaire), il est, justement, possible de repr�senter les 16 valeurs potentielles de la base hexad�cimale, et c'est donc tout � fait naturellement que l'on a d�cid� d'utiliser cette base qui rend quand meme la lecture plus simple : A en hexad�cimal s'�crivant 00001010 en binaire

    (d'ailleurs, toute l'architecture des processeurs "grand public" se base sur cette constatation )

    Pour autant que je sache (mais je peux me tromper tr�s lourdement), les antivirus cherchent surtout certaines s�quences de valeurs qui sont la "signature" des virus dans l'ensemble des donn�es et r�agissent � cela

    Que la partie binaire ait �t� prot�g�e ou non par un logiciel ne changera pas grand chose : g�n�ralement, le virus va modifier le binaire apr�s qu'il ait �t� g�n�r� (et potentiellement "crypt�"), ce qui fait que sa signature ne sera vraisemblablement pas impact�e par le cryptage en question

    Enfin, concernant ta question sur la video, il faut juste faire attention au fait qu'on a tendance � utiliser le terme signature � tord et � travers

    Il existe une foulle assez impressionnante de signature potentielles sur un fichier:
    • La signature (l'empreinte) du fichier en lui meme, qui peut permettre de s'assurer que le fichier n'a pas �t� corrompu lors de son transfert
    • la signature indiquant le type de fichier dont il s'agit effectivement (et qui sert � certaines application pour savoir si tu travailles sur une archive ou sur un fichier video, par exemple),
    • la signature du contenu "r�el" du fichier (hors tout ce que l'on pourrait appeler les "en-t�tes" permettant de s'assurer que l'on a bien affaire � un fichier d'un type donn�)
    • la signature permettant de s'assurer que la personne qui tente d'utiliser le fichier a bien pay� la licence qui lui permet de le faire
    • la signature permettant d'autentifier l'utilisateur qui envoie le fichier
    • j'en passe et de meilleures ...
    Comme une signature n'est pas l'autre, vas savoir quelle signature tu modifies r�ellement avec tes videos
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Membre tr�s actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par d�faut
    Correction: Themida, pas thermida.
    Ensuite themida est tr�s puissant et donnera une protection contre 90% des gens qui tenteront de "decompresser" ton appli. (Themida ajoutant protection sur protection)
    Le meilleur exemple que j'ai en tete est celui de MapleStory. Le client est proteg� par themida, et pourtant, cela fait presque 6ans que des serveurs priv�s existent, et pour cela, il a fallu casser la protection themida, et changer l'ip du serveur qui se situe en plein dans le programme !
    Donc, aucune protection logicielle !
    A toi d'etre malin =)

  4. #4
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour et merci d'avoir r�pondu a mon sujet

    Koala01 tu dit que c'est le code source qui sera attaqu�, mais le code (binaire) mais c'est pour ensuite le d�compiler (d�sassembler) ? Que signifie se faire v�rol� son code ?

    Pour l'hexad�cimal , donc la signature se trouve donc aussi sur le code binaire , octal , base de 3 etc du fichier ?

    Tu voulais bien dire de 0 a F ? Donc un �diteur hexad�cimal vas convertir chaque 8bits en 1 nombre hexad�cimal ?

    je comprend pas pourquoi on prend 8 bits pour la conversion ?
    http://www.elektronique.fr/cours/cod...exadecimal.php

    Peut-on trouver ou mettre d'autre symbole que du binaire dans un fichier .exe ? par exemple en attente d'un d�cryptage (les symboles pas binaire situ� apr�s un code binaire se chargeant de les d�crypter )

  5. #5
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par yohann2008 Voir le message
    Bonjour et merci d'avoir r�pondu a mon sujet

    Koala01 tu dit que c'est le code source qui sera attaqu�, mais le code (binaire) mais c'est pour ensuite le d�compiler (d�sassembler) ? Que signifie se faire v�rol� son code ?
    Bon, ca va �tre dur

    Tu dois comprendre que tout ton ordinateur n'est qu'un ensemble d'interrupteur et de "portes logiques" qui permettent, en fonction de la position de certains interrupteurs, de laisser passer (ou non) le courent.

    En informatique, on appelle ces interrupteurs des bits.

    Mais un bit n'a donc que deux �tats possibles : il laisse passer le courent, ou il ne le laisse pas passer.

    On peut donc repr�senter l'�tat d'un bit avec deux symboles : 0 le courent ne passe pas, 1 le courent passe.

    C'est ce que l'on appelle la notation binaire.

    Mais comme deux valeurs pour repr�senter tout ce que l'on veut, c'est pas beaucoup, on a regroup� les bits par 8 (enfin, dans les processeurs "grand public"), afin de pouvoir repr�senter 2^8 (2x2x2x2x2x2x2x2) = 256 valeurs.

    C'est ce que l'on appelle le byte.

    Le processeur est capable de travailler avec des bytes (souvent meme avec 4 ou 8 bytes en meme temps) et peut, selon le cas, consid�rer la valeur qui est repr�sent�e par un (ensemble de) byte(s) soit comme une instruction, soit comme une valeur.

    Il faut comprendre que, lorsque tu �cris for(i=0;i<value;++i) (ou quoi que ce soit d'autre), cela n'est pas directement compr�hensible par le processeur...:

    Il faut traduire cette instruction que tu arrives � comprendre en un ensemble de byte que le processeur sera en mesure de comprendre.

    Pour ce faire, il existe deux possibilit�s :

    Soit, on utilise une application qui va prendre le code que tu as �crit et le traduire "� la vol�e" (comprend : en cours d'ex�cution) en un ensemble de byte compr�hensible par le processeur pour lui dire quoi faire (on utilise alors ce que l'on appelle un langage "interpr�t�")
    Soit on utilise une application qui va traduire ton code une bonne fois pour toute et g�n�rer un fichier qui contient directement les instructions sous une forme compr�hensible par le processeur, qui n'aura qu'� les utiliser (on utilise alors ce que l'on appelle un langage "compil�")

    C++ fait partie des langages dits "compil�s": l'application que tu fournis � un utilisateur est en r�alit� un (ensemble de) fichiers contenant les instructions au format binaire que le compilateur aura g�n�r� � partir de ton code.

    Il est possible de "d�sassembler" un fichier binaire afin d'y retrouver la suite d'instructions et le valeurs qui servent au processeur, mais ce que l'on r�cup�re n'est que "le r�sultat de la compilation", et il n'est donc pas possible de retrouver ton code tel qu'il �tait �crit � l'origine.

    Mais il est malgr� tout possible de comprendre ce qui est fait
    Pour l'hexad�cimal , donc la signature se trouve donc aussi sur le code binaire , octal , base de 3 etc du fichier ?

    Tu voulais bien dire de 0 a F ? Donc un �diteur hexad�cimal vas convertir chaque 8bits en 1 nombre hexad�cimal ?
    binaire, octal, d�cimal et hexad�cimal ne sont que des termes qui repr�sentent le nombre de symboles que l'on peut utiliser avant de devoir passer � la "colonne sup�rieure":

    En binaire, on a deux symboles possibles: 0 et 1... pour repr�senter la valeur "2", il faut donc passer � la colonne suivante, et on le fait par la valeur 10
    En octal, on dispose de 8 symboles : 0, 1, 2, 3, 4, 5, 6, et 7, et pour repr�senter la valeur 9 il faudra donc utiliser deux symboles cote � cote : 11
    En d�cimal (c'est la base de calcul que nous apprenons � maitriser d�s l'�cole primaire ), on dispose de 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9, et tu sais comment repr�senter la valeur "douze"

    En hexad�cimal enfin, on dispose de 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F et pour repr�senter la valeur 31, nous �crirons alors 1F.

    Le calcul de la valeur se fait � chaque fois de la meme mani�re:
    Soit X = la valeur du symbole, C le num�ro de la colonne et B le nombre de symboles utilisable, pour chaque colonne, on calcule X *(B^C)
    on additionne le r�sultat obtenu pour chaque colonne

    Ainsi, en fonction de la base envisag�e, 111 vaudra
    • 7 ( (1*2^2) +(1*2^1)+(1*2^0) ) en binaire
    • 73 ( (1*8^2)+(1*8^1)+(1*8^0) ) en octal
    • 111 ((1*10^2)+(1*10^1)+(1*10^0) ) en d�cimal
    • 273((1*16^2)+(1*16^1)+(1*16^0) ) en hexad�cimal
    Les bases octales et hexad�cimales ont une particularit� int�ressante par rapport � la base d�cimale : il y a toujours un ensemble de bits complet qui permet de repr�senter l'ensemble des symboles disponibles pour ces deux bases :

    • 3 bits permettent de repr�senter les 8 symboles de la base octale( 111 en binaire vaut 7 en d�cimal (7 en octal), alors que quand 1000 en binaire vaut 8 en d�cimal et sera repr�sent� en octal sous la forme de 10)
    • 4 bits permettent de repr�senter les 16 symboles de la base hexad�cimale (1111 en binaire vaut 15 en d�cimal (F en hexad�cimal) alors que 10000 en binaire vaut 16 en d�cimal et sera repr�sent� en hexad�cimal sous la forme de 10)
    Comme il est plus facile de lire AA et de se dire qu'on est en hexad�cimal plutot que de lire 10101010 en binaire, tu comprendras qu'on pr�f�res utiliser le format hexad�cimal, bien que cela repr�sente toujours la m�me valeur (� savoir 170 en d�cimal )

    Il faut bien comprendre que, que l'on �crive 10101010 (binaire), 252(octal), 170(d�cimal) ou AA(hexad�cimal), la valeur reste tout � fait la m�me, il n'y a que la convention de conversion qui change


    je comprend pas pourquoi on prend 8 bits pour la conversion ?
    http://www.elektronique.fr/cours/cod...exadecimal.php
    Simplement parce que 8 bits, c'est surtout 2 x 4 bits, et que 4 bits permettent de repr�senter les 16 valeurs de l'intervalle possible en hexad�cimale:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    binaire     |1100|1101| (205 décimal)
    hexadécimal | C  | D  | (205 décimal)
    Peut-on trouver ou mettre d'autre symbole que du binaire dans un fichier .exe ? par exemple en attente d'un d�cryptage (les symboles pas binaire situ� apr�s un code binaire se chargeant de les d�crypter )
    Non, un fichier binaire consid�re tout comme �tant du binaire...

    L'interpr�tation que l'on en fait, la mani�re dont on va repr�senter une valeur donn�e, peut varier, mais la valeur restera strictement identique.

    Ainsi, on peut repr�senter toutes les lettres de l'alphabet (et d'autres symboles encore) en d�cidant de prendre 8 bits cons�cutifs et en utilisant la table de conversion que l'on appelle "table ASCII", qui est une table qui indique (pour un groupe de 8 bits donn�s) � quel caract�re correspond chaque valeur possible
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  6. #6
    Invit�
    Invit�(e)
    Par d�faut
    Merci beaucoup de m'avoir r� expliqu�

    "Il se fait que, si l'on groupe 8 "bits" (8 fois un symbole binaire), il est, justement, possible de repr�senter les 16 valeurs potentielles de la base hexad�cimale"
    Mais en prenant 4 bits les 16 valeurs de l�hexad�cimal sont toute repr�sent�e...
    vous le dites vous m�me ici ;
    "Simplement parce que 8 bits, c'est surtout 2 x 4 bits, et que 4 bits permettent de repr�senter les 16 valeurs de l'intervalle possible en hexad�cimale:"
    et pourquoi ce x2 ?

    Est ce que les processeur x86 et x32 c'est pareil ?

    En faites quand on crypte les donn�es d'un fichier binaire ont fait une sorte de r�arrangement des 0 et 1 en fonction de l�algorithme utilis�e ?

    Et quelques questions comme �a ^^ ;
    C'est quoi la diff�rence entre un �diteur hexad�cimal et un d�sassembleur ?
    Et il possible de crypt� plusieurs fois un fichier exe (2 ou 3) pour emp�cher du cracking ? (j'aurais pens� que a un moment le fichier serait "casser")
    Derni�re modification par Invit� ; 08/04/2012 � 03h03.

  7. #7
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par koala01 Voir le message
    Que la partie binaire ait �t� prot�g�e ou non par un logiciel ne changera pas grand chose : g�n�ralement, le virus va modifier le binaire apr�s qu'il ait �t� g�n�r� (et potentiellement "crypt�"), ce qui fait que sa signature ne sera vraisemblablement pas impact�e par le cryptage en question
    J'ai entendu parler des crypter runtime , comment il marche ?

    Pourquoi ne pas prendre la base 32 ou 8 pour lire une signature ?

    et si on modifier la signature d'un fichier , en hexad�cimal par exemple on modifie 1 lettre sa modifie 4bits ! mais comment sa peut fonctionner car sa doit modifi� les instructions donn� au processeur , non ?

    Merci encore

Discussions similaires

  1. Protection du code source - Programme PHP
    Par safener dans le forum Cloud Computing
    R�ponses: 0
    Dernier message: 01/08/2014, 19h29
  2. R�ponses: 4
    Dernier message: 12/11/2013, 14h34
  3. protection du code source et des donn�es
    Par drick35 dans le forum Android
    R�ponses: 2
    Dernier message: 22/04/2013, 15h41
  4. protection du code source
    Par sam01 dans le forum Droit
    R�ponses: 3
    Dernier message: 28/06/2006, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo