image/svg+xml Libres ... Et beaucoup plus ! 06 fevrier 2008 François Poulain fr void css_descramble(byte *sec,byte *key){ unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined; unsigned char o_lfsr0, o_lfsr1; unsigned char *end = sec + 0x800;#define SALTED(i) (key[i] ^ sec[0x54 + (i)]) lfsr1_lo = SALTED(0) | 0x100; lfsr1_hi = SALTED(1); lfsr0 = ((SALTED(4) << 17) | (SALTED(3) << 9) lfsr0 = (bit_reverse[lfsr0&0xff]<<24) | (bit_ | (bit_reverse[(lfsr0>>16)&0xff]<<8) | bit sec+=0x80; combined = 0; while (sec != end) { o_lfsr1 = lfsr1_bits0[lfsr1_hi] ^ lfsr1_bit lfsr1_hi = lfsr1_lo>>1; lfsr1_lo = ((lfsr1_lo&1)<<8) ^ o_lfsr1; o_lfsr1 = bit_reverse[o_lfsr1]; /*o_lfsr0 = (lfsr0>>7)^(lfsr0>>10)^(lfsr0>>1 o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0) lfsr0 = (lfsr0>>8)|(o_lfsr0<<24); combined += o_lfsr0 + (byte)~o_lfsr1; *sec++ = csstab1[*sec] ^ (combined&0xff); combined >>= 8; }} void css_descramble(byte *sec,byte *key){ unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined; unsigned char o_lfsr0, o_lfsr1; unsigned char *end = sec + 0x800;#define SALTED(i) (key[i] ^ sec[0x54 + (i)]) lfsr1_lo = SALTED(0) | 0x100; lfsr1_hi = SALTED(1); lfsr0 = ((SALTED(4) << 17) | (SALTED(3) << 9) lfsr0 = (bit_reverse[lfsr0&0xff]<<24) | (bit_ | (bit_reverse[(lfsr0>>16)&0xff]<<8) | bit sec+=0x80; combined = 0; while (sec != end) { o_lfsr1 = lfsr1_bits0[lfsr1_hi] ^ lfsr1_bit lfsr1_hi = lfsr1_lo>>1; lfsr1_lo = ((lfsr1_lo&1)<<8) ^ o_lfsr1; o_lfsr1 = bit_reverse[o_lfsr1]; /*o_lfsr0 = (lfsr0>>7)^(lfsr0>>10)^(lfsr0>>1 o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0) lfsr0 = (lfsr0>>8)|(o_lfsr0<<24); combined += o_lfsr0 + (byte)~o_lfsr1; *sec++ = csstab1[*sec] ^ (combined&0xff); combined >>= 8; }} void css_descramble(byte *sec,byte *key){ unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined; unsigned char o_lfsr0, o_lfsr1; unsigned char *end = sec + 0x800;#define SALTED(i) (key[i] ^ sec[0x54 + (i)]) lfsr1_lo = SALTED(0) | 0x100; lfsr1_hi = SALTED(1); lfsr0 = ((SALTED(4) << 17) | (SALTED(3) << 9) lfsr0 = (bit_reverse[lfsr0&0xff]<<24) | (bit_ | (bit_reverse[(lfsr0>>16)&0xff]<<8) | bit sec+=0x80; combined = 0; while (sec != end) { o_lfsr1 = lfsr1_bits0[lfsr1_hi] ^ lfsr1_bit lfsr1_hi = lfsr1_lo>>1; lfsr1_lo = ((lfsr1_lo&1)<<8) ^ o_lfsr1; o_lfsr1 = bit_reverse[o_lfsr1]; /*o_lfsr0 = (lfsr0>>7)^(lfsr0>>10)^(lfsr0>>1 o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0) lfsr0 = (lfsr0>>8)|(o_lfsr0<<24); combined += o_lfsr0 + (byte)~o_lfsr1; *sec++ = csstab1[*sec] ^ (combined&0xff); combined >>= 8; }} Libres... et beaucoup plus ! > La définition générale... > ... Et celle de son initiateur : Informatique : vive la liberté ! 2 http://www.expolibre.org/ — Copyright 2008 April — Sous licence CC-BY-SA : Parternité - Partage des Conditions Initiales à l'Identique Lorsqu'on lui demande ce que représente pour lui le « libre », Richard Stallman, l'un des créateurs du concept écrit :« Liberté :La liberté de faire des copies, de diffuser des copies, de donner des copies aux autres, aux copains, aux gens qui travaillent avec vous, aux inconnus. La liberté de faire des changements pour que le logiciel serve à vos besoins. La liberté de publier des versions améliorées afin que la société entière en reçoive les bienfaits.Fraternité :Avec le logiciel libre, nous encourageons tout le monde à coopérer, à s'aider les uns les autres.Égalité :Tout le monde possède les mêmes libertés en utilisant le logiciel libre. Il n'y a pas de situation ordinaire où un patron est tout puissant sur ce logiciel, et tout le reste du monde est complètement impuissant... » Un logiciel est une « œuvre de l'esprit » protégée par la légi-slation sur les droits d'auteur, au même titre qu'un livre ou une chanson.Pour qu'il puisse être utilisé par un tiers, il faut donc que son ou ses auteurs cèdent explicitement certains droits : c'est l'objet du contrat de licence.Une licence est dite libre si elle autorise à utiliser le logiciel et ce sans restriction, à copier le logiciel et à l'adapter aux besoins des divers utilisateurs sans aucune restriction, et enfin à en diffuser les versions complétées ou modifiées. Le code source du logiciel libre doit donc être accessible sans aucune restriction. « Je peux décrire l'idée du logiciel libre en trois mots : liberté, égalité, fraternité » ― Richard Stallman « ... un programme qui n'est pas libre est un programme privateur, c'est à dire qu'il prive les utilisateurs de leurs libertés. Un programme privateur maintient ses utilisateurs dans un état de division et d'impuissance. Division parce que chacun est interdit de le partager avec les autres, et impuissance parce que les utilisateurs n'ont pas le code source et ne peuvent rien changer dans le programme et ne peuvent pas même vérifier indépendamment ce que fait le programme. » > Pourquoi refuser le logiciel non libre : En détail : Code sourceet code binaire Le code source est comparable à une recette de cuisine, tandis que le code binaire est comme le plat préparé, prêt à être mangé. À la base de chaque logiciel, il y a un code source, c'est-à-dire la description du logiciel lisible par les humains. L'ordinateur quant à lui n'a besoin que de la version exécutable, écrite en langage machine, ou code binaire. Il est difficile, voire impossible, de comprendre le fonctionnement d'un logiciel en l'absence de son code source. > Ouverts > Fermés En utilisant des formats de fichier ouverts, vous gardez la maîtrise sur les données enregistrées sur votre ordinateur.Vous pouvez les relire ou les modifier quand vous le souhaitez. Vous pouvez également les échanger avec d'autres. À l'inverse, l'objectif des formats de fichier fermés est de vous rendre captif d'un logiciel priva-teur.Si l'éditeur de ce logiciel disparaît, décide de ne plus développer son produit, ou encore de ne plus maintenir son format, alors vous perdez la capacité de lire ou de modifier vos données.De plus, vous ne pouvez échanger vos données qu'avec les utilisa-teurs équipés du même logiciel. Pratique : Formats ouvertset formats fermés Un logiciel privateur n'est diffusé que dans sa version binaire, incompréhensible par les humains. Un logiciel libre est distribué avec son code source afin d'en per-mettre l'étude et la modification.