Seit die erste Person 5318008 auf einem Taschenrechner geschrieben hat, verstecken Nerds geheime Zahlen in Ihrem PC und benutzen sie Aushandeln geheimer Handshakes zwischen Anwendungen und Dateien. Heute werfen wir einen Blick auf einige der unterhaltsameren Beispiele.
Die meisten Programmiersprachen verwenden einen 32-Bit Integer-Typ, um bestimmte Arten von Daten hinter den Kulissen darzustellen - intern wird die Nummer gespeichert im RAM oder von der CPU als 32 Einsen und Nullen verwendet, aber im Quellcode würde es entweder im regulären Dezimalformat oder als hexadezimales Format geschrieben werden, das die Zahlen 0 bis 9 und die Buchstaben A bis F verwendet.
Wenn das Betriebssystem oder eine Anwendung den Typ einer Datei ermitteln möchte, kann sie den Anfang der Datei nach einem speziellen Marker durchsuchen, der den Typ der Datei angibt. Beispielsweise kann eine PDF-Datei mit dem Hexadezimalwert 0x255044462D312E33 beginnen, was "% PDF-1.3" im ASCII-Format entspricht, oder eine ZIP-Datei beginnt mit 0x504B, was "PK" entspricht und vom ursprünglichen PKZip-Dienstprogramm abstammt. Durch Betrachten dieser "Signatur" kann ein Dateityp auch ohne weitere Metadaten leicht identifiziert werden.
Kompilierte Java-Class-Dateien beginnen mit CAFEBABE
Das Linux-Dienstprogramm "file" kann vom Terminal aus verwendet werden, um den Typ zu bestimmen einer Datei - tatsächlich liest sie die magischen Zahlen aus einer Datei namens "magic".
Wenn eine Anwendung eine Funktion aufrufen möchte, kann sie Werte an diese Funktion übergeben, indem sie Standardtypen wie Ganzzahl verwendet, die in ausgedrückt werden können der Quellcode im hexadezimalen Format. Dies gilt insbesondere für Konstanten, bei denen es sich um Bezeichner handelt, die mit für Menschen lesbaren Namen wie AUTOSAVE_INTERVAL definiert sind, aber sie werden tatsächlichen Ganzzahlwerten (oder anderen Typen) zugeordnet. Anstelle eines Programmierers, der jedes Mal, wenn er die Funktion im Quellcode aufruft, einen Wert wie 60 eingibt, könnte er die AUTOSAVE_INTERVAL-Konstante für eine bessere Lesbarkeit verwenden. (Konstanten werden normalerweise leicht erkannt, da sie in Großbuchstaben geschrieben sind.)
Alle diese Beispiele können unter dem Begriff "Magische Zahlen" fallen, da sie möglicherweise eine bestimmte Hexadezimalzahl benötigen, damit eine Funktion oder ein Dateityp ordnungsgemäß funktioniert ... wenn der Wert nicht korrekt ist, wird es nicht funktionieren. Und wenn ein Programmierer ein wenig Spaß haben möchte, könnte er diese Werte mit hexadezimalen Zahlen definieren, die etwas in Englisch buchstabieren, auch bekannt als Hexspeak.
Jedes AppleScript endet mit FADEDEAD
Wenn Sie einen kurzen Blick auf den Linux-Quellcode werfen, sehen Sie, dass der Systemaufruf _reboot () unter Linux eine "magische" Variable benötigt, die der Hexadezimalzahl 0xfee1dead entspricht. Wenn etwas versucht hat, diese Funktion aufzurufen, ohne zuerst diesen magischen Wert zu übergeben, würde es nur einen Fehler zurückgeben.
Die GUID (global eindeutige Kennung) für eine BIOS-Boot-Partition im GPT-Partitionierungsschema ist 21686148-6449-6E6F-744E -656564454649, die die ASCII-Zeichenkette "Hah! IdontNeedEFI" bildet, eine Anspielung auf die Tatsache, dass GPT normalerweise in Computern verwendet wird, die das BIOS durch UEFI ersetzen, aber das muss nicht unbedingt sein.
Microsoft hat 0x0B00B135 versteckt In ihrem Hyper-V-Virtual-Machine-Quellcode, der an Linux gesendet wurde, änderten sie den Wert in 0xB16B00B5 und schließlich wechselten sie ihn in Dezimal, bevor er vollständig aus dem Quellcode entfernt wurde.
Weitere Spaßbeispiele sind:
Dies sind natürlich nicht die einzigen , aber nur eine kurze Liste von Beispielen, die Spaß machten. Kennen Sie noch mehr? Sagen Sie uns in den Kommentaren.
Sie können mehr Beispiele sehen, indem Sie einen Hex-Editor öffnen und dann eine beliebige Anzahl von Dateitypen öffnen. Es gibt viele Freeware-Hex-Editoren für Windows, OS X oder Linux - achten Sie jedoch darauf, dass Sie bei der Installation von Freeware vorsichtig sind, um nicht mit Crapware oder Spyware infiziert zu werden.
Als zusätzliches Beispiel Wiederherstellungsbilder für Android-Handys wie ClockworkMod Beginnen Sie mit "ANDROID!", wenn Sie im ASCII-Format gelesen werden.
Hinweis: Ändern Sie nichts, während Sie sich umsehen. Hex-Editoren können Dinge brechen!
So stellen Sie automatische Ruhezeiten in Android mit "Nicht stören" ein
Der Modus "Nicht stören" auf Android kann nützlich sein, wenn Sie in einem Meeting, in einem Film oder an einem anderen Ort sind Das Telefon muss für eine Weile keine Ablenkung sein, aber der wahre Wert findet sich in den automatischen Regeln von Do Not Disturb. Grundsätzlich kannst du Android sagen, wenn es dich nicht stört - wie zum Beispiel nachts, während du schläfst - sowie wer dich stören kann, wenn er muss.
So installieren und verwenden Sie ein Desktop-Dock im Mac OS X-Stil in Ubuntu 14.04
Haben Sie von Mac auf Linux gewechselt und den Launcher im Mac OS X-Stil verloren? Oder vielleicht möchten Sie nur ein anderes Dock als den Unity Launcher auf Ihrem Linux-Rechner. Cairo-Dock ist ein anpassbares Dock, das Sie zu Ihrem Linux-Desktop hinzufügen können. HINWEIS: Wenn wir in diesem Artikel etwas eingeben und den Text in Anführungszeichen setzen, geben Sie die Anführungszeichen NICHT ein, es sei denn, wir geben etwas anderes vor.