Heureusement que la discussion est dans la rubrique ludique.
Elle est ma préférée, car, au final, tout est pardonnable
Relevons un peu le niveau.
Supposons que nous vivons dans une simulation informatique (comme dans le film MATRIX) ET c’est une hypothèse très sérieuse.
Tu es un programme, créé par le programmeur
Tu te jettes d’une falaise pour mourir est disparaitre, est ce que tu vas le faire à l’insu du programmeur ?
Franchement, je ne vois pas trop le problème pour qu'un programme "se supprime" lui-même.
Le programme exécutable a été chargé en mémoire à partir du code déclaré dans le fichier sur le support de masse et pour disparaitre il suffit qu'il se ferme...
Quant au fichier sur le support de masse, il suffit que le programme effectue sa suppression avant de se fermer.
Après tout dépend du système.
Sur windows, le crétin de windows (encore lui ) ne va pas faire ce qu'on lui demande de faire, soit supprimer le fichier de la table d'allocation des fichiers du disque.
Non, il va trouver une excuse pour ne pas le faire : Eh l'autre il est en cours d'utilisation, je ne peux pas supprimer le fichier !
Pas grave, il suffit de donner au programme le pouvoir de le faire quand même.
Et pour celui que ne veut pas se fouler, il existe des programmes tout fait pour supprimer des fichiers en cours d'utilisation.
Il faut sauvegarder le listing que j'ai donné dans un fichier, que vous nommez avec une extension .bat. Ensuite, dans l'invite de commande, vous allez dans le répertoire où se trouve ce fichier et vous taper simplement son nom puis entrée.
ps : je ne connais pas visual basic, j'ai eu la chance de ne jamais avoir à l'utiliser Par contre, je n'ai pas échappé à python.
pps : vous pourrez objecter que ce "programme" repose en fait sur des appels aux fonctions de Windows, en particulier del. Peu importe, au final on pourrait faire la même chose sans, mais cela supposerait par exemple, de réécrire tout ce qui est utilisé par l'appel de "del".
ecit : vous pouvez aussi faire comme ceci :
la commande echo affiche ce qui suit, et le > ou >> redirige ce qui devrait s'afficher à l'écran vers l'objet qui suit, ici le fichier test.batCode:C:\Users\alban\Documents>echo echo "Hello World, i'm %0" > test.bat C:\Users\alban\Documents>echo del %0 >> test.bat C:\Users\alban\Documents>type test.bat echo "Hello World, i'm %0" del %0 C:\Users\alban\Documents>dir test.bat Le volume dans le lecteur C s’appelle OS Le numéro de série du volume est 52A9-43B1 Répertoire de C:\Users\alban\Documents 19/02/2021 08:25 38 test.bat 1 fichier(s) 38 octets 0 Rép(s) 428*873*580*544 octets libres C:\Users\alban\Documents>test.bat C:\Users\alban\Documents>echo "Hello World, i'm test.bat" "Hello World, i'm test.bat" C:\Users\alban\Documents>del test.bat Le fichier de commandes est introuvable. C:\Users\alban\Documents>dir test.bat Le volume dans le lecteur C s’appelle OS Le numéro de série du volume est 52A9-43B1 Répertoire de C:\Users\alban\Documents Fichier introuvable C:\Users\alban\Documents>
La commande type affiche le contenu du fichier qu'on lui passe en argument
dir permet de voir que le fichier existe
On exécute test.bat, puis on voit que le fichier a disparu.
Dernière modification par albanxiii ; 19/02/2021 à 08h28.
Not only is it not right, it's not even wrong!
Avec les processeurs actuels et tous les systèmes de cache, il devient difficile d'être sur qu'un programme efface bien toute trace de lui même. Je parle de système avec OS, sans OS c'est différent, et je pense que la question de départ ne concerne pas ce point.
Ok, le programme efface son image sur le disque dur. Mais avant d'être exécuté il a été chargé en mémoire, partiellement ou totalement. Il faut aussi qu'il prenne soin d'effacer cette zone mémoire ?
Et lors de l'exécution, une partie a peut-être été chargée en cache. Là aussi, est-ce qu'on considère qu'il faut effacer le cache ? Comment fait-on ?
La question peut sembler naïve au départ, mais si on développe ça se complique très vite.
ps : cf. #34, on n'est plus à l'époque des bouliers...
Dernière modification par albanxiii ; 19/02/2021 à 08h16.
Not only is it not right, it's not even wrong!
Si andretou trouve que vous déviez trop du sujet initial, je scinderai la discussion, parce que là, je trouve que vous faites un peu trop dévier le sujet.Relevons un peu le niveau.
Supposons que nous vivons dans une simulation informatique (comme dans le film MATRIX) ET c’est une hypothèse très sérieuse.
Tu es un programme, créé par le programmeur
Tu te jettes d’une falaise pour mourir est disparaitre, est ce que tu vas le faire à l’insu du programmeur ?
Not only is it not right, it's not even wrong!
L'effacement lui même est discutable. Sous Windows, il est vraiment compliqué tant que le programme tourne. Sous Unix, il va être accepter mais le fichier va rester sur le disque tant que le programme tourne.
Dans les 2 cas, il va rester des traces sauf à l'écraser.
Ce qui suppose que le programme ait les droits. Et qu'il ne soit pas sur un disque réseau.
Ou qu'il n'ait pas été téléchargé et évalué à la volée. Et ça, c'est ce qu'on fait tous tous les jours avec Javascript.
Sur un système moderne, cette zone va être effacée à sa sortie/réutilisation pour des raisons de sécurité.
On utilise à fond les mécanismes de mémoire virtuelle pour cela : adresses qui changent, code exécutable en lecture seule, effacement, etc pour éviter des mécanismes de piratage connus qui marchaient autrefois en effet.
On ne peut pas mais le cache étant quasiment inaccessible, ce ne devrait pas être un problème. De plus, les caches pour le code sont très petits : de quelques ko pour le L1 à quelques mo pour les L2/L3.
Sur un système multi-tâche qui fait tourner en permanence différents process et vu leur taille, je ne parierais pas sur la durée de vie du code d'un process qui s'est terminé.
Parce que la question n'est pas posée précisément comme on l'a déjà remarqué plusieurs fois et qu'entre un Apple II et un iPhone actuel, un Windows 3.1 et un Windows 10, il y a une énorme différence et que pourtant, les termes "programmes" et "effacer" s'appliquent mais ils ne recouvrent la même réalité.
Ah bon ? Qu'est-ce qu'il y a de "difficile" d'être "sûr" qu'un programme efface les traces de lui-même ?Envoyé par albanxiiiAvec les processeurs actuels et tous les systèmes de cache, il devient difficile d'être sur qu'un programme efface bien toute trace de lui même.
C'est difficile quand on ne sait pas ce que fait l'OS, sinon il suffit d'en tenir compte et là on est sur à 100%, c'est pas magique l'informatique vous savez...
Quoi, vous voulez parler d'un O ?Je parle de système avec OS, sans OS c'est différent, et je pense que la question de départ ne concerne pas ce point.
Non, effectivement la question de départ ne concerne surement pas ce gros point.
Non, le "programme" que vous avez proposé n'efface pas lui-même son image sur le disque dur, c'est l'OS qui le fait.Ok, le programme efface son image sur le disque dur.
D'ailleurs ce n'est même pas lui-même qui est le programme, le .bat c'est un "script d'OS".
Donc si on veut supprimer "le programme", il faut terminer par un formatage du disque pour supprimer "le programme" (l'OS donc) qui exécute le script.
Si cette zone mémoire est désallouée par l'OS, elle sera rapidement écrasée, ne vous inquiétez pas.Mais avant d'être exécuté il a été chargé en mémoire, partiellement ou totalement. Il faut aussi qu'il prenne soin d'effacer cette zone mémoire ?
On joue à cache cache ?Et lors de l'exécution, une partie a peut-être été chargée en cache. Là aussi, est-ce qu'on considère qu'il faut effacer le cache ? Comment fait-on ?
Mais non, c'est pas compliqué, suffit de se mettre au niveau de celui qui pose la question.La question peut sembler naïve au départ, mais si on développe ça se complique très vite.
Des boulets vous voulez dire ?cf #36, on n'est plus à l'époque des boulets.
Dernière modification par albanxiii ; 19/02/2021 à 11h26. Motif: tentative de fraude corrigée
Quand on doit déformer les propos de quelqu'un pour répondre, à côté en plus, c'est qu'on a déjà commencé à creuser.
Et sinon, sur le sujet du fil ?
Not only is it not right, it's not even wrong!
Bonjour,
L'OS n'est qu'un bout de logiciel avec accès à certains privilèges alloués par le hard du processeur , il n'en reste pas moins qu'un code disposant des mêmes privilèges pourra faire ce qu'il veut sans l'OS, le but la suppression des failles de sécurité c'est d’empêcher un code qui ne soit pas l'OS d'acquérir ces privilèges. A une époque lointaine il suffisait de patcher un vecteur d'interruption pour obtenir le Graal. Heureusement c'est terminé mais il existe toujours des failles et il y en aura toujours .
La durée de vie d'une info dans un cache est très dépendante de l’algorithme de gestion de celui ci et de la concurrence et des pattern d'accès, ayant eu à faire des manips sur ce sujet j'avais été surpris par certains résultats où quelques lignes étaient épargnées longtemps.
Les probleme d'effacement de code sont souvent secondaires vis à vis de l'effacement des données, c'est un soucis pour nombre d'applications militaires, la solution la plus rapide,fiable et simple reste la pyrotechnie!
JR
l'électronique c'est pas du vaudou!
Comme plus haut, tout est dans le «*à une époque lointaine*».
Les OS actuels n’accordent pas du tout les mêmes privilèges à un process fut il administrateur qu’a eux même. Le but est notamment d’éviter les corruptions profondes comme les rootkit.
Les années 80 sont loin et même à l’époque ce n’était pas vrai dès qu’on parlait des machines un peu sécurisées, c’est à dire à as les PC ni même les stations UNIX.
Perso c'est le seul truc que j'ai jamais testé en informatique avec excel et je trouvais cela très sympa avec l'enregistrement des macros qui permettait d'apprendre le langage.
Sans questions il n'y a que des problèmes sans réponses.
Il est certain qu'on pourra toujours trouver un exemple où ça marche, et un autre où ça ne marche pas.Avec les processeurs actuels et tous les systèmes de cache, il devient difficile d'être sur qu'un programme efface bien toute trace de lui même. Je parle de système avec OS, sans OS c'est différent, et je pense que la question de départ ne concerne pas ce point.
Ok, le programme efface son image sur le disque dur. Mais avant d'être exécuté il a été chargé en mémoire, partiellement ou totalement. Il faut aussi qu'il prenne soin d'effacer cette zone mémoire ?
Et lors de l'exécution, une partie a peut-être été chargée en cache. Là aussi, est-ce qu'on considère qu'il faut effacer le cache ? Comment fait-on ?
La question peut sembler naïve au départ, mais si on développe ça se complique très vite.
ps : cf. #34, on n'est plus à l'époque des bouliers...
Si le programme est capable de détruire le matériel cela marchera.. on peut cramer un proc, une Cm mais un disque dur ou une mémoire flash?
Sans questions il n'y a que des problèmes sans réponses.
Au lieu de lancer le programme depuis un fichier disque, on peut aussi lancer un "installateur", qui attend le code du programme via un port réseau.
Les données (le code du programme) transitent alors depuis l'extérieur, l'installateur réserve une zone mémoire, monte les données dans la zone mémoire réservée et initie son démarrage.
A la suppression du programme par le programme lui-même (cad après qu'il se soit effacé en mémoire lui-même), ou par le lanceur (c'est plus pratique mais c'est pas la demande du primoposteur), il ne reste rien, à moins que le flux réseau soit mémorisé en continu (ce qui n'est pas le cas en standard).
tu penses aux scripts en Java, javascript, PHP,..... ?
Ou un vieux script en shell (bourneShell, Cshell etc....)
rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)
détruire mécaniquement un disque magnétique? ça peut.... par des accès disques très anormalement fréquents, et si.... la mécanique disque est faiblarde.....
Sinon, effacer complètement les traces magnétiques (ou électro-statiques) contenant les bits?
Très possible, par formatage standard ET ensuite ré-écriture de valeurs aléatoires sur TOUS les secteurs du disque (ou de la mémoire SSD).
C' est effectué tout à fait volontairement par les logiciels spécialisés dans l' effacement total pour des données sensibles et très secrètes.... mais tout surcharger par ré-écriture, cela demande un temps très long....
Après, on voit nettement que des données ont été volontairement écrasées, mais on est définitivement incapable de les retrouver.....
(voir ausi: formatage de bas niveau...)
nb si tu formattes simplement ton disque dur, les secteurs de la FAT (ou des i-nodes) sont effacées totalement. L' index qui dit où se trouvent les secteurs qui contiennent tes données a été remis à zéro. Mais les secteurs eux-mêmes, ils contiennent encore chacun son petit bout de données. Simplement tu as perdu le répertoire qui te dit lesquels correspondent à ton fichier, et leur ordre de lecture...... Mais un spécialiste peut souvent arriver à remettre de l' ordre là-dedans .......
Pour andretou:
la méthode donnée par BrainMan ne laisse aucune trace directe. Néanmoins il risque de persister les fichiers de connexion aux serveurs pourris....
Ce qui ne renseigne pas sur le détail des actions malveillantes, mais sur leur origine.....
rien ne sert de penser, il faut réfléchir avant.... (Pierre Dac...)
Avec un marteau, ça marche aussi.
En fait, il existe des supports de masse bien plus fragiles que les disques durs (qui sont eux durs comme c'est dit dans le nom ).
Exemple :
Je branche ma clé USB sur le PC.
Je copie le programme de calculatrice windows, soit calc.exe sur ma clé USB.
J'ouvre le lecteur de la clé USB, et je lance calc.exe en cliquant dessus .
J'utilise calc.exe sans problème.
J'enlève la clé USB et donc "supprime" calc.exe du système.
Windows (le crétin, encore lui) cette fois ne râle pas.
Je continue d'utiliser calc.exe normalement comme si de rien.
Je ferme calc.exe, il ne reste que des restes en mémoire.
Salut, J'ai vécu ça, durant mon service (début des 90), je balançais directement dans le feu en plein air (les question de pollution n'étaient pas à l'ordre du jour) les disques durs. Est-ce toujours le cas, à savoir la destruction physique du matériel pour s'assurer de la suppression des données?
Perso je pencherai simplement sur la variante du feuilleton mission impossible pour qu'un programme s'efface par lui même. Dans la mesure ou tout programme a une action physique sur les composants matériel qui lui permettent de fonctionner et d'être garder en mémoire, lui adjoindre un composant matériel qui détruise l'ensemble est assez simple et efficace. Faut pas de panne de Hardware par contre: https://www.youtube.com/watch?v=ZRbPxvTnesUdétruire mécaniquement un disque magnétique? ça peut.... par des accès disques très anormalement fréquents, et si.... la mécanique disque est faiblarde.....
Sinon, effacer complètement les traces magnétiques (ou électro-statiques) contenant les bits?
Très possible, par formatage standard ET ensuite ré-écriture de valeurs aléatoires sur TOUS les secteurs du disque (ou de la mémoire SSD).
C' est effectué tout à fait volontairement par les logiciels spécialisés dans l' effacement total pour des données sensibles et très secrètes.... mais tout surcharger par ré-écriture, cela demande un temps très long....
Après, on voit nettement que des données ont été volontairement écrasées, mais on est définitivement incapable de les retrouver.....
(voir ausi: formatage de bas niveau...)
Sans questions il n'y a que des problèmes sans réponses.
Une pile en court-circuit(éventuellement avec un condensateur) posé sur le sommet d'un volcan juste avant qu'il n'explose.
\o\ \o\ Dunning-Kruger encore vainqueur ! /o/ /o/
bonjour,
c'est ce a quoi j'ai fait allusion en parlant de pyrotechnie, c'est bien une solution réellement utilisée et ce depuis des décennie, étant très jeune j'ai bossé au reconditionnement de d’émetteurs/récepteurs militaires en bande hyper et pour eviter que l’ennemi ne puisse les utiliser les cavités étaient toutes dotées d'un boulon explosif qui en assurait la destruction physique.
Achtung minen !
JR
l'électronique c'est pas du vaudou!
[QUOTE=albanxiii;6749122][B][COLOR="#008000"]Comme déjà dit et redit, la rubrique "logique" n'est pas un poubelle. Ici il ne s'agit pas de science, donc je considère que je suis gentil en le plaçant dans la rubrique "sciences ludiques.[\QUOTE]
Ce sujet n'a pourtant rien de ludique...
https://www.maxisciences.com/virus-i..._art25042.html
La grossièreté et l'invective sont les armes préférées d'une pensée impuissante.
Ni scientifique (message #3), ni ludique (message #55), autant fermer !
Je suis Charlie.
J'affirme péremptoirement que toute affirmation péremptoire est fausse
Bonjour,
Cela montre surtout que très peu d'utilisateurs d'ordinateurs savent avec précision comment cela fonctionne.
En général les connaissances ne vont pas loin que ce qui est développé ici : https://www.futura-sciences.com/tech...dinateur-1614/
Sans questions il n'y a que des problèmes sans réponses.
La cour de récré est fermée
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac