Suche nach HEX-Werten am Dateianfang

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
PMurschall
Junior Member
Junior Member
Posts: 29
Joined: 2004-01-26, 08:43 UTC
Location: Frechen

Suche nach HEX-Werten am Dateianfang

Post by *PMurschall »

Hallo werte NGler 8)
ich habe mich - bisher erfolglos - mit den Regulären Ausdrücken rumgeschlagen, denn
ich möchte nach allen Dateien suchen, die mit 0x00 0x00 0x00 0x00 oder anderen
HEX-Werten BEGINNEN, d.h. die ersten 4 oder 8 Bytes.
Wie mache ich das ?

Hintergrund ist das letzte WINXP Update, welches mir eine XP-Installation mächtig "zerschossen" hat,
woraufhin ich (nach diversen Rettungsversuchen) etliche Dateien (DLLs/EXEs etc.) mit Inhalt "00" entdeckt habe.
_______________________
mit freundlichen Grüßen
Peter

The two basic principles of Windows System Administration:
For minor problems, reboot. For major problems, reinstall !
TychoBarfy
Senior Member
Senior Member
Posts: 350
Joined: 2005-08-13, 15:13 UTC
Location: Berlin, Germany
Contact:

Post by *TychoBarfy »

"Text Suchen" und dort "Reg. Ausdrücke" markieren.
Normalerweise müsste das gehen (allerdings zielt der Ausdruck nur auf den Zeilenanfang, nicht auf den Dateianfang):
^\x00{10,}
Das Beispiel oben macht folgendes: Finde am Zeilenanfang mindestens 10 mal hintereinander den Hex-Wert 00!


Hab dabei gerade nebenbei einen Bug in TC 7 Public Beta 1 entdeckt.
Wenn ich das so "^(\x00){10,}" mache und auf "Suche starten" klicke, schmiert TC ohne Fehlermeldung ab.
-- TB --
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Habe nochmal geprüft und festgestellt, daß TC generell beim Ausdruck (\x00){X,} abstürzt. Ich glaube nicht, daß TC bzw. die RegEx-Bibliothek für solche 0x00-Expeditionen gewappnet ist. ;)

TC 6.55 schmiert übrigens auch ab und für ältere Versionen gilt vermutlich das gleiche.

Icfu
This account is for sale
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Das Problem ist IIRC, dass die TC-Suchengine auch dann Text sucht, wenn man den Hexwert eingibt. Und 0x00 ist das Dateiendezeichen, weshalb danach eben nicht gesucht werden kann, weil es die Suche beendet.

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50843
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Wenn ich das so "^(\x00){10,}" mache und auf "Suche starten" klicke, schmiert TC ohne Fehlermeldung ab.
Kann ich leider nicht reproduzieren! Eine Beispieldatei, bei der das passiert wäre nett!
Author of Total Commander
https://www.ghisler.com
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Du kannst jede x-beliebige Exe-Datei nehmen, z.b. die TC-Installationsdatei.

Icfu
This account is for sale
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50843
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Hmm, kann ich nicht reproduzieren. Als Suchtext benutze ich

^\x00{10,}

wie oben angegeben, und "Reg. Ausdruck (Regex 2)".
Author of Total Commander
https://www.ghisler.com
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Edit: Du hast die runden Klammern vergessen!

Textsuche, RexEx, ^(\x00){10,}
Suche starten => Crash

Unter XP SP2 immer reproduzierbar.

Icfu
This account is for sale
User avatar
PMurschall
Junior Member
Junior Member
Posts: 29
Joined: 2004-01-26, 08:43 UTC
Location: Frechen

YEP !

Post by *PMurschall »

... unter W2K ebenfalls reproduzierbar, auch
mit 6.55: Sobald der Haken bei RegEx2 gesetzt
wird, ist TC sang&klanglos wesch ....
_______________________
mit freundlichen Grüßen
Peter

The two basic principles of Windows System Administration:
For minor problems, reboot. For major problems, reinstall !
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Confirmed.

Bei diesem Suchstring

Code: Select all

^(\x00){10,} 
im Feld 'Text suchen' und Regex ein, beendet sich der TC sang und Klanglos ohne jede Fehlermeldung.


[Edit]
Unter Win98 erhalte ich auch eine Fehlermeldung:

Totalcmd verursachte einen Fehler durch eine ungültige Seite
in Modul Totalcmd.EXE bei 0197:00449c8a.
Register:
EAX=00eaed88 CS=0197 EIP=00449c8a EFLGS=00010207
EBX=00000001 SS=019f ESP=0085fffc EBP=00860044
ECX=00000000 DS=019f ESI=00eaed88 FS=2737
EDX=00e94088 ES=019f EDI=7ffffffe GS=0000
Bytes bei CS:EIP:
53 56 57 33 c9 89 4d b8 8b f0 33 c0 55 68 4d a7
Stapelwerte:
[/edit]

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50843
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Danke, ich werde den Autor der Regex-Library anschreiben.
Author of Total Commander
https://www.ghisler.com
Post Reply