AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi In einer Datei nach bestimmten Hexcode suchen?
Thema durchsuchen
Ansicht
Themen-Optionen

In einer Datei nach bestimmten Hexcode suchen?

Ein Thema von BBoy · begonnen am 23. Apr 2013 · letzter Beitrag vom 24. Apr 2013
Antwort Antwort
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 13:15
Hallo,

mit TFileStream die Datei öffnen.

TFileStream.readbuffer anschauen.

Nachdem ersten Auftreten von $FF suchen,
wenn gefunden dann schauen ob das nächste Zeichen $D8 ist.
Wenn ja, hast Du Deinen Anfang gefunden.

Mit TFileStream.seek(5, soFromCurrent) springt der Positionszeiger 5 Zeichen weiter.

In der Regel steht im jpg auch irgendwo die Größe drinnen.
Das auszulesen ist vielleicht einfacher als die gesamte Datei zu scannen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 13:23
Delphi-Quellcode:
uses strUtils;
procedure TForm3.Button1Click(Sender: TObject);
var
  MS: TmemoryStream;
  p1: Cardinal;
  Search : AnsiString;
begin
  // !! Positionen nicht 0 - basiert
  if OpenDialog1.Execute then
  begin
    MS := TmemoryStream.Create;
    try
      MS.LoadFromFile(OpenDialog1.FileName);
      SetString(Search,PansiChar(MS.Memory),MS.Size);
      p1 := Pos(#$FF#$D8, Search);
      ListBox1.Items.Add(Format('Pos FFD8 %d', [p1]));
      p1 := PosEx(AnsiString('JFIF'), Search, p1);
      ListBox1.Items.Add(Format('Pos JFIF %d', [p1]));
      p1 := PosEx(AnsiString(#$FF#$D9), Search, p1);
      ListBox1.Items.Add(Format('Pos FFD9 %d', [p1]));
    finally
      MS.Free;
    end;

  end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (23. Apr 2013 um 14:07 Uhr)
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 13:35
Danke Bummi für den Code.

Komischerweise findet er das vorkommen nicht, obwohl es vorhanden ist. Auch der Versuch den Memory im memo anzuzeigen (zum testen) geht nicht. Es wird nix angezeigt.

Delphi-Quellcode:
procedure TForm1.BtnCut3Click(Sender: TObject);
var
 MS:TmemoryStream;
 p1:Cardinal;
begin
    // !! Positionen nicht 0 - basiert
         MS := TMemoryStream.Create;
         try
           MS.LoadFromFile('.\temp\3.jpg');
           p1 := Pos(#$FF#$D8,AnsiString(MS.Memory)) ;
           rzmemo4.Text := ansistring(ms.Memory);
           ListBox1.Items.Add(Format('Pos FFD8 %d',[p1]) );
           p1 := PosEx( AnsiString('JFIF'),AnsiString(MS.Memory),p1);
           ListBox1.Items.Add(Format('Pos JFIF %d',[p1]) );
           p1 := PosEx(#$FF#$D9,AnsiString(MS.Memory),p1);
           ListBox1.Items.Add(Format('Pos FFD9 %d',[p1]) );
         finally
           MS.Free;
         end;


end;
Ist der Inhalt von Memory überhaupt schon HEX? Oder eher die "ÿØÿà JFIF  `" Zeichen?

Geändert von BBoy (23. Apr 2013 um 13:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 14:36
Ist der Inhalt von Memory überhaupt schon HEX? Oder eher die "ÿØÿà JFIF  `" Zeichen?
Das kommt ganz darauf an wie Du es darstellst, bzw. interpretierst. Im Prinzip enthält jede Speicherstelle (Byte) einen Wert zwischen 0 und 255.

Mir gefällt Bummis Lösung auch, trotzdem sind die Anregungen von Klaus und Maverik weder falsch noch zu kurz gegriffen. Meiner Meinung nach die notwendige Vorstufe um Bummis Lösung zu begreifen, aber nun gut....

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 14:51
Danke Bummi!! Endlich eine Routine dieser Art die auch funktioniert.

Mir gefällt Bummis Lösung auch, trotzdem sind die Anregungen von Klaus und Maverik weder falsch noch zu kurz gegriffen. Meiner Meinung nach die notwendige Vorstufe um Bummis Lösung zu begreifen, aber nun gut....
Gruß
K-H
Ich hatte auch schon einiges in der Richtung versucht aber keine Routine hatte etwas gefunden, genau wie bei bummis erster Version. Daher dachte ich wäre auf dem total falschen weg. Mit Streams, Setstring usw habe ich noch nie gearbeitet. Nun weiß ich wie es geht und bin froh das mir hier geholfen wurde.... wie schon so oft Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 13:36
hmm OK... ich dachte "vorkauen" gilt nicht...

Mavarik

Geändert von Mavarik (23. Apr 2013 um 14:53 Uhr)
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 13:55
Wenn ich auch nur ansatzweise gewusst hätte wie das geht, hätte ich nicht gefragt. Daher finde ich so aussagekräftige Antworten wie von Bummi hilfreich. Ich habe zwar vorher schon verschiedene Routinen ausprobiert aber die hatten in etwa das selbe Problem wie die von Bummi. Habe das an mehreren JPG ausprobiert. Weiß echt nicht warum das nicht funktioniert
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 14:08
@BBoy sorry, ich hatte einen Fehler im Gedächtnisprotokoll , angepasst ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 23. Apr 2013, 17:04
Delphi-Quellcode:
uses strUtils;
procedure TForm3.Button1Click(Sender: TObject);
var
  MS: TmemoryStream;
  p1: Cardinal;
  Search : AnsiString;
begin
  // !! Positionen nicht 0 - basiert
  if OpenDialog1.Execute then
  begin
    MS := TmemoryStream.Create;
    try
      MS.LoadFromFile(OpenDialog1.FileName);
      SetString(Search,PansiChar(MS.Memory),MS.Size);
      p1 := Pos(#$FF#$D8, Search);
      ListBox1.Items.Add(Format('Pos FFD8 %d', [p1]));
      p1 := PosEx(AnsiString('JFIF'), Search, p1);
      ListBox1.Items.Add(Format('Pos JFIF %d', [p1]));
      p1 := PosEx(AnsiString(#$FF#$D9), Search, p1);
      ListBox1.Items.Add(Format('Pos FFD9 %d', [p1]));
    finally
      MS.Free;
    end;

  end;
end;
wer muss in seinem eigenem Programm Hexcode suchen? *seltsam*..Hack?..glaube ich nicht..da gibt es genug Tools..sehr komisch!!!???
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#10

AW: In einer Datei nach bestimmten Hexcode suchen?

  Alt 24. Apr 2013, 09:14
Wer sagt das ich in meinem eigenen Programm nach Hexcode suche? Dem Programmcode kann man entnehmen das eine Datei geladen wird. Und wie in meinem ersten Beitrag schon geschrieben geht es darum Bilddateien zu analysieren. Und was bitte sehr ist daran komisch in einer Datei nach Hexcode zu suchen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz