Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

ASC to BIN und andersrum

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
mat ratze
Newbie
Newbie
Beiträge: 3
Registriert: 20. Aug 2004, 15:46

ASC to BIN und andersrum

Beitrag von mat ratze »

Hallo,

ich möchte eine ASCII-Datei mit z.B. den Inhalten "A0FF0E113400....." in eine binäre Datei umsetzen. Oder umgekehrt die Bytes einer binären Datei (z.B. Bitmap) in ASCII "A0FF0E113400....." umsetzen.

Gibt es ein kleines Tool oder Tipp dafür, am liebsten mit Linux/Unix Bordmitteln, keine speziellen Programme aus irgendwelchen Paketen. Ich bin öfter an anderen Servern und kann nicht immer was installieren für so einen eigentlichen Kleinkram wie diese Konvertierung...

Mit DD geht das wohl nicht, habt ihr Ideen?
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

Ersteinmal hoffe ich, dass ich dein Problem richtig verstanden habe...

Ich würde es mit der Scriptsprache Perl machen. Perl ist in jeder Linux-Installation als Standardpaket mit dabei. Meist ist das sogar ein muss, da manche Installationsroutinen mit perl geschrieben sind...
Für dein Problem würde ein Script (z.B. hex.pl) wiefolgt aussehen:

Code: Alles auswählen

#!/usr/bin/perl

while (<>) {
print pack "H*", $_;
}
Benutzen würde man es mit

Code: Alles auswählen

cat eingabe.txt | hex.pl >ausgabe.bin
Man könnte es aber auch auf der Kommandozeile erledigen. Da würde das so aussehen:

Code: Alles auswählen

cat eingabe.txt | perl -e 'while (<>){print pack "H*",$_;}' > ausgabe.bin
Übrigens: Alles was in der Dateieingabe nicht Hex ist, wird automatisch und stillschweigend ignoriert.

Gruß,

echo 6E6F20746F2058500A | perl -e 'while (<>){print pack "H*",$_;}'
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

Ich habe gerade gemerkt, dass ich nur die halbe Antwort geliefert habe. Der Weg zurück geht so:

Code: Alles auswählen

#!/usr/bin/perl

$/="";
while (<>) {
print unpack "H*", $_;
}
Oder auf der Kommandozeile:

Code: Alles auswählen

cat eingabe.bin | perl -e '$/="";while (<>){print unpack "H*",$_;}' > ausgabe.txt
mat ratze
Newbie
Newbie
Beiträge: 3
Registriert: 20. Aug 2004, 15:46

Beitrag von mat ratze »

Hallo notoxp,

danke für Deinen Beitrag. Mit Perl habe ich mich noch nie befasst. Wenn Zeit ist, probiere ich das mal aus.

Ich habe inzwischen ein Programm namens "srecord" gefunden. Das ist eigentlich dazu da, um EPROM-Dateien (die elektrisch programmierbaren ROMs) hin und her zu konvertieren. Und das kann u.a. auch eine ausführbare Datei in ASCII-HEX umwandeln und natürlich auch wieder zurück.
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

mat ratze hat geschrieben:Ich habe inzwischen ein Programm namens "srecord" gefunden.
Das habe ich gar nicht... Weder in meiner SLES 7 noch in meiner SLES 8 Enterprise Installation.

Ich schätze in diesem Fall führen sicher viele Wege nach Rom.
Antworten