Accueil > > > DÉCRYPTER LES FICHIERS IMAGE JPG (VOUS AVEZ ÉGARÉ LA CLÉ)
DÉCRYPTER LES FICHIERS IMAGE JPG (VOUS AVEZ ÉGARÉ LA CLÉ)
Information sur la source
Description
Certains fichiers jpg cryptés nécessitent une clé pour être visionnés. L'algorythme de cryptage est basé sur l'utilisation de Xor. Il est très facile de le trouver... J'ai adapté ce code en Delphi à partir d'une source en VB parue en février 2002 dans l'excellent magazine "Pirates Mag" (n° 10), dans le cadre d'un article traitant précisément du décryptage de ces JPG. Donc, si vous avez égaré la clé de décryptage que vous aviez payée la peau des fesses, tout n'est pas perdu... Vous pourrez à nouveau visionner ces images de rêve représentant des paysages sublimes, les fonds marins, la faune et la flore de notre planète, etc... ;) Le code qui suit lit et écrit byte par byte directement dans les fichiers. Il n'est donc pas des plus rapides, et je travaille sur une version utilisant TFileSteam. J'en avais fait un programme avec progression, temps restant estimé, tout ça, mais il faut que je le reprenne. Je joindrai bientôt un zip pour la mise en oeuvre, je n'ai pas le temps pour l'instant. A suivre, donc... ATTENTION : si vous utilisez la première méthode (sans passer par TFileStream), et que vous travaillez à partir de fichiers en lecture seule (ReadOnly), n'oubliez pas de passer par une procédure qui enlève cette propriété. Voir en Annexe ci-dessous (mise à jour: 06/11/03, code précédent faux). Pour la mise en application, voir ici : http://www.delphifr.com/code.aspx?ID=17510
Source
- { Byte par byte }
-
- procedure DecodeFile(const FromFileName, ToFileName: string);
- var
- FCod, FDeCod: file of Byte;
- Tmp, Key: Byte;
- begin
- AssignFile(FCod, FromFileName);
- try
- Reset(FCod);
- Read(FCod, Tmp);
- Key := Tmp xor 255; // calcul de la clé de cryptage
- Seek(FCod, 0);
- AssignFile(FDeCod, ToFileName);
- try
- ReWrite(FDeCod);
- while not EOF(FCod) do
- begin
- Read(FCod, Tmp);
- Tmp := Tmp xor Key;
- Write(FDeCod, Tmp);
- end;
- finally
- CloseFile(FDeCod);
- end;
- finally
- CloseFile(FCod);
- end;
- end;
-
- { Avec TFileSteam }
-
- procedure DecodeFileStream(const FromFileName, ToFileName: string);
- var
- FSCod, FSDeCod: TFileStream;
- Tmp, Key: Byte;
- i: Integer;
- begin
- FSCod := TFileStream.Create(FromFileName, fmOpenRead);
- try
- FSCod.Read(Key, 1);
- Key := Key xor 255; // calcul de la clé de cryptage
- FSCod.Seek(0, 0);
- FSDeCod := TFileStream.Create(ToFileName, fmCreate);
- try
- for i := 0 to FSCod.Size - 1 do
- begin
- FSCod.Read(Tmp, 1);
- Tmp := Tmp xor Key;
- FSDeCod.Write(Tmp, 1);
- end;
- finally
- FSDeCod.Free;
- end;
- finally
- FSCod.Free;
- end;
- end;
-
-
- {
- Supprimer la propriété ReadOnly d'un fichier
- (mise à jour: 06/11/03, code précédent faux)
- }
-
- var Attribut: Integer;
- FichierEnco_D: String; // le fichier à lire
- begin
- Attribut := FileGetAttr(FichierEnco_D); // récupère attributs
- if Attribut and faReadOnly <> 0 then // si lecture seule...
- FileSetAttr(FichierEnco_D, Attribut and not faReadOnly); // ...supprime ReadOnly
- end;
-
{ Byte par byte }
procedure DecodeFile(const FromFileName, ToFileName: string);
var
FCod, FDeCod: file of Byte;
Tmp, Key: Byte;
begin
AssignFile(FCod, FromFileName);
try
Reset(FCod);
Read(FCod, Tmp);
Key := Tmp xor 255; // calcul de la clé de cryptage
Seek(FCod, 0);
AssignFile(FDeCod, ToFileName);
try
ReWrite(FDeCod);
while not EOF(FCod) do
begin
Read(FCod, Tmp);
Tmp := Tmp xor Key;
Write(FDeCod, Tmp);
end;
finally
CloseFile(FDeCod);
end;
finally
CloseFile(FCod);
end;
end;
{ Avec TFileSteam }
procedure DecodeFileStream(const FromFileName, ToFileName: string);
var
FSCod, FSDeCod: TFileStream;
Tmp, Key: Byte;
i: Integer;
begin
FSCod := TFileStream.Create(FromFileName, fmOpenRead);
try
FSCod.Read(Key, 1);
Key := Key xor 255; // calcul de la clé de cryptage
FSCod.Seek(0, 0);
FSDeCod := TFileStream.Create(ToFileName, fmCreate);
try
for i := 0 to FSCod.Size - 1 do
begin
FSCod.Read(Tmp, 1);
Tmp := Tmp xor Key;
FSDeCod.Write(Tmp, 1);
end;
finally
FSDeCod.Free;
end;
finally
FSCod.Free;
end;
end;
{
Supprimer la propriété ReadOnly d'un fichier
(mise à jour: 06/11/03, code précédent faux)
}
var Attribut: Integer;
FichierEnco_D: String; // le fichier à lire
begin
Attribut := FileGetAttr(FichierEnco_D); // récupère attributs
if Attribut and faReadOnly <> 0 then // si lecture seule...
FileSetAttr(FichierEnco_D, Attribut and not faReadOnly); // ...supprime ReadOnly
end;
Conclusion
Voila, j'ai balancé tout ça un peu vite, en réponse à une question du forum. J'espère qu'il n'y a pas trop de bêtises, sinon, n'hésitez pas... hein ?
Historique
- 22 août 2006 21:37:45 :
- Le code précédent était vraiment trop laid.
Les blocs try finally sont enfin à leur place...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
lecture et écriture dans un fichier .ini [ par finipe ]
Bonjour à tous !Je voudrais savoir comment faire pour : - écrire dans un .ini tous les items d'une listbox, de manière à pouvoir les récupérer en lisa
Lecture/écriture dans un fichier [ par pablor44 ]
Bonjour à tous,alors voilà j'ai un projet en tête mais je rencontre quelques problème quand au comment je vais le réaliser et
Intercepter écriture/lecture fichiers [ par kokonut ]
Salut, ça fait un baille que je ne suis pas passé dans le coin. Ma question est toute bète et pourtant c'est pas si simple. Je cherch
Lecture Fichier [ par ertu7 ]
Bonjour tout le monde, Voilà je suis en stage au CETE de l'est et j'ai pour mission de convertir un programme assez ancien é
aide lecture fichier xml [ par jeromelef ]
bonjour, j'ai un gros oucis avec mon fichier xml. comment dois-je faire pour lire ce fichier ? <dom
écriture dans un fichier binaire [ par elementalord ]
salut à tous!! je voudrais savoir comment ecrire dans un fichier binaire, j'ai atendu dire que celà me permetrait aussi d'avoir une taille d
Lecture de fichier. Boucle [ par pandaspirit ]
Bonjour !J'ai un petit soucis avec la lecture de fichier texte...Sur chaque ligne, entre autres infos, j'ai l'identifiant de la ligne 1,2,3....,nJ'ess
Lecture dans un fichier Typé [ par astrosug44 ]
Bonjour,Je voudrait savoir comment faire pour récupérer des donnés dans un fichier typé....Par exemple voila ce qu'il y aurait dans "exemple.txt" :12.
lecture de fichier pdf [ par philpas ]
bonjour, j'ai un soucis avec la lecture de fichiers pdf.J'ai installé dans delphi 6 l'activeX acrobat en suivant la procédure de ce sitehttp
Lecture d’un fichier [ par e14273 ]
Bonjour à tous, Pour lire le contenu d’un fichier j’utilise l’instruction suivante : Readln(ficRom,stg); et ça marche mais ça met dans le string «
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|