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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|