hex2bin / bmp2bin

Hallo,

folgendes Probelm:

Ich hab ein digitales Photo im bmp format. Dieses Foto möchte ich nun decodieren. Ich will sozusagen die kleinesten Bestandteil diese Photos aufzeigen. Mit kleinsten Bestandteilen meine ich die einzelnen Bits bzw. den binären Code (101001010101).

Ich hab mir bereits etliche Hex und Bin Editoren runtergeladen und versucht an diesen binären Code ranzukommen. Bis jetzt erfolglos.

In machen Editoren wird zwar der Binäre Code angezeigt, ich kann aber nur den Hex Code exportieren. Wie könnte ich den Hex Code in einen Binären Code umwandeln?

Ich hoffe Ihr könnt mir helfen =)

Ich brauche diesen Code des .bmp Photos für einen Teilbereich meiner Diplomarbeit. Ich selber bin kein Programmieren und verstehe eigentlich gar nix von der Thematik, daher bin ich wirklich auf Hilfe angewiesen.

Zweck dieses ganzen Unterfanges ist die Gegenüberstellung der bildnersichen Darstellung im Vergleich zu der eigentlich inhaltlichen Grundbasis (dem binäre Code). Wie breits erwähnt konnte ich den Hex Code ermitteln. Der Hex Code des Photos besteht aus 230 A4 Seiten - diese enorme Anzahl soll die Gegenüberstellung von Enprodukt:stuck_out_tongue:hoto und Grundbaustein:Code untermauern.

Viele Dank vorab

Daniel =)

Ich hab mir bereits etliche Hex und Bin Editoren runtergeladen
und versucht an diesen binären Code ranzukommen. Bis jetzt
erfolglos.
In machen Editoren wird zwar der Binäre Code angezeigt, ich
kann aber nur den Hex Code exportieren. Wie könnte ich den Hex
Code in einen Binären Code umwandeln?

Hi Daniel,
hast du Office? Excel kann das mit HexInBin-Funktion.
Gruß
Reinhard

Hallo Reinhard,

ne also mit Excel hab ich das noch nicht versucht! Hab hier zu Hause auch gar kein Office. Aber das ist kein Problem, ein Bekannter hat bei sich Office installiert.

Handelt es sich bei der hex2bin Funktion von Excel um eine standard Funktion? oder ist das etwas kniffliger? … bzw. ist der Vorgang in Excel irgendwo dokumentiert?

Vielen Dank für die schnelle Hilfe

Daniel

Hallo,

hast du Zugriff auf ein Linux-System oder perl (http://www.activestate.com) unter Windows installiert ?

perl -ne 'print sprintf("%b", ord($\_)) foreach(split(//));' binaercode.txt

Allerdings wird der Header der .bmp da mit umgewandelt, nicht nur die Bilddaten…

Alexander

Handelt es sich bei der hex2bin Funktion von Excel um eine
standard Funktion? oder ist das etwas kniffliger? … bzw. ist
der Vorgang in Excel irgendwo dokumentiert?

Hi Daniel,
nö, ist weder dokummentiert, aber ist easy zu benutzen und wenn du es über Einfügen—Funktion einfügst in eine Zelle wird dieir gesagt was du eingeben musst. Letzlich nur den Hex-Wert und die Anzahl Bits die du haben willst.
Einmalig muß über Extras Add-Inns die Analysn unktionen eingebunden werden in Excel, sind aber nur einmalig 4 Klicks.
Wie liegen denn deine Hexdaten vor also in welchem DateiFormat?
Also was siesht du wenn du die Datei mit Notepad (kein Hexeditor!) o.ä. öffnest.
Gruß
Reinhard

Nachtrag
Hi Peter,
wenn du kein Excel hast,lade dir OpenOffice kostenlos runter, kann vergleichbar viel, sicher auch hex2bin.

Hab hier eine ca 9mb große wordpad (.doc) datei in der ich den hexcode drinne habe.

An den HexCode bin ich mit dem programm winhex rangekommen. Hab einfach das bmp in Winhex geöffnet und dann den HexCode exportiert.

Der HexCode schaut so aus:
101030001000000F00A00000201030001000000080000000
301030001000000010000000601030001000000010000001
1010400010000006C6800001201030001000000010000001
501030001000000010000001601030001000000F00A00001
701040001000000A0DE4E001A01050001000000F20000001
B010500010000 …

ne diese möglichkeiten stehen mir nicht zur Verfügung, aber Dank für die Hilfe.

=)

Hallo Reinhard,

hab gestern versucht deine Tips in Excel umzusätzen. Es ging auch, jedoch nur eingeschränkt.

Ich konnt zwar Zahlen in den Binär-Code umwandeln allerdings nur maximal 4 Zahlen/Zeichen … Da ich hier 240 Seiten Hex-Code vor mir habe, wäre es ein äüßerst mühseeliges Unterfangen alle einzelen umzuwandeln =)

Hier mal der Anfang vom Orignal-Hex-Code

49492A00080000001300FE000400010000000000000000010300010000003
60700000101030001000000F00A0000020103000100000008000000030103
00010000000100000006010300010000000100000011010400010000006C6
8000012010300010000000100000015010300010000000100000016010300
01000000F00A00001701040001000000A0DE4E001A01050001000000F2000
0001B01050001000000FA000000280103000100000002000000310102001C
0000000201000032010200140000001E010000BC020100993A00003201000
049860100A02C0000CC3B000069870400010000000C474F00000000000051
250210270000005125021027000041646F62652050686F746F73686F70204
353322057696E646F777300323030353A31323A30322030343A33343A3432
003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D3
04D7043656869487A7265537A4E54637A6B633964223F3E0A3C783A786D70
6D65746120786D6C6E733A7

dieser Code hier entsprich ca. 1%-2% des gesamten Umfang.

Kannst Du bei dir diesen Code umwandeln? Weil eigentlich sollte das ja normale Hex-Code sein also 0-9 und A-F.

vielen Dank

Daniel

Hallo Dan,

6D65746120786D6C6E733A7

dieser Code hier entsprich ca. 1%-2% des gesamten Umfang.

Kannst Du bei dir diesen Code umwandeln? Weil eigentlich
sollte das ja normale Hex-Code sein also 0-9 und A-F.

das kannst Du selbst tun, und zwar mit der Suchen&Ersetzen-Funktion, die Du genau 18 mal anwendest:

Ersetze alle „0“ durch „oooo“.
Ersetze alle „1“ durch „oooi“.
Ersetze alle „2“ durch „ooio“.
Ersetze alle „3“ durch „ooii“.
Ersetze alle „4“ durch „oioo“.
Ersetze alle „5“ durch „oioi“.
Ersetze alle „6“ durch „oiio“.
Ersetze alle „7“ durch „oiii“.
Ersetze alle „8“ durch „iooo“.
Ersetze alle „9“ durch „iooi“.
Ersetze alle „A“ durch „ioio“.
Ersetze alle „B“ durch „ioii“.
Ersetze alle „C“ durch „iioo“.
Ersetze alle „D“ durch „iioi“.
Ersetze alle „E“ durch „iiio“.
Ersetze alle „F“ durch „iiii“.

Ersetze alle „o“ durch „0“.
Ersetze alle „i“ durch „1“.

Fertig. Die resultierende Dualcode-Datei ist genau 4 mal so groß wie die Hexcode-Datei, wird also stolze 4*240 = 960 Seiten umfassen.

Mit freundlichem Gruß
Martin

49492A00080000001300FE000400010000000000000000010300010000003
60700000101030001000000F00A0000020103000100000008000000030103
00010000000100000006010300010000000100000011010400010000006C6
8000012010300010000000100000015010300010000000100000016010300
01000000F00A00001701040001000000A0DE4E001A01050001000000F2000
0001B01050001000000FA000000280103000100000002000000310102001C
0000000201000032010200140000001E010000BC020100993A00003201000
049860100A02C0000CC3B000069870400010000000C474F00000000000051
250210270000005125021027000041646F62652050686F746F73686F70204
353322057696E646F777300323030353A31323A30322030343A33343A3432
003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D3
04D7043656869487A7265537A4E54637A6B633964223F3E0A3C783A786D70
6D65746120786D6C6E733A7
dieser Code hier entsprich ca. 1%-2% des gesamten Umfang.
Kannst Du bei dir diesen Code umwandeln? Weil eigentlich
sollte das ja normale Hex-Code sein also 0-9 und A-F.

Hi Daniel,
im Code must du ggfs die Anzahl der hexZeichen und die der Binzeichen anpasen, sowie den Pfad+Dateinamen.
Das Makro erwartet eine AsciiDatei (hex.txt) mit den Hexzeichen, so wie hier oben. Im Code legst du fest wieviele davon eingelesen werden. Im Beispiel 100.
Das ergibt bei 8 Bit/Zeichen 800 Bitzeichen (0,1). Im Code legst du fest wieviele davon pro Zeile ausgegeben werden sollen in Bin.txt.
Zum Code einfügen bzw. später mal abändern, Alt+F11, Doppelklick auf Modul1, Dort reinkopieren, ggfs anpassen., Fenster schliessen.
Start in Excel über Extras–Makro–Makro…unwandeln—Aiusführen.
Im VB-Editor muss unter Extras–Verweise der Verweis auf atpvbaen.xls gesetzt sein, nur dann steht Hex2Bin zur Verfügung.
Gruß
Reinhard

Option Explicit
Sub umwandeln()
Dim AnzahlHexZeichen As Long, Zähler As Long, SatzHex As String, Satzbin As String
Dim AnzahlBinZeichen As Long, GesamtSatzHex As String, GesamtSatzBin As String
Dim n As Long, Satz As String
AnzahlHexZeichen = 100 'Hier festlegen wieviele Hexzeichen eingelesen werden sollen
AnzahlBinZeichen = 80 ' Hier eintragen wieviele Binzeichen pro Zeile sein sollen
Close
Open "c:\test\hex.txt" For Input As #1
While Not EOF(1) And Zähler