Jump to content

Version String aus Binary extrahieren


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich hab folgendes Problem:

Ich habe eine Binary Datei. In dieser Datei steckt irgendwo die Version im Klartext zb: "V1.2.4.1".

Diese Version möchte ich finden. Da ich aber über mehre Dateien interreiren muss, kann sich die Version natürlich unterscheiden.

 

Daher suche ich über RegEx nach der Version:

findstr /R /C "V[0-9].[0-9].[0-9].[0-9]" "D:\binaryFooFile.xyz" > 'VERSION'

Das Ausgabefile enthält aber die Kommplette Zeile, die die Version enthält.

Super wäre es, wenn mir findStr NUR den gefunden String ausgibt, oder ich die Ausgabe Zeile soweit modifizieren kann, das nur die Version übrig bleibt.

 

Der Tricki Teil ist halt, dass der SuchString dynmich ist.

 

Hat da jemad eine Idee?

VersionHex.PNG

Link zu diesem Kommentar

Korrekt compilierte Binaries haben normalerweise eine entsprechende Eigenschaft, die man mit Powershell ganz einfach auslesen kann .... hier als Beispiel die Explorer.exe ....

Get-Item -Path C:\Windows\explorer.exe |
    Select-Object -ExpandProperty VersionInfo
        Format-Table -AutoSize

Das funktioniert normalerweise mindestens mit allen *.exe und *.dll Binaries.

 

bearbeitet von BOfH_666
Link zu diesem Kommentar
vor 4 Stunden schrieb FuSer:

Prinzipiell ja egal da ich nach einer Lösung suche in einer Binary einen String zu suchen und zu extrahieren.

OK ... ich bin weit davon entfernt, ein Experte zu sein, aber wenn ich mich nicht irre, ist Binary nicht gleich Binary. Es könnte sich also als schwierig herausstellen, eine generelle Lösung zu präsentieren, die mit einer beliebigen Binär-Datei funktioniert. ;-)

Wäre es Dir möglich, uns eine um sensible Daten bereinigte Beispiel-Datei zukommen zu lassen?

Link zu diesem Kommentar
vor 19 Stunden schrieb BOfH_666:

OK ... ich bin weit davon entfernt, ein Experte zu sein, aber wenn ich mich nicht irre, ist Binary nicht gleich Binary. Es könnte sich also als schwierig herausstellen, eine generelle Lösung zu präsentieren, die mit einer beliebigen Binär-Datei funktioniert. ;-)

Wäre es Dir möglich, uns eine um sensible Daten bereinigte Beispiel-Datei zukommen zu lassen?

Hallo, ich hab eine ensprechend bereinigte Datei mal angehangen. Musste sie aber als *txt kennzeichnen.

Diese öffnen und nach "V1.3.4.2" suchen.

 

Also wenn es dafür eine shell script gibt, um die Versionsnummer zu finden, wäre klasse.

 

Aktuell habe ich mir damit beholfen, dass ich ein kleines C# Konsolen Programm geschrieben habe welches mir die Version ausließt.

Ist vermutlich die einfachere Methode als mit Werkzeugen zu arbeiten, die dafür nicht ausgelegt sind.

 

Grüße

hap_mobil.txt

vor 7 Stunden schrieb v-rtc:

Wollte schon gestern was sagen, traute mich aber nicht...Bekommt man ggf. mit Linux Befehlen hin...

Linux ist leider keine Option, aber deine Lösung würde ich auch gern sehen.

Grüße

Link zu diesem Kommentar

Wenn ich das richtig sehe, sind davor und danach Leerzeichen? Dann wäre das doch per regex einfach zu lösen...

Edit: Nachdem Du den regex schon zusammegebaut hast, vergiß einfach findstr und mach das in Powershell...

 

$bytes = [System.IO.File]::ReadAllBytes("C:\Users\martin\Downloads\hap_mobil.txt")
$text = [System.Text.Encoding]::ASCII.GetString($bytes, 0, $bytes.Count)
$text -match ".*(V[0-9]\.[0-9]\.[0-9]\.[0-9]).*"
$matches.Count
$matches[1]

Credits: https://stackoverflow.com/questions/10672092/read-parse-binary-files-with-powershell

bearbeitet von daabm
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...