.dll Zeichen /Codes

...komplette Frage anzeigen

4 Antworten

Was bedeuten diese Codes / Zeichen / Hieroglyphen

Du meinst, wenn man eine .DLL-Datei in einem Texteditor aufmacht?

Gar nichts!

Dateien bestehen aus Einsen und Nullen. Viele Dateitypen haben an einer bestimmten Stelle eine ganz bestimmte Kombination von Ensen und Nullen, so dass ein Programm überprüfen kann, ob es sich tatsächlich um so eine Datei handelt. So haben zum Beispiel alle JPEG-Bilder die Kombination

01001010 01000110 01001001 01000110

an einer bestimmten Stelle gespeichert. Ist diese Kombination nicht vorhanden, so wüsste ein Bildanzeigeprogramm sofort, dass die Datei keine JPEG-Bilddatei ist.

Bei Textdateien und Quellcodedateien entsprechen jeweils 8 Bits (also Einsen oder Nullen) einem Buchstaben, Zeichen oder Kontrollbefehl (z.B. Seitenumbruch). Es gibt jedoch keine Kombination an Bits, die in jeder Textdatei drin sein muss. Daher kann ein Texteditor nicht überprüfen, ob die Datei wirklich eine Textdatei ist. Dieser versucht stattdessen immer jeweils 8 Bits als einen Buchstaben anzuzeigen.

Falls man eine Bilddatei, DLL-Datei, Musikdatei, Videodatei oder ähnliches mit einem Texteditor öffnet, wird somit einfach nur "Müll" angezeigt. Die oben gezeigte Kombination aus 32 Bits aus einer JPEG-Datei würde in einem Texteditor dann so aussehen:

JFIF
wie soll man das als normal sterblicher lesen bzw. verstehen können

In der Regel werden DLL-Dateien mit Programmiersprachen wie C oder C++ geschrieben. Man vertraut darauf, dass der Compiler den (lesbaren) Quellcode korrekt in eine DLL-Datei umwandelt und schaut sich die DLL-Datei nicht noch einmal an.

Wenn man jedoch selbst eine Programmiersprache entwickeln will, muss man die von der eigenen Programmiersprache erstellte DLL-Datei eventuell doch noch einmal überprüfen. Dann stellt sich deine nächste Frage:

Kann man sie irgendwie in Wörter oder Ähnliches "Umwandeln" ?

Um den Inhalt von .DLL-Dateien zu verstehen, kann man versuchen, diese zu disassemblieren. Dabei wird eine bestimmte Kombination aus Bits in eine Assembler-Zeile umgewandelt. Eine Zeile sieht dann in vielleicht so aus:

add 5(%esi), %eax

Bereits aus einer kleinen DLL-Datei erhält man über Tausend Zeilen, bei großen DLL-Dateien kann man über eine Million Zeilen erhalten. Diese dann auszuwerten benötigt viel Zeit und Erfahrung.

und wie versteht das programm z.B. das Spiel die Codes?

Im Endeffekt enthält eine DLL-Datei meistens (nicht immer) Programmcode - genau so wie eine EXE-Datei. Windows fügt diesen Programmcode zum Programmcode der EXE-Datei hinzu.

Der Prozessor führt dann den Programmcode (der aus dem in der EXE-Datei und dem in der DLL-Datei besteht) aus. Diejenige Kombination aus Bits, die der Zeile "add 5(%esi), %eax" (siehe oben) entspricht, würde dazu führen, dass der Prozessor zunächst 32 Bits aus dem RAM-Speicher läd und diese dann zu einer Zahl, die bereits im Prozessor gespeichert ist, dazuaddiert.

Danke! Genau so 'ne Antwort hab ich gesucht!

0

Stark vereinfacht gesagt:

Sowohl in DLLs als auch in EXEn befindet sich Maschinencode. Das sind 0en und 1en (ne ganze Reihe von Bits) die festlegen was der Prozessor machen soll (also bei welchen Eingaben welche Ausgaben entstehen).

Der Unterschied zwischen den beiden ist nur dass die EXE ausführbar ist, die DLL beinhaltet nur Teile des Programms.

Öffnet man die Dateien mit einem Textprogramm nimmt das Textprogramm an, dass Text in der Datei ist (was aber nicht der Fall ist). Es wendet also den Zeichensatz auf die Bytes in der Datei an. Der Zeichensatz ist ein Alphabet dass zwischen Byte und Buchstabe übersetzt (wie ein Wörterbuch). Aber zu sehen sind seltsame Zeichen, Rechtecke und Hieroglyphen, denn wenn man die Byte-Werte im Zeichensatz nachschlägt findet man genau die (oder halt Rechtecke wenn das Zeichen nicht angezeigt werden kann).

Das wirst du bei den meisten Dateien vorfinden. Die meisten Programme speichern nach ihrem eigenen System ab (die und die Bytes bedeuten für das Programm das, andere Bytes was anderes). Daher kann man diese Daten auch nicht einfach lesbar machen. Bei Bildern werden z.B. fast nur Zahlen gespeichert die die Farbwerte angeben.

Bei komprimierten Dateien wird die Bedeutung der Bytes nochmal geändert. Dadurch kann die Komprimierung mehr Platz sparen

Was meinst du mit dieser Frage?

Hast du eine .dll-Datei in einer Textverarbeitung geöffnet und siehst nichts, was du interpretieren kannst?

.dll ist Maschinecode; den muss man nicht lesen können.

Es reicht wenn der Rechner ihn ausführen kann.

Aber wieso sind es solche Zeichen. warum keine Buchstaben oder Zahlen?

0
@RamonMelchior

Das sind Zahlen, und die "Hieroglyphen", die du siehst, ist der Versuch des Textprogramms, das du verwendest, diese Zahlen als Buchstaben zu interpretieren.

0

Was möchtest Du wissen?