Je vous explique, j'ai créé un programme qui permet d'encrypter des fichiers, et me les ressors en charabia, le tout fonctionne sans internet, l'idée c'est que des utilisateurs puissent se partager le programme meme sans internet, en faisant une copie du programme via le programme lui même.
Le problème, c'est que ça créé une boucle d'archivage en cascade, et arrivé a un moment donné, le programme ne contient plus le code permettant de se dupliquer.
J'essaie d'illustrer,
J'archive mon programme sous A.zip, je ne connais pas encore le chiffrement de mon programme lui-même encrypté donc il ne peux pas se contenir lui meme encrypté. Une fois zippé, je le passe dans mon encrypteur, qui me sors disont "ABABA" qui me sors une suite chiffré qui correspond a A.zip (donc sans le chiffrement qui permet de le re-dupliquer)
Je retourne editer, cette fois je connais mon programme chiffré, donc j'édite mon fichier "notice" en specifiant qu'il faut utiliser decrypter avec "ABABA" pour que le programme se duplique car c'est tout mon programme chiffré.
Ca marche, je le passe a un autre utilisateur / ami, il aura une version de A.zip, donc qui elle ne contient pas le code de duplication.
Ma question etant, comment faire en sorte que meme au point le plus bas, un utilisateur soit en mesure de dupliquer le programme qui peux s'auto repliquer lui meme y compris au niveau le plus bas ?
Car la j'suis en boucle d'archivage infini, je peux le dupliquer 4x avant de retomber sur la version de base ou je n'ai pas le code de duplication car je ne l'avais pas a ce moment ?
Aussi faut que ce soit le plus leger, donc l'archivage rearchivage comme actuellement est pas une solution d'avenir, de base c'est ~8Mo, la j'suis a 32Mo...
J'veux qu'il puisse s'auto-repliquer a l'infini peu importe quel niveau d'utilisateur dans ce qui semble etre un ponzi d'archivage
J'ai rien compris au probleme.
Tu peux simplement faire une archive qui commence par le programme de chiffrement/dechiffrement. Et qui a le reste des donnes a la fin. Le programme aura une option qui dechiffre les donnes a la fin, ou un autre fichier ailleurs. J'ai du loupe quelquechose; Le probleme me parait relativement simple.
Kamoulox ? Je n'ai rien compris non plus á l'énoncé.
Quel elément de problematique n'est pas resolu par une solution deja existante telle qu'une simple archive auto-extractible, avec ou sans chiffrement et/ou compression ?
J'vais essayer d'être plus clair,
En gros j'utilise libsodium.js, une librairie qui permet de crypter/decrypter absolument tout message/fichier/image etc... au moyen d'une clé publique.
Ca fonctionne même hors-ligne et c'est surtout pour ça que j'ai fais avec JS (j'ai une version web en php, mais ici on s'intéresse a la version JS censé être résiliente).
Je peux tout crypter, ça signifie que je peux archiver le programme lui-même, et crypter son archive.
Qui me retournera un resultat du genre [zip]BhlhkPeO486zD6in5SnRnDiODGkQJdwinbyWj0_[/zip] (en réalité y'a 20 millions de caractères donc je met qu'une partie''
L'idée c'est ensuite d'intégrer au sein du programme un moyen de l'auto répliquer, en utilisant la fonction decrypter et en mettant son resultat crypté qui fera processus inverse, et me proposera de telechgarger l'archive zip.)
Sauf qu'en l'etat actuel, la 1ere archive que je fournis ne contient pas ce code, car je ne le connais pas encore au moment ou j'encrypte l'archive la 1ere fois
Ca me fais un ponzi d'archives et comme je disais j'en suis a 4 itérations possible avant de retomber sur l'archive initiale sans le code, ce qui signifie que quelqu'un le telecharge, il peux le dupliquer pour 1 en dessous de lui, qui pourra le dupliquer aussi une fois, qui lui aussi pourra 1 fois mais a ce moment la le mec pourra plus le dupliquer car sa version a lui n'a pas ce "[zip]BhlhkPeO486zD6in5SnRnDiODGkQJdwinbyWj0_[/zip]"
Ce qui n'est pas mon souhait, l'idée ça serait qu'il n'y ait pas de limite de duplication plus on descend dans la branche
sinon mon autre solution qui rendra plus léger et certain que c'est auto repliquant serait de ne pas intégrer la totalité de l'archive, mais seulement les fichiers de base nécesaire au bon fonctionnement du soft sans que ca compromette l'utilisateur (le fichier contact.js qui permet d'ajouter des contacts et le fichier keys.js qui gère la clé publique et privé)
Par contre ca demande plus de manip pour dupliquer donc moins accessible pour un utilisateur pas trop avancé en informatique.
Parce que ça veux dire qu'il doit C/C son dossier du programme,
Utiliser le code fournit pour recupérér contacts.js et keys.js en version de base, (sans les contacts ou la clé priv / publique de l'utilisateur originale)
Les dézipper, et les remplacer dans son dossier de copie par le contats.js / keys.js déjà existant
Mais comme dit, ça demande plus de manip, quand on sait que y'en a qui galèrent avec juste la base de l'informatique...
Bon finalement j'ai opté pour la solution juste recupérer les fichiers contacts et keys de base sans les infos sensible, donc j'ai que 1000 caracteres de longueur au lieu de 7 million mini pour le programme de base entièrement archivé.
bah tu chiffres pas le code. tu chiffres les donnees mais pas le programme.
Le 14 octobre 2024 à 20:29:13 :
bah tu chiffres pas le code. tu chiffres les donnees mais pas le programme.
si je chiffre pas le programme, il ne se duplique pas
Mais du coup c'est bon vu que c'est que du html / js j'ai fait un fichier instruction step/step en partant d'une copie du dossier de l'utilisateur.
La difficulté tient plus dans l'énoncé du problème que l'implémentation de la solution
J'ai rien compris, c'est quoi la l'intérêt par rapport à partager tes données dans des zip chiffrés ?