Nan,
C'était une réponse proportionnée a tes propos
Pour un hacker à deux sous UPX c'est suffisant.
Nan,
C'était une réponse proportionnée a tes propos
Pour un hacker à deux sous UPX c'est suffisant.
Nan,
C'était une réponse proportionnée a tes propos
Pour un hacker à deux sous UPX c'est suffisant.
> Comme tu vas me répondre que tu t'en tapes, brisons donc là. Amusez vous
bien entre MVPs.
> Comme tu vas me répondre que tu t'en tapes, brisons donc là. Amusez vous
bien entre MVPs.
> Comme tu vas me répondre que tu t'en tapes, brisons donc là. Amusez vous
bien entre MVPs.
Notre cours de récré est très grande.
Tu peux venir jouer avec nous (par exemple aux DevDays 2006).
Notre cours de récré est très grande.
Tu peux venir jouer avec nous (par exemple aux DevDays 2006).
Notre cours de récré est très grande.
Tu peux venir jouer avec nous (par exemple aux DevDays 2006).
Remi THOMAS wrote:Notre cours de récré est très grande.
Tu peux venir jouer avec nous (par exemple aux DevDays 2006).
- Du code compilé à la volée ? Et alors ? À un moment donné il sera en
mémoire. Jamais un soft ne m'a empêché de lire dans sa mémoire !
- Code compilé à la volée ? Ha mais donc il y a un générateur
d'instruction, un moteur de création d'instruction. Es-t-il protégé lui ?
Et comment ?
- Clé privé/secrète ? Et alors ? Comment elles sont sauvegardées ces clés
? Quel contrôle as-tu des précautions prises par le client ?
- Mot de passe dans l'exe ? Ouarg !!!! Le pire de tout ! Tu signes comment
ton exe ? Un CRC, un Hash ?
- Du code .Net ? C'est 50 fois plus facile à hacker que des opcodes Intel
!
- Code 100% en RAM ? Ha, c'est bien, tu veux mon driver
spécial-je-lis-n'importe-qu'elle-zone-de-ram-kernel-ou-user ?
- Clé privé/secrète ? Hum, en dessous de RSA et compagnie, un petit man in
the middle...
- Codé en fonction d'un mail ? Hum, serveur d'authentification ? Sosu quel
OS il tourne ? Le serveur est-il correctement patché ?
Je continue ?
Si je comprends entre les lignes, soit tu me lances une espèce de défi,
soit tu "méprises" les capacités de gusses dans mon genre. Ce qui revient
au même :-). Tu as de la chance, je viens de récemment fixer mes nouvelles
règles de collaboration-hack sur un forum de crypto. Non, c'est vrai, ça
fait 10 ans que je calme tous les
uber-codeurs-ingénieurs-trop-balaises-en-sécu-et-que-nous-les-hackers-on-est-tous-des-cons
pour des prunes, now, c'est payant ! Fixe une prime et envoie ton soft. Vu
le court descriptif que tu me donnes, je suis sûr à 100% du résultat :-).
PS : sur le forum de crypto en question, le gars refuse obstinément de
m'envoyer son soft. C'est sûr qu'en seulement 40' je lui ai déjà mis à mal
son super soft recommandé par l'armée Suisse et que depuis il a du lire
les archives de quelques forums... Ho, je suis pas plus fort qu'un autre
moi hein, je suis même pas MVP, tu vois un peu. Mais depuis 10 ans j'ai
appris une chose, tout ceux qui me répondent dans ton style, je les ai
eus, un par un. Regarde sur certains forums, crypto, virus, etc. La règle
est simple, plus le gars frime avec sa méthode de sécu, sa protection
uber-elite-ingénieur-super-chiffré-signé-nex-tech-hype et plus son
arrogance l'a éloigné de concepts simples. Simple exemple, il y a quelque
mois un gars est venu nous gonfler avec son super-algo de chiffrement, je
l'ai eu facile. Pas en cassant son algo, je n'y ai meêm pas touché. Mais
simplement en... reconstruisant ses clés ! Il y a toujours un truc auquel
le gars n'a pas pensé :-). Moi, jamais je ne dirai qu'on peut protéger
définitivement, on peut seulement retarder plus ou moins longuement
l'échéance du crack. J'ai cassé des centaines de softs depuis l'âge de 15
ans, alors, je me susi afit une opinion. En ce qui me concerne la règle
est simple, l'investissement pour casser doit coûter - moins - que 10 fois
le prix du soft. Enfin, si t'es du côté de l'éditeur du soft, c'est le
terme - plus - qu'il te faut employer :-).
Passons aux choses sérieuses : combien vaut ton soft et combien offres-tu
si je le casse ? Et ai-je le droit de publier la méthode employée ?
--
Arnold McDonald (AMcD)
http://arnold.mcdonald.free.fr/
Remi THOMAS wrote:
Notre cours de récré est très grande.
Tu peux venir jouer avec nous (par exemple aux DevDays 2006).
- Du code compilé à la volée ? Et alors ? À un moment donné il sera en
mémoire. Jamais un soft ne m'a empêché de lire dans sa mémoire !
- Code compilé à la volée ? Ha mais donc il y a un générateur
d'instruction, un moteur de création d'instruction. Es-t-il protégé lui ?
Et comment ?
- Clé privé/secrète ? Et alors ? Comment elles sont sauvegardées ces clés
? Quel contrôle as-tu des précautions prises par le client ?
- Mot de passe dans l'exe ? Ouarg !!!! Le pire de tout ! Tu signes comment
ton exe ? Un CRC, un Hash ?
- Du code .Net ? C'est 50 fois plus facile à hacker que des opcodes Intel
!
- Code 100% en RAM ? Ha, c'est bien, tu veux mon driver
spécial-je-lis-n'importe-qu'elle-zone-de-ram-kernel-ou-user ?
- Clé privé/secrète ? Hum, en dessous de RSA et compagnie, un petit man in
the middle...
- Codé en fonction d'un mail ? Hum, serveur d'authentification ? Sosu quel
OS il tourne ? Le serveur est-il correctement patché ?
Je continue ?
Si je comprends entre les lignes, soit tu me lances une espèce de défi,
soit tu "méprises" les capacités de gusses dans mon genre. Ce qui revient
au même :-). Tu as de la chance, je viens de récemment fixer mes nouvelles
règles de collaboration-hack sur un forum de crypto. Non, c'est vrai, ça
fait 10 ans que je calme tous les
uber-codeurs-ingénieurs-trop-balaises-en-sécu-et-que-nous-les-hackers-on-est-tous-des-cons
pour des prunes, now, c'est payant ! Fixe une prime et envoie ton soft. Vu
le court descriptif que tu me donnes, je suis sûr à 100% du résultat :-).
PS : sur le forum de crypto en question, le gars refuse obstinément de
m'envoyer son soft. C'est sûr qu'en seulement 40' je lui ai déjà mis à mal
son super soft recommandé par l'armée Suisse et que depuis il a du lire
les archives de quelques forums... Ho, je suis pas plus fort qu'un autre
moi hein, je suis même pas MVP, tu vois un peu. Mais depuis 10 ans j'ai
appris une chose, tout ceux qui me répondent dans ton style, je les ai
eus, un par un. Regarde sur certains forums, crypto, virus, etc. La règle
est simple, plus le gars frime avec sa méthode de sécu, sa protection
uber-elite-ingénieur-super-chiffré-signé-nex-tech-hype et plus son
arrogance l'a éloigné de concepts simples. Simple exemple, il y a quelque
mois un gars est venu nous gonfler avec son super-algo de chiffrement, je
l'ai eu facile. Pas en cassant son algo, je n'y ai meêm pas touché. Mais
simplement en... reconstruisant ses clés ! Il y a toujours un truc auquel
le gars n'a pas pensé :-). Moi, jamais je ne dirai qu'on peut protéger
définitivement, on peut seulement retarder plus ou moins longuement
l'échéance du crack. J'ai cassé des centaines de softs depuis l'âge de 15
ans, alors, je me susi afit une opinion. En ce qui me concerne la règle
est simple, l'investissement pour casser doit coûter - moins - que 10 fois
le prix du soft. Enfin, si t'es du côté de l'éditeur du soft, c'est le
terme - plus - qu'il te faut employer :-).
Passons aux choses sérieuses : combien vaut ton soft et combien offres-tu
si je le casse ? Et ai-je le droit de publier la méthode employée ?
--
Arnold McDonald (AMcD)
http://arnold.mcdonald.free.fr/
Remi THOMAS wrote:Notre cours de récré est très grande.
Tu peux venir jouer avec nous (par exemple aux DevDays 2006).
- Du code compilé à la volée ? Et alors ? À un moment donné il sera en
mémoire. Jamais un soft ne m'a empêché de lire dans sa mémoire !
- Code compilé à la volée ? Ha mais donc il y a un générateur
d'instruction, un moteur de création d'instruction. Es-t-il protégé lui ?
Et comment ?
- Clé privé/secrète ? Et alors ? Comment elles sont sauvegardées ces clés
? Quel contrôle as-tu des précautions prises par le client ?
- Mot de passe dans l'exe ? Ouarg !!!! Le pire de tout ! Tu signes comment
ton exe ? Un CRC, un Hash ?
- Du code .Net ? C'est 50 fois plus facile à hacker que des opcodes Intel
!
- Code 100% en RAM ? Ha, c'est bien, tu veux mon driver
spécial-je-lis-n'importe-qu'elle-zone-de-ram-kernel-ou-user ?
- Clé privé/secrète ? Hum, en dessous de RSA et compagnie, un petit man in
the middle...
- Codé en fonction d'un mail ? Hum, serveur d'authentification ? Sosu quel
OS il tourne ? Le serveur est-il correctement patché ?
Je continue ?
Si je comprends entre les lignes, soit tu me lances une espèce de défi,
soit tu "méprises" les capacités de gusses dans mon genre. Ce qui revient
au même :-). Tu as de la chance, je viens de récemment fixer mes nouvelles
règles de collaboration-hack sur un forum de crypto. Non, c'est vrai, ça
fait 10 ans que je calme tous les
uber-codeurs-ingénieurs-trop-balaises-en-sécu-et-que-nous-les-hackers-on-est-tous-des-cons
pour des prunes, now, c'est payant ! Fixe une prime et envoie ton soft. Vu
le court descriptif que tu me donnes, je suis sûr à 100% du résultat :-).
PS : sur le forum de crypto en question, le gars refuse obstinément de
m'envoyer son soft. C'est sûr qu'en seulement 40' je lui ai déjà mis à mal
son super soft recommandé par l'armée Suisse et que depuis il a du lire
les archives de quelques forums... Ho, je suis pas plus fort qu'un autre
moi hein, je suis même pas MVP, tu vois un peu. Mais depuis 10 ans j'ai
appris une chose, tout ceux qui me répondent dans ton style, je les ai
eus, un par un. Regarde sur certains forums, crypto, virus, etc. La règle
est simple, plus le gars frime avec sa méthode de sécu, sa protection
uber-elite-ingénieur-super-chiffré-signé-nex-tech-hype et plus son
arrogance l'a éloigné de concepts simples. Simple exemple, il y a quelque
mois un gars est venu nous gonfler avec son super-algo de chiffrement, je
l'ai eu facile. Pas en cassant son algo, je n'y ai meêm pas touché. Mais
simplement en... reconstruisant ses clés ! Il y a toujours un truc auquel
le gars n'a pas pensé :-). Moi, jamais je ne dirai qu'on peut protéger
définitivement, on peut seulement retarder plus ou moins longuement
l'échéance du crack. J'ai cassé des centaines de softs depuis l'âge de 15
ans, alors, je me susi afit une opinion. En ce qui me concerne la règle
est simple, l'investissement pour casser doit coûter - moins - que 10 fois
le prix du soft. Enfin, si t'es du côté de l'éditeur du soft, c'est le
terme - plus - qu'il te faut employer :-).
Passons aux choses sérieuses : combien vaut ton soft et combien offres-tu
si je le casse ? Et ai-je le droit de publier la méthode employée ?
--
Arnold McDonald (AMcD)
http://arnold.mcdonald.free.fr/
Une DLL, cryptée et signé, execute une des fonctions au coeur de
l'application sans laquelle elle peut fonctionner.
Cette fonction n'existe pas en "statique" car son code est compilé à la
volée, avec un cryptage par mot de passe fonction du mail de
l'utilisateur et mot de passe dans l'EXE.
Une DLL, cryptée et signé, execute une des fonctions au coeur de
l'application sans laquelle elle peut fonctionner.
Cette fonction n'existe pas en "statique" car son code est compilé à la
volée, avec un cryptage par mot de passe fonction du mail de
l'utilisateur et mot de passe dans l'EXE.
Une DLL, cryptée et signé, execute une des fonctions au coeur de
l'application sans laquelle elle peut fonctionner.
Cette fonction n'existe pas en "statique" car son code est compilé à la
volée, avec un cryptage par mot de passe fonction du mail de
l'utilisateur et mot de passe dans l'EXE.
ps: les MVP ne sont pas forcement des cadors.
Ce sont simplement des utilisateurs passionés des techno Microsoft
qui partagent leur savoir de façon courtoise dans les forums.
ps: les MVP ne sont pas forcement des cadors.
Ce sont simplement des utilisateurs passionés des techno Microsoft
qui partagent leur savoir de façon courtoise dans les forums.
ps: les MVP ne sont pas forcement des cadors.
Ce sont simplement des utilisateurs passionés des techno Microsoft
qui partagent leur savoir de façon courtoise dans les forums.
Il faut arreter de toujours répondre à coté
Cela veut dire que je suis bien conscient que c'est crackable, alors
je n'offre pas de prime pour le casser, ou alors 10 fois le prix du
soft, soit 50 Euros
Et puis je ne sais pas encore si je le protège autant,
Je peux controler lors des
mise à jour en limitant le nombre de download pour un email donné.
Comme c'est coté serveur c'est imparable (et oui mon serveur est bien
protégé, patché, seul le port 80 est ouvert, etc...)
Pour les logiciels diffusés en petit nombre dans les entreprises une
simple clé de registry fonction du numéro de série du processeur est
largement suffisante pour bloquer les copieurs du dimanche.
ps: les MVP ne sont pas forcement des cadors.
Ce sont simplement des
utilisateurs passionés des techno Microsoft qui partagent leur savoir
de façon courtoise dans les forums
Il faut arreter de toujours répondre à coté
Cela veut dire que je suis bien conscient que c'est crackable, alors
je n'offre pas de prime pour le casser, ou alors 10 fois le prix du
soft, soit 50 Euros
Et puis je ne sais pas encore si je le protège autant,
Je peux controler lors des
mise à jour en limitant le nombre de download pour un email donné.
Comme c'est coté serveur c'est imparable (et oui mon serveur est bien
protégé, patché, seul le port 80 est ouvert, etc...)
Pour les logiciels diffusés en petit nombre dans les entreprises une
simple clé de registry fonction du numéro de série du processeur est
largement suffisante pour bloquer les copieurs du dimanche.
ps: les MVP ne sont pas forcement des cadors.
Ce sont simplement des
utilisateurs passionés des techno Microsoft qui partagent leur savoir
de façon courtoise dans les forums
Il faut arreter de toujours répondre à coté
Cela veut dire que je suis bien conscient que c'est crackable, alors
je n'offre pas de prime pour le casser, ou alors 10 fois le prix du
soft, soit 50 Euros
Et puis je ne sais pas encore si je le protège autant,
Je peux controler lors des
mise à jour en limitant le nombre de download pour un email donné.
Comme c'est coté serveur c'est imparable (et oui mon serveur est bien
protégé, patché, seul le port 80 est ouvert, etc...)
Pour les logiciels diffusés en petit nombre dans les entreprises une
simple clé de registry fonction du numéro de série du processeur est
largement suffisante pour bloquer les copieurs du dimanche.
ps: les MVP ne sont pas forcement des cadors.
Ce sont simplement des
utilisateurs passionés des techno Microsoft qui partagent leur savoir
de façon courtoise dans les forums
mais n'ayant jamais eu à travailler pour l'armée - suisse
1/ Rien n'est incassable a priori.
2/ Si un soft est très connu, il est rentable de toute façon et c'est
pas la peine de se casser la tête à le protéger.
"Ils" en viendront à
bout de toute façon et il suffit d'une seule version craquée pour que
le monde entier en ait une copie dans les heures qui suivent.
3/ Si le soft n'est pas connu, alors oui ça peut valoir la peine d'y
passer du temps, au moins pour éviter que ça arrive trop vite.
4/ Une parade simple contre les cracks, c'est un soft qui évolue en
permanence. Je vois mal des hackers revenir au rendez-vous avec une
nouvelle version tous les deux mois. Je les crois pas très ponctuels,
et même pas vraiment méchants : plutôt du genre à casser une fois pour
ajouter un nom à leur tableau de chasse, et ne plus y revenir.
5/ La meilleure protection étant la baisse de motivation du hacker, il
faut allonger le plus possible le temps que celui-ci va passer pour
venir à bout de la protection. Evidemment, sa motivation peut aussi
s'en trouver augmentée du fait qu'il prend ça comme un défi.
6/ L'idéal est de faire en sorte que le hacker ne soit jamais
absolument sûr qu'il a fait le tour de toutes les protections, d'où
l'intérêt de trucs différents, aléatoires et avec vérifications plus
ou moins rares.
7/ Inversement, il faut donner un os à ronger au hacker, genre une
fonction de protection bien classique, propre sur elle, avec
vérification du CRC de l'exe ou un truc du genre. L'idée est de
satisfaire l'ego de ceux qui vont vite passer à autre chose sans se
rendre compte qu'ils n'ont fait qu'une partie du boulot.
8/ Quand une protection détecte que le soft a été cassé, ne jamais
réagir immédiatement. Le lien entre la détection et la réaction doit
être le plus distendu possible, à grands renforts d'actions chaînées
les unes aux autres. Et ne pas juste fermer le programme mais faire
en sorte que l'utilisateur perde le travail effectué, avec le bonjour
d'Alfred, par exemple au moment d'enregistrer son fichier.
Pour les points 5, 6 et 8, mon idée a été de créer plusieurs fonctions
de vérifications différentes, on va les appeler F1, F2 ... Fn, avec F1
appelée à chaque fois (hacker niveau 0), F2 appelée de temps en temps
et Fn appelée très rarement (tout ça selon certains états de
l'exécution du soft, par exemple "Edition / Couper" déclenche une
vérification, ou le Nième clic droit, etc.).
Ensuite, si j'ai une fonction de vérification peu fréquente qui prend
10 lignes de code, je me débrouille pour qu'elle en fasse 100 et je
dissémine ces lignes dans le reste du code à l'aide d'un moteur
d'incrémentation et à grands renforts de variables globales ou de
pointeurs. Exemple très simplifié : pour ma fonction de vérification
élargie à 100 lignes L1 à L100, je pose une variable globale qui sert
de compteur C initialisé à 0. Si l'utilisateur fait "Fichier /
Ouvrir" et que C=0, on exécute L1 et on incrémente C. Si
l'utilisateur clique vers le bas à droite et que C=1, on exécute L2
et on incrémente, etc. Ce qui fait que le soft peut avoir été exécuté
sans que la vérification arrive au bout. Le moteur d'incrémentation
peut gérer accessoirement le niveau de rareté de la vérification en
avançant plus ou moins rapidement. Ou ne déclencher des vérifications
que selon la période calendaire, etc.
Evidemment, tout ça est schématique et ne marche que pour un soft
riche en fonctionnalités sur lequel l'utilisateur passe du temps.
J'utilise pas une variable globale C incrémentée poliment, mais un grand
nombre
de variables, chaînes ou pointeurs qui se répondent les uns les
autres au hasard du code (d'où les 100 lignes au lieu de 10). L'idée
est de dérouter le hacker et que ça soit extrêmement chiant à tracer.
Voilà, j'avoue que j'aimerais assez avoir des avis éclairés sur ces
quelques réflexions.
Ouais, sans insultes, merci.
J'insiste encore :
je suis un vrai touriste en la matière ; je n'ai jamais rien lu sur le
sujet ; je sais même pas ce qu'est l'obfuscation (ne t'offusque pas
Arnold) ;
Bon, j'espère ne pas avoir lancé encore un troll...
mais n'ayant jamais eu à travailler pour l'armée - suisse
1/ Rien n'est incassable a priori.
2/ Si un soft est très connu, il est rentable de toute façon et c'est
pas la peine de se casser la tête à le protéger.
"Ils" en viendront à
bout de toute façon et il suffit d'une seule version craquée pour que
le monde entier en ait une copie dans les heures qui suivent.
3/ Si le soft n'est pas connu, alors oui ça peut valoir la peine d'y
passer du temps, au moins pour éviter que ça arrive trop vite.
4/ Une parade simple contre les cracks, c'est un soft qui évolue en
permanence. Je vois mal des hackers revenir au rendez-vous avec une
nouvelle version tous les deux mois. Je les crois pas très ponctuels,
et même pas vraiment méchants : plutôt du genre à casser une fois pour
ajouter un nom à leur tableau de chasse, et ne plus y revenir.
5/ La meilleure protection étant la baisse de motivation du hacker, il
faut allonger le plus possible le temps que celui-ci va passer pour
venir à bout de la protection. Evidemment, sa motivation peut aussi
s'en trouver augmentée du fait qu'il prend ça comme un défi.
6/ L'idéal est de faire en sorte que le hacker ne soit jamais
absolument sûr qu'il a fait le tour de toutes les protections, d'où
l'intérêt de trucs différents, aléatoires et avec vérifications plus
ou moins rares.
7/ Inversement, il faut donner un os à ronger au hacker, genre une
fonction de protection bien classique, propre sur elle, avec
vérification du CRC de l'exe ou un truc du genre. L'idée est de
satisfaire l'ego de ceux qui vont vite passer à autre chose sans se
rendre compte qu'ils n'ont fait qu'une partie du boulot.
8/ Quand une protection détecte que le soft a été cassé, ne jamais
réagir immédiatement. Le lien entre la détection et la réaction doit
être le plus distendu possible, à grands renforts d'actions chaînées
les unes aux autres. Et ne pas juste fermer le programme mais faire
en sorte que l'utilisateur perde le travail effectué, avec le bonjour
d'Alfred, par exemple au moment d'enregistrer son fichier.
Pour les points 5, 6 et 8, mon idée a été de créer plusieurs fonctions
de vérifications différentes, on va les appeler F1, F2 ... Fn, avec F1
appelée à chaque fois (hacker niveau 0), F2 appelée de temps en temps
et Fn appelée très rarement (tout ça selon certains états de
l'exécution du soft, par exemple "Edition / Couper" déclenche une
vérification, ou le Nième clic droit, etc.).
Ensuite, si j'ai une fonction de vérification peu fréquente qui prend
10 lignes de code, je me débrouille pour qu'elle en fasse 100 et je
dissémine ces lignes dans le reste du code à l'aide d'un moteur
d'incrémentation et à grands renforts de variables globales ou de
pointeurs. Exemple très simplifié : pour ma fonction de vérification
élargie à 100 lignes L1 à L100, je pose une variable globale qui sert
de compteur C initialisé à 0. Si l'utilisateur fait "Fichier /
Ouvrir" et que C=0, on exécute L1 et on incrémente C. Si
l'utilisateur clique vers le bas à droite et que C=1, on exécute L2
et on incrémente, etc. Ce qui fait que le soft peut avoir été exécuté
sans que la vérification arrive au bout. Le moteur d'incrémentation
peut gérer accessoirement le niveau de rareté de la vérification en
avançant plus ou moins rapidement. Ou ne déclencher des vérifications
que selon la période calendaire, etc.
Evidemment, tout ça est schématique et ne marche que pour un soft
riche en fonctionnalités sur lequel l'utilisateur passe du temps.
J'utilise pas une variable globale C incrémentée poliment, mais un grand
nombre
de variables, chaînes ou pointeurs qui se répondent les uns les
autres au hasard du code (d'où les 100 lignes au lieu de 10). L'idée
est de dérouter le hacker et que ça soit extrêmement chiant à tracer.
Voilà, j'avoue que j'aimerais assez avoir des avis éclairés sur ces
quelques réflexions.
Ouais, sans insultes, merci.
J'insiste encore :
je suis un vrai touriste en la matière ; je n'ai jamais rien lu sur le
sujet ; je sais même pas ce qu'est l'obfuscation (ne t'offusque pas
Arnold) ;
Bon, j'espère ne pas avoir lancé encore un troll...
mais n'ayant jamais eu à travailler pour l'armée - suisse
1/ Rien n'est incassable a priori.
2/ Si un soft est très connu, il est rentable de toute façon et c'est
pas la peine de se casser la tête à le protéger.
"Ils" en viendront à
bout de toute façon et il suffit d'une seule version craquée pour que
le monde entier en ait une copie dans les heures qui suivent.
3/ Si le soft n'est pas connu, alors oui ça peut valoir la peine d'y
passer du temps, au moins pour éviter que ça arrive trop vite.
4/ Une parade simple contre les cracks, c'est un soft qui évolue en
permanence. Je vois mal des hackers revenir au rendez-vous avec une
nouvelle version tous les deux mois. Je les crois pas très ponctuels,
et même pas vraiment méchants : plutôt du genre à casser une fois pour
ajouter un nom à leur tableau de chasse, et ne plus y revenir.
5/ La meilleure protection étant la baisse de motivation du hacker, il
faut allonger le plus possible le temps que celui-ci va passer pour
venir à bout de la protection. Evidemment, sa motivation peut aussi
s'en trouver augmentée du fait qu'il prend ça comme un défi.
6/ L'idéal est de faire en sorte que le hacker ne soit jamais
absolument sûr qu'il a fait le tour de toutes les protections, d'où
l'intérêt de trucs différents, aléatoires et avec vérifications plus
ou moins rares.
7/ Inversement, il faut donner un os à ronger au hacker, genre une
fonction de protection bien classique, propre sur elle, avec
vérification du CRC de l'exe ou un truc du genre. L'idée est de
satisfaire l'ego de ceux qui vont vite passer à autre chose sans se
rendre compte qu'ils n'ont fait qu'une partie du boulot.
8/ Quand une protection détecte que le soft a été cassé, ne jamais
réagir immédiatement. Le lien entre la détection et la réaction doit
être le plus distendu possible, à grands renforts d'actions chaînées
les unes aux autres. Et ne pas juste fermer le programme mais faire
en sorte que l'utilisateur perde le travail effectué, avec le bonjour
d'Alfred, par exemple au moment d'enregistrer son fichier.
Pour les points 5, 6 et 8, mon idée a été de créer plusieurs fonctions
de vérifications différentes, on va les appeler F1, F2 ... Fn, avec F1
appelée à chaque fois (hacker niveau 0), F2 appelée de temps en temps
et Fn appelée très rarement (tout ça selon certains états de
l'exécution du soft, par exemple "Edition / Couper" déclenche une
vérification, ou le Nième clic droit, etc.).
Ensuite, si j'ai une fonction de vérification peu fréquente qui prend
10 lignes de code, je me débrouille pour qu'elle en fasse 100 et je
dissémine ces lignes dans le reste du code à l'aide d'un moteur
d'incrémentation et à grands renforts de variables globales ou de
pointeurs. Exemple très simplifié : pour ma fonction de vérification
élargie à 100 lignes L1 à L100, je pose une variable globale qui sert
de compteur C initialisé à 0. Si l'utilisateur fait "Fichier /
Ouvrir" et que C=0, on exécute L1 et on incrémente C. Si
l'utilisateur clique vers le bas à droite et que C=1, on exécute L2
et on incrémente, etc. Ce qui fait que le soft peut avoir été exécuté
sans que la vérification arrive au bout. Le moteur d'incrémentation
peut gérer accessoirement le niveau de rareté de la vérification en
avançant plus ou moins rapidement. Ou ne déclencher des vérifications
que selon la période calendaire, etc.
Evidemment, tout ça est schématique et ne marche que pour un soft
riche en fonctionnalités sur lequel l'utilisateur passe du temps.
J'utilise pas une variable globale C incrémentée poliment, mais un grand
nombre
de variables, chaînes ou pointeurs qui se répondent les uns les
autres au hasard du code (d'où les 100 lignes au lieu de 10). L'idée
est de dérouter le hacker et que ça soit extrêmement chiant à tracer.
Voilà, j'avoue que j'aimerais assez avoir des avis éclairés sur ces
quelques réflexions.
Ouais, sans insultes, merci.
J'insiste encore :
je suis un vrai touriste en la matière ; je n'ai jamais rien lu sur le
sujet ; je sais même pas ce qu'est l'obfuscation (ne t'offusque pas
Arnold) ;
Bon, j'espère ne pas avoir lancé encore un troll...
Vrai et faux à la fois. Le hacker pro, il fait ça pour de l'argent.
Pas tout à fait vrai. Cela va dépendre de la méthode employée par le hacker.
Par exemple, soit j'attaque la protection du produit, et là ça ne amrceh que
pour ton produit ou, bien plsu dangereux, j'attaque le produit qui t'a servi
à protéger... AMHA la seule solution est d'utiliser des trucs qui prennent
un temps abyssal à détourner et qui coûtent trop cher en temps pour oser s'y
lancer.
Non, ça c'est faire peu de cas des hackers professionnels.
Ou introduire des erreurs de fonctionnement aléatoires et fluctuant avec le
temsp, ça, c'est bien plus pénible :-).
Pour casser ce genre de protection, je vais commencer par lister l'ensemble
des fonctions de ton soft et faire un audit de leur fréquence d'appel, avec
état de la pile, état des exceptions (vive les SEH...). je vais vite voir
les fonctions du logiciel, celles qui servent à son fonctionnement, et
celles qui sont appelés suivant des conditions : flags, checksums, timers,
etc.
Oui, c'est un procédé classique, que l'on complexifie d'ailleurs avec
quelques layers d'obfuscation aléatoire en général. Bien implémenté, c'est
très long et pénible à casser. Souvent, on va plutôt chercher à désactiver
l'appel de la fonction de vérif plutôt que de détourner le code disséminé
d'ailleurs :-).
D'abord, parce qu'en France on préfère la sécurisation par la dissimulation
du savoir.
Le truc encyclopédique; du buffer overrun au virus métamorphique avec code
recompilé en mémoire.
Je n'insulte que les comportement imbéciles et encore, étant du Sud, c'est
plsu à prendre avec humour qu'autre chose.
Jeu de mot subtil ! L'obfuscation c'est rendre le
fonctionenment/déroulement/logique de ton code incompréhensible.
Vrai et faux à la fois. Le hacker pro, il fait ça pour de l'argent.
Pas tout à fait vrai. Cela va dépendre de la méthode employée par le hacker.
Par exemple, soit j'attaque la protection du produit, et là ça ne amrceh que
pour ton produit ou, bien plsu dangereux, j'attaque le produit qui t'a servi
à protéger... AMHA la seule solution est d'utiliser des trucs qui prennent
un temps abyssal à détourner et qui coûtent trop cher en temps pour oser s'y
lancer.
Non, ça c'est faire peu de cas des hackers professionnels.
Ou introduire des erreurs de fonctionnement aléatoires et fluctuant avec le
temsp, ça, c'est bien plus pénible :-).
Pour casser ce genre de protection, je vais commencer par lister l'ensemble
des fonctions de ton soft et faire un audit de leur fréquence d'appel, avec
état de la pile, état des exceptions (vive les SEH...). je vais vite voir
les fonctions du logiciel, celles qui servent à son fonctionnement, et
celles qui sont appelés suivant des conditions : flags, checksums, timers,
etc.
Oui, c'est un procédé classique, que l'on complexifie d'ailleurs avec
quelques layers d'obfuscation aléatoire en général. Bien implémenté, c'est
très long et pénible à casser. Souvent, on va plutôt chercher à désactiver
l'appel de la fonction de vérif plutôt que de détourner le code disséminé
d'ailleurs :-).
D'abord, parce qu'en France on préfère la sécurisation par la dissimulation
du savoir.
Le truc encyclopédique; du buffer overrun au virus métamorphique avec code
recompilé en mémoire.
Je n'insulte que les comportement imbéciles et encore, étant du Sud, c'est
plsu à prendre avec humour qu'autre chose.
Jeu de mot subtil ! L'obfuscation c'est rendre le
fonctionenment/déroulement/logique de ton code incompréhensible.
Vrai et faux à la fois. Le hacker pro, il fait ça pour de l'argent.
Pas tout à fait vrai. Cela va dépendre de la méthode employée par le hacker.
Par exemple, soit j'attaque la protection du produit, et là ça ne amrceh que
pour ton produit ou, bien plsu dangereux, j'attaque le produit qui t'a servi
à protéger... AMHA la seule solution est d'utiliser des trucs qui prennent
un temps abyssal à détourner et qui coûtent trop cher en temps pour oser s'y
lancer.
Non, ça c'est faire peu de cas des hackers professionnels.
Ou introduire des erreurs de fonctionnement aléatoires et fluctuant avec le
temsp, ça, c'est bien plus pénible :-).
Pour casser ce genre de protection, je vais commencer par lister l'ensemble
des fonctions de ton soft et faire un audit de leur fréquence d'appel, avec
état de la pile, état des exceptions (vive les SEH...). je vais vite voir
les fonctions du logiciel, celles qui servent à son fonctionnement, et
celles qui sont appelés suivant des conditions : flags, checksums, timers,
etc.
Oui, c'est un procédé classique, que l'on complexifie d'ailleurs avec
quelques layers d'obfuscation aléatoire en général. Bien implémenté, c'est
très long et pénible à casser. Souvent, on va plutôt chercher à désactiver
l'appel de la fonction de vérif plutôt que de détourner le code disséminé
d'ailleurs :-).
D'abord, parce qu'en France on préfère la sécurisation par la dissimulation
du savoir.
Le truc encyclopédique; du buffer overrun au virus métamorphique avec code
recompilé en mémoire.
Je n'insulte que les comportement imbéciles et encore, étant du Sud, c'est
plsu à prendre avec humour qu'autre chose.
Jeu de mot subtil ! L'obfuscation c'est rendre le
fonctionenment/déroulement/logique de ton code incompréhensible.