Page 2 sur 3

Re: encrypter une image

Publié : jeu. 03/mars/2011 9:46
par Scrat
Juste par curiosité
Pourquoi encrypter une image ?
Si tu embarques une image dans ton prog, tu vas a un moment ou un autre la rendre a l'ecran, donc non encryptée.

Y'a surement une finesse que je n'ai pas compris

A+

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:18
par Backup
Scrat a écrit :Juste par curiosité
Pourquoi encrypter une image ?
Si tu embarques une image dans ton prog, tu vas a un moment ou un autre la rendre a l'ecran, donc non encryptée.

Y'a surement une finesse que je n'ai pas compris

A+
il ya plein de raisons pour faire cela
la plus connu , c'est d'éviter qu'on te pique ton images pour l'utiliser a des fin détourné
ou bien dans un autre jeux ...
c'est pas les raisons qui manquent

c'est pas parceque ton image apparait en clair a l'écran, que tu vas pouvoir la piquer
(a moins de la prendre en photo avec un appareil numérique...)
mais tu perds en qualité ....

mais dans le cas d'un jeu, la capture par APN sera troublé par un sprite ou autre animation
qui passerai dessus, ou bien par un "waterMArk"

c'est pourquoi, je peux comprendre l'envie de protéger son "oeuvre"

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:30
par case
Dobro a écrit :
il ya plein de raisons pour faire cela
la plus connu , c'est d'éviter qu'on te pique ton images pour l'utiliser a des fin détourné
ou bien dans un autre jeux ...
c'est pas les raisons qui manquent

c'est pas parceque ton image apparait en clair a l'écran, que tu vas pouvoir la piquer
(a moins de la prendre en photo avec un appareil numérique...)
mais tu perds en qualité ....

mais dans le cas d'un jeu, la capture par APN sera troublé par un sprite ou autre animation
qui passerai dessus, ou bien par un "waterMArk"

c'est pourquoi, je peux comprendre l'envie de protéger son "oeuvre"
voila, j'entrerais pas dans le débat c'est pas le sujet ici :)

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:34
par blendman
SPH a écrit :Blendman, quand tu auras une routine de cryptage, tu pourras la donner et donner une image crypté pour voir si on arrive a la decrypter ? (car on a fait un concours de cassage de code et c'etait super)
oui, bien sûr, mais il ne faut pas s'attendre à un système incroyable, ce sera à mon avis très très facile à décrypter, car je suis complètement débutant en programmation et déjà, je n'ai pas compris tout à fait ce que je devais faire pour bien crypter une image lol.
Par contre, si tu parviens à la décrypter, faudra me donner des pistes pour mieux la crypter, hein ;)
Le psychopathe a écrit :Donc il faut que tu lises ton fichier image et que tu transposes chaque octet de celui-ci afin de faire une opération XOR avec l'octed de ton pass.

DOnc si tu as un mot de passe comme : 123456789 il fait 9 de longeur, donc 9 octet dans ce cas.
Tu compares chaque octets de fichier avec chaque octet de ton passe (en boucle car 9 de longeur). Pour une image l'avantage est qu'il est impossible de savoir des valeurs aléatoires sauf au debut. Il faut que tu verifies l'entête des fichiers images (jpg, gif ...).
Voilà une piste si tu veux que ton image soit bien protégé.
je comprends un peu la théorie, mais au niveau pratique, tu aurais un petit exemple qui me permette de voir ce qu'il faut faire, car je ne sais pas du tout comparer les octets par exemple, ou vérifier l'entête des fichiers.
Dobro a écrit :il faut que la clef soit plus grande que l'entete ;)
parceque sinon , vu que l'entete d'un jpg est connu
il est relativement facile de retrouver la clef ;)
mais si la clef est plus grande que l'entete connu , la ça deviens hard
si la clef est aussi grande que l'image , ça deviens impossible :)
ok, faudra que je mette une très très longue clef alors :)
SPH a écrit :Tout dependra de la methode de cryptage utilisé. Je pense qu'un BMP est plus facile a decrypter qu'un JPG.
je pense que je ne vais utiliser que des jpg et des png, à mon avis.
Scrat a écrit :Juste par curiosité
Pourquoi encrypter une image ?
Si tu embarques une image dans ton prog, tu vas a un moment ou un autre la rendre a l'ecran, donc non encryptée.
Y'a surement une finesse que je n'ai pas compris
En fait, je réalise ce jeu dans un cadre "commercial" (oui, je sais c'est étrange car je ne suis pas développeur et c'est moi qui fait le développement, mais pour ce projet (3 arks), et bien étant donné que tous les développeurs avec qui je travaillais m'ont un peu lâché, je suis bien obligé de le développer moi-même :).

Sinon, pour répondre à ta question pourquoi encrypter une image ?
En fait, personnellement, j'aime l'open-source : j'utilise gimp, blender, open office.
Et comme je le disais si quelqu'un me demande mon code (et s'il est sympa), je lui filerai sans problème. Peut être pas avec les mêmes noms de variables, mais disons que les techniques , les procédures, etc..
Pour les images, c'est un peu pareil, si quelqu'un veut que je lui fasse des images pour son jeu (un jeu "commercial", pas amateur, car je n'ai pas le temps hélas pour ça), si je trouve le temps, je lui ferai des images.

Concernant cette protection, c'est juste pour éviter qu'on retrouve trop facilement mes images dans un autre jeu, disons immédiatement à sa sortie :).

Je sais très bien que la protection "absolue"n'existe pas, et ce n'est pas mon but. Le truc c'est juste d'éviter que les kikoo de bases piquent les images du jeu trop facilement et les utilisent sur leur jeu, au début tout au moins. Je l'ai déjà vu et je ne trouve pas ça très sympa.
Je bosse sur ce jeu (images) depuis près de 5 ans, donc, j'aimerai pouvoir le sortir sans que ce soit trop facile de tout récupérer pour s'en servir dans un autre jeu.
Après, peut être que je ne les protégerai et que je donnerai même un éditeur de niveau pour créer soi-même des maps pour le jeu, je ne sais pas encore. Mais ce serait sympa.

Si je les protège (un peu), évidemment un gars qui s'y connait n'aura aucun mal à récupérer les images, un simple screenshot et tu découpes les sprites très facilement, mais c'est long et pénible :). Ou même un truc genre dump mémoire et hop, pour le plus simple.
Mais disons pour faire simple que sur 500 utilisateurs, 450 sont capables d'utiliser directement un fichier png ou jpg, peut être 100 sont capables de "dépacker" un .pak, et peut-être 20 sont capables d'aller chercher l'image en mémoire.

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:35
par Backup
case a écrit :voila, j'entrerais pas dans le débat c'est pas le sujet ici :)
que veut tu dire ?

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:40
par blendman
Dobro a écrit :
case a écrit :voila, j'entrerais pas dans le débat c'est pas le sujet ici :)
que veut tu dire ?
à mon avis, il veut parler du "débat" entre open-source et jeu commercial, par exemple.

Personnellement, comme je l'ai déjà dit, j'aime l'open-source, et mes sources, je peux les filer sans problème, même si elles sont pas d'un grand intérêt :).
Par contre, ayant bossé déjà 5 ans sur ce jeu, j'aimerai pouvoir en vivre, c'est aussi simple que cela :).
C'est pour ça que le jeu ne sera pas, au début tout au moins, open-source, ou en tout cas, pas tout, peut être certaines parties (le code comme je disais).

Je pense qu'il faut respecter l'avis de celui-ci qui souhaite simplement vivre de son travail, et donc le protéger si nécessaire.
Et comme on ne vit pas dans un monde de bisounours (ce serait sympa pourtant) , il est normal que l'on cherche certains moyens pour protéger le travail que l'on fait, si on en a envie ;).

EDIT : pour revenir au sujet initial, je pense que lorsque j'aurai un peu avancer dans la compréhension globale d'une protection basique (pour débutant) j'essaierai de faire un petit tutoriel. cela pourrait intéresser les débutants comme moi, et ça me permettra de voir si j'ai bien tout saisi.

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:52
par Backup
ce qu'il te faut bien comprendre dans le cryptage d'image c'est

seule l'image deja crypté (avec un crypteur maison) soit présente dans le prg

il n'est pas question d'inclure une image en clair , qui sera crypté par le meme prg


le Jeux "xxx" aura en son sein , des images qui ont été préalablement crypté par le crypteur "yyy"


donc tu crypte tes images avec un algo maison (j'en reparle plus bas ....)

puis tu inclue tes images (crypté donc...)dans ton prg de jeux "xxx"

dans ce prg de jeux , tu n'inclue que la routine de décryptage ....


voila c'est le principe de base , mais c'est( pas tout )

il faut que ton prg de jeux "xxx" contienne plusieurs contre mesure
par exemple , empecher le lancement d'un "Debugger" qui permetrai a un hacker de "tracer"
ton prg et donc ta routine de décryptage

le tracage consiste a charger le prg dans un debugger (ollyDebug) et de "tracer" suivre
en mode PAs a PAs , chaque ligne de ton prg , pour comprendre l'algo de Décryptage ...

la 2em contre mesure est de bloquer l'utilisation soit du clavier complet
soit de quelques touches habituellement utilisées pour lancer un "Capteur d'ecran"
par exemple la touche "impr écran" qui est souvent utilisé pour ça ....




la méthode de cryptage :
donc il faut te creer un prg a part qui ne va faire QUE crypter tes images

par exemple une idée ...
le cryptage type canal+
tu charge une image en clair dans ton prg de cryptage
tu divise ton image en ligne graphique (pour une image 800X600) ça fait 600 lignes

et tu mélange ces lignes de façon aléatoire
l'aléatoire n'est pas vraiment aléatoire , on peut choisir une sequence de chiffre pseudo aleatoire
ce qui permettra d'utiliser la meme sequence pour recomposer l'image

une fois mélangé tu recrée ton image avec les lignes mélangé , et déja ton image
ne ressemble plus a grand chose

dans ton prg de jeux , tu utilisera bien sur la meme sequence aléatoire
pour remettre ton image en ordre , juste avant son utilisation

ton image pouvant par exemple se trouvé inclu dans ton prg de jeux
de differente façon

Data par exemple .... :)

Re: encrypter une image

Publié : jeu. 03/mars/2011 10:55
par Backup
pas trop dur a faire .

Re: encrypter une image

Publié : jeu. 03/mars/2011 15:07
par blendman
Dobro a écrit :donc tu crypte tes images avec un algo maison (j'en reparle plus bas ....)
puis tu inclue tes images (crypté donc...)dans ton prg de jeux "xxx"
dans ce prg de jeux , tu n'inclue que la routine de décryptage ....
ok, je comprends.
il faut que ton prg de jeux "xxx" contienne plusieurs contre mesure
par exemple , empecher le lancement d'un "Debugger" qui permetrai a un hacker de "tracer"
ton prg et donc ta routine de décryptage

le tracage consiste a charger le prg dans un debugger (ollyDebug) et de "tracer" suivre
en mode PAs a PAs , chaque ligne de ton prg , pour comprendre l'algo de Décryptage ...
Effectivement, ce serait intéressant de pouvoir bloquer cela. Il y aune technique particulière contre ça ? A part empêcher qu'on utilise olly.exe, car en le renommant en truc.exe, ça ne marcherait plus :).
la 2em contre mesure est de bloquer l'utilisation soit du clavier complet
soit de quelques touches habituellement utilisées pour lancer un "Capteur d'ecran"
par exemple la touche "impr écran" qui est souvent utilisé pour ça ....
cette technique est valable si on veut empêcher les captures d'écran, c'est ça ?
Car dans mon cas, je ne pense pas empêcher les captures d'écran, ce serait dommage :).
la méthode de cryptage :
donc il faut te creer un prg a part qui ne va faire QUE crypter tes images
(...)
une fois mélangé tu recrée ton image avec les lignes mélangé , et déja ton image
ne ressemble plus a grand chose

dans ton prg de jeux , tu utilisera bien sur la meme sequence aléatoire
pour remettre ton image en ordre , juste avant son utilisation

ton image pouvant par exemple se trouvé inclu dans ton prg de jeux
de differente façon
Data par exemple .... :)
merci pour ton exemple (de crypteur/decrypteur style Canal+) et ton explication :). C'est très intéressant et ça va m'être bien utile.

J'ai vu que tu avais fait un "datatoexetodata", donc j'imagine que si avec ça, je crée des fichiers texte (contenant les images sous forme de data) à partir d'image encryptées, ça devient assez difficile de décrypter tout ça :p. enfin, sauf pour moi qui aurait les clefs.

En tout cas, un grand merci pour tes explications, les exemples et les informations que tu donnes volontiers, c'est vraiment très utile.

Re: encrypter une image

Publié : jeu. 03/mars/2011 15:18
par G-Rom
Juste par curiosité
Pourquoi encrypter une image ?
Si tu embarques une image dans ton prog, tu vas a un moment ou un autre la rendre a l'ecran, donc non encryptée.
Y'a surement une finesse que je n'ai pas compris
Tu as tout dis , donc pas la peine de perdre du temps à codé une image avec une clé de 128bits ,
non seulement , il faut chargé l'image , la décodé , et l'afficher...
un coup dans la mémoire vidéo et tu as tout en clair... grosse perte de temps l'encodage décodage non ?
a moins de jouer à la canal + ? pas si que tu ne fasse pas de crise d'épilepsie... :D

Re: encrypter une image

Publié : jeu. 03/mars/2011 16:57
par Backup
G-Rom a écrit : Tu as tout dis , donc pas la peine de perdre du temps à codé une image avec une clé de 128bits ,
non seulement , il faut chargé l'image , la décodé , et l'afficher...
un coup dans la mémoire vidéo et tu as tout en clair... grosse perte de temps l'encodage décodage non ?
a moins de jouer à la canal + ? pas si que tu ne fasse pas de crise d'épilepsie... :D
ben en fait j'en ait deja parlé
tout dépend de l'interet de l'image, par rapport a la facilité de la récuperer

si recuperer une image demande plus d'effort que ce que représente cette image en "interet"
alors t'es tranquille

le but du cryptage, est d'empêcher autant que faire ce peut l'utilisation frauduleuse
de l'image

les droits d'auteur existent pour les image ;)
on peut avoir envie de protéger son travail, sans pour autant payer des cotisations
a un organisme pour le proteger ...

l'utilité d'un cryptage, peut ce discuter, mais pas l'envie de le faire ...

pensez aux Photographe, qui veux proteger ses oeuvres, pour pas les retrouver sur internet par exemple ....

le coup de la mémoire video , c'est valable si tu n'empeche pas l'utilisation d'un capteur d'ecran
je suppose que ce genre de prg fait appel a des Api bien précise, et donc, détectable
... si Api est utilisé , alors disparition de l'image, ou exit le prg ;)

Re: encrypter une image

Publié : jeu. 03/mars/2011 17:27
par G-Rom

Code : Tout sélectionner

le coup de la mémoire video , c'est valable si tu n'empeche pas l'utilisation d'un capteur d'ecran
je suppose que ce genre de prg fait appel a des Api bien précise, et donc, détectable
... si Api est utilisé , alors disparition de l'image, ou exit le prg ;)
je te met au défis de m'en codé un :mrgreen:

Re: encrypter une image

Publié : jeu. 03/mars/2011 17:53
par Backup
...........

Re: encrypter une image

Publié : jeu. 03/mars/2011 18:43
par G-Rom
:mrgreen:
en parlant de hacking , j'avais réussi à bluffer ton programme en PB , même memhack n'arrivait plus à fixé un score , un super truc anti-cheat que j'ai mis en place
tout seul comme un grand :D

Re: encrypter une image

Publié : jeu. 03/mars/2011 23:35
par Ar-S
rhooo tu nous fais baver G-Rom là..