Reverse Engineering einiger wiederaufladbarer Einweg-Vaporizer, die ein kleines Farb-TFT-LCD enthalten (Raz TN9000/Kraze HD7K/usw.).
Weitere Updates finden Sie unter https://github.com/ginbot86/ColorLCDVape-RE
Einige auf dem Markt erhältliche Einweg-Vaporizer verfügen über Ausstattungen wie einen Farb-LCD-Bildschirm und USB-C-Aufladbarkeit, sind jedoch Einweggeräte; Dies macht solche Geräte ziemlich umweltschädlich. Auf der anderen Seite eröffnet dies Möglichkeiten für die Hardware-Rettung durch Bastler/Ingenieure, die Wiederverwendung des E-Zigarettens in seinem jetzigen Zustand durch Auffüllen mit frischem E-Zigarettensaft und Zurücksetzen des internen Messgeräts oder sogar für die individuelle Anpassung durch Bearbeiten der Onboard-Bilder.
Der spezifische Vape, der in diesem Projekt untersucht wird, hat verschiedene Namen, aber der speziell untersuchte hieß Kraze HD7K. Allerdings wurde dieser Vape auch unter dem Markennamen „RAZ“ gesehen, wie der RAZ TN9000.
Einweg-Vaporizer verwenden im Allgemeinen Li-Ionen-Batterien ohne jegliche Schutzschaltung. Kurzschlüsse könnten zu unkontrolliertem Stromverlust führen und Personen- und/oder Sachschäden verursachen. Sämtliche Arbeiten an diesen E-Zigaretten erfolgen auf eigenes Risiko.
Es wurde festgestellt, dass es mehrere Schaltkreisrevisionen dieser Verdampfer gibt, die möglicherweise Inkompatibilitäten aufweisen, die bei nicht übereinstimmenden Versionen zu Geräteschäden führen können. Überprüfen Sie die Verbindungen und die Firmware-Kompatibilität, bevor Sie Änderungen vornehmen.
Darüber hinaus kann E-Liquid/Vape-Saft hohe Konzentrationen an Nikotin enthalten, das über die Haut aufgenommen wird. Die Handhabung der Innenteile des Verdampfers sollte mit Handschuhen erfolgen, bis die Innenteile von Saft und/oder Rückständen befreit sind.
Zu den Arbeiten anderer Leute an diesen Vapes gehören unter anderem:
Die in den oben genannten Repositories geleistete Arbeit kann auf der in diesem Projekt geleisteten Arbeit basieren oder auch nicht; Es soll ähnliche Projekte miteinander verknüpfen, in der Hoffnung, dass mehr Gemeinschaftsanstrengungen für diese E-Zigaretten unternommen werden können.
Der Vape verwendet die folgende Hardware:
Der Vape verwendet ein 0,96-Zoll-IPS-LCD mit einer Auflösung von 80 x 160 und einem 13-poligen Flat-Flex-Kabel (FPC) mit einem Abstand von 0,7 mm, das mit dem Vape-Mainboard verlötet ist. Die Verbindung erfolgt über 4-Draht-SPI (Daten, Takt, Daten/Befehl, Chipauswahl) und scheint den ST7735S-Controller zu verwenden. Es verwendet sogar die gleiche Pinbelegung für handelsübliche Displays, wie das Smart Prototyping #102106.
Stift | Name | Funktion |
---|---|---|
1 | TP0/NC | Unbenutzt |
2 | TP1/NC | Unbenutzt |
3 | SDIN | SPI-Daten zum LCD |
4 | SCLK | SPI-Uhr |
5 | RS | Logik niedrig = Befehl, hoch = Daten |
6 | /RST | Zurücksetzen (aktiv-low) |
7 | /CS | Chipauswahl (aktiv-niedrig) |
8 | GND | Stromversorgung/Signalmasse |
9 | NC | Nicht verbunden |
10 | VDD | Stromversorgung (3,3 V) |
11 | LEDK | Kathode mit LED-Hintergrundbeleuchtung |
12 | LEDA | Anode mit LED-Hintergrundbeleuchtung |
13 | GND | Stromversorgung/Signalmasse |
Es gibt zwei Formen von Flash-Speicher auf dem Vape: interner Flash auf dem Mikrocontroller und 1 Megabyte (8 Megabit) externer SPI-NOR-Flash. Ersteres enthält die Firmware, während letzteres alle Bilder enthält, die auf dem LCD angezeigt werden, sowie die Gesamtzeit, die die E-Zigaretten-Heizspirale verwendet wurde; Dieser Zähler wird verwendet, um die Anzahl der „Bars“ abzuleiten, die auf dem E-Zigaretten-Messgerät angezeigt werden. Die Analyse des LCD-Datenbusses (siehe .dsl-Logikerfassung mit DreamSourceLab DSView) legt nahe, dass der Mikrocontroller DMA (Direct Memory Access) verwendet, um Bilddaten vom externen Flash in das LCD zu streamen, da die Datenübertragung als zusammenhängende 4096-Byte-Blöcke erfolgt , entsprechend einer einzelnen NOR-Flash-Seite. Die Analyse des Speichers des Mikrocontrollers zeigt, dass der DMA-Speicherpuffer in den RAM-Adressen 0x2000022C-0x2000062B liegt.
Alle Bilder werden auf dem externen Flash als rohe RGB565-16-Bit-Bitmaps gespeichert (dh jedes Pixel belegt 2 Byte Daten). Konvertierungstools wie ImageConverter565 aus der UTFT-Bibliothek von Rinky-Dink Electronics können verwendet werden, um Bildformate wie JPEG/PNG in eine rohe Binärdatei zu konvertieren, die mit dem entsprechenden Offset in den externen Flash gepatcht werden kann. Mit den Rohbildern werden keine Metadaten gespeichert, daher müssen die Bildabmessungen manuell eingegeben werden, wie in der Tabelle unten gezeigt.
Index (#) | Versatz (Hex) | Länge (Hex) | Rahmen H (px) | Rahmen V (px) | Kategorie | Unbenutzt? | Seq (#) | Notizen |
---|---|---|---|---|---|---|---|---|
0 | 0 | 6400 | 80 | 160 | Hintergrund | 0 | ||
1 | 6400 | 2880 | 72 | 72 | Batteriesymbol | 0 | ||
2 | 8C80 | 2880 | 72 | 72 | Batteriesymbol | 1 | ||
3 | B500 | 2880 | 72 | 72 | Batteriesymbol | 2 | ||
4 | DD80 | 2880 | 72 | 72 | Batteriesymbol | 3 | ||
5 | 10600 | 2880 | 72 | 72 | Batteriesymbol | 4 | ||
6 | 12E80 | 2880 | 72 | 72 | Batteriesymbol | 5 | ||
7 | 15700 | 2880 | 72 | 72 | Batteriesymbol | 6 | ||
8 | 17F80 | 2880 | 72 | 72 | Batteriesymbol | 7 | ||
9 | 1A800 | 2880 | 72 | 72 | Batteriesymbol | 8 | ||
10 | 1D080 | 2880 | 72 | 72 | Batteriesymbol | 9 | ||
11 | 1F900 | 2880 | 72 | 72 | Batteriesymbol | 10 | ||
12 | 22180 | 2880 | 72 | 72 | Saft-Symbol | 0 | ||
13 | 24A00 | 2880 | 72 | 72 | Saft-Symbol | 1 | ||
14 | 27280 | 2880 | 72 | 72 | Saft-Symbol | 2 | ||
15 | 29B00 | 2880 | 72 | 72 | Saft-Symbol | 3 | ||
16 | 2C380 | 2880 | 72 | 72 | Saft-Symbol | 4 | ||
17 | 2EC00 | 2880 | 72 | 72 | Saft-Symbol | 5 | ||
18 | 31480 | 2880 | 72 | 72 | Saft-Symbol | 6 | ||
19 | 33D00 | 6400 | 80 | 160 | Vaping-Animation | 0 | ||
20 | 3A100 | 6400 | 80 | 160 | Vaping-Animation | 1 | ||
21 | 40500 | 6400 | 80 | 160 | Vaping-Animation | 2 | ||
22 | 46900 | 6400 | 80 | 160 | Vaping-Animation | 3 | ||
23 | 4CD00 | 6400 | 80 | 160 | Vaping-Animation | 4 | ||
24 | 53100 | 6400 | 80 | 160 | Vaping-Animation | 5 | ||
25 | 59500 | 6400 | 80 | 160 | Vaping-Animation | 6 | ||
26 | 5F900 | 6400 | 80 | 160 | Vaping-Animation | 7 | ||
27 | 65D00 | 6400 | 80 | 160 | Vaping-Animation | 8 | ||
28 | 6C100 | 6400 | 80 | 160 | Vaping-Animation | 9 | ||
29 | 72500 | 6400 | 80 | 160 | Vaping-Animation | 10 | ||
30 | 78900 | 6400 | 80 | 160 | Vaping-Animation | 11 | ||
31 | 7ED00 | 6400 | 80 | 160 | Vaping-Animation | 12 | ||
32 | 85100 | 6400 | 80 | 160 | Vaping-Animation | 13 | ||
33 | 8B500 | 6400 | 80 | 160 | Vaping-Animation | 14 | ||
34 | 91900 | 6400 | 80 | 160 | Vaping-Animation | 15 | ||
35 | 97D00 | 6400 | 80 | 160 | Plugin-Hintergrund 1 | Unbenutzt | 16 | 1 |
36 | 9E100 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 0 | 1 |
37 | 9F8CA | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 1 | 1 |
38 | A1094 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 2 | 1 |
39 | A285E | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 3 | 1 |
40 | A4028 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 4 | 1 |
41 | A57F2 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 5 | 1 |
42 | A6FBC | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 6 | 1 |
43 | A8786 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 7 | 1 |
44 | A9F50 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 8 | 1 |
45 | AB71A | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 9 | 1 |
46 | ACEE4 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 10 | 1 |
47 | AE6AE | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 11 | 1 |
48 | AFE78 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 12 | 1 |
49 | B1642 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 13 | 1 |
50 | B2E0C | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 14 | 1 |
51 | B45D6 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 15 | 1 |
52 | B5DA0 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 16 | 1 |
53 | B756A | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 17 | 1 |
54 | B8D34 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 18 | 1 |
55 | BA4FE | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 19 | 1 |
56 | BBCC8 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 20 | 1 |
57 | BD492 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 21 | 1 |
58 | BEC5C | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 22 | 1 |
59 | C0426 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 23 | 1 |
60 | C1BF0 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 24 | 1 |
61 | C33BA | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 25 | 1 |
62 | C4B84 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 26 | 1 |
63 | C634E | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 27 | 1 |
64 | C7B18 | 17CA | 35 | 87 | Logo-Wipe | Unbenutzt | 28 | 1 |
65 | C92E2 | 6400 | 80 | 160 | Plugin-Hintergrund 2 | Unbenutzt | 0 | 1 |
66 | CF6E2 | F80 | 31 | 64 | Batterieleisten-Animation | Unbenutzt | 0 | 1 |
67 | D0662 | F80 | 31 | 64 | Batterieleisten-Animation | Unbenutzt | 1 | 1 |
68 | D15E2 | F80 | 31 | 64 | Batterieleisten-Animation | Unbenutzt | 2 | 1 |
69 | D2562 | F80 | 31 | 64 | Batterieleisten-Animation | Unbenutzt | 3 | 1 |
70 | D34E2 | F80 | 31 | 64 | Batterieleisten-Animation | Unbenutzt | 4 | 1 |
71 | D4462 | F80 | 31 | 64 | Batterieleisten-Animation | Unbenutzt | 5 | 1 |
72 | D53E2 | 6400 | 80 | 160 | Plugin-Hintergrund 3 | 0 | ||
73 | DB7E2 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 0 | ||
74 | DC67C | E9A | 21 | 89 | Ladegerät-Logo abwischen | 1 | ||
75 | DD516 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 2 | ||
76 | DE3B0 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 3 | ||
77 | DF24A | E9A | 21 | 89 | Ladegerät-Logo abwischen | 4 | ||
78 | E00E4 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 5 | ||
79 | E0F7E | E9A | 21 | 89 | Ladegerät-Logo abwischen | 6 | ||
80 | E1E18 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 7 | ||
81 | E2CB2 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 8 | ||
82 | E3B4C | E9A | 21 | 89 | Ladegerät-Logo abwischen | 9 | ||
83 | E49E6 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 10 | ||
84 | E5880 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 11 | ||
85 | E671A | E9A | 21 | 89 | Ladegerät-Logo abwischen | 12 | ||
86 | E75B4 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 13 | ||
87 | E844E | E9A | 21 | 89 | Ladegerät-Logo abwischen | 14 | ||
88 | E92E8 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 15 | ||
89 | EA182 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 16 | ||
90 | EB01C | E9A | 21 | 89 | Ladegerät-Logo abwischen | 17 | ||
91 | EBEB6 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 18 | ||
92 | ECD50 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 19 | ||
93 | EDBEA | E9A | 21 | 89 | Ladegerät-Logo abwischen | 20 | ||
94 | EWR84 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 21 | ||
95 | EF91E | E9A | 21 | 89 | Ladegerät-Logo abwischen | 22 | ||
96 | F07B8 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 23 | ||
97 | F1652 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 24 | ||
98 | F24EC | E9A | 21 | 89 | Ladegerät-Logo abwischen | 25 | ||
99 | F3386 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 26 | ||
100 | F4220 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 27 | ||
101 | F50BA | E9A | 21 | 89 | Ladegerät-Logo abwischen | 28 | ||
102 | F5F54 | E9A | 21 | 89 | Ladegerät-Logo abwischen | 29 | ||
103 | F6DEE | E9A | 21 | 89 | Ladegerät-Logo abwischen | 30 | ||
104 | F8000 | 4 | N / A | N / A | Gesamtdampfzeit x0,01 s (LSB->MSB) | N / A | 2 | |
105 | F8004 | 1 | N / A | N / A | Vape-In-Use-Flagge (0xBB) | N / A | 3 |
Zwei Python-Skripte wurden hinzugefügt, um das Aufteilen und erneute Zusammensetzen des Flash-Dumps in bzw. aus den einzelnen im SPI-Flash gespeicherten Bildern zu unterstützen: split-flashdump.py
assemble-flashdump.py
. Die Tools führen derzeit keine Formatkonvertierung durch (es war schon ein langer Prozess, ChatGPT dazu zu bringen, mir bis hierher zu helfen), aber sie tragen wesentlich dazu bei, benutzerdefinierte „Themen“-Pakete zu erstellen. Nicht verwendete Ressourcen können aus dem neu gepackten Flash-Dump entfernt werden, indem sie aus dem Verzeichnis mit den neu zusammenzusetzenden Dateien ferngehalten werden. Diese ungenutzten Bereiche bleiben als 0xFF/gelöschte Bytes bestehen.
Der Repacker assemble-flashdump.py
“ erwartet, dass die Eingabedateinamen ein bestimmtes Format haben, da er den hexadezimal codierten Offset verwendet, um zu bestimmen, wo jedes Teil in die 1-MB-Flash-Dump-Datei eingefügt werden soll (siehe split_map.csv oder das beigefügte Beispiel). Thema, unten in Benutzerdefinierte Themenpakete beschrieben):
{index}_{offset}_{width}x{height}_{category}_{sequence}.bin
19_33d00_80x160_vapeanim-0.bin
Um PNG- oder JPEG-Bilder zu konvertieren, verwenden Sie das ImgConv.exe
Tool der zuvor erwähnten UTFT-Bibliothek:
ImgConv.exe *.png /r
ImgConv.exe *.jpg /r
ren *.raw *.bin
Hinweis: Stellen Sie sicher, dass die Bilder, die in das .bin-Format konvertiert werden sollen, die richtigen Abmessungen haben, BEVOR Sie sie konvertieren!
Als Proof of Concept ist ein fertiges Theme-Paket im Windows 95-Stil enthalten; Es implementiert alle Ressourcen für die Batterie- und Saftanzeigen, die Ladeanimation (nur Plugin-Hintergrund 3 und das Löschen des Ladegerät-Logos, da dies das einzige verwendete Animationsset mit der getesteten Firmware ist) und die E-Zigaretten-Animation (eine im Seitenverhältnis korrekte Erfassung des 3D-Bildes). Bildschirmschoner „Pfeifen“. Alles, was benötigt wird, ist der Zugriff auf den SPI-Flash und die Möglichkeit, ihn neu zu programmieren. Raum für eine Erweiterung dieses Konzepts könnte ein günstiger SWD-USB-Dongle sein, der über den USB-C-Anschluss angeschlossen wird, und eine Software, die ein kleines Neuprogrammierungstool in den RAM des Mikrocontrollers lädt, wodurch möglicherweise das Entlöten des Flash-Chips überflüssig wird.
Eine leere/bearbeitbare Vorlage ist ebenfalls enthalten. Für Animationen sind alle Frames mit Framenummern versehen.
All diese Anpassungen sind möglich, ohne die Firmware des Mikrocontrollers zu berühren!
Wie im Abschnitt „Layout des externen Flash-Speichers“ , Anmerkungen 2 und 3 oben, beschrieben, wird durch das Füllen der externen Flash-Speicherplätze 0xF8000–0xF8004 mit 0xFF der Saftzähler auf voll zurückgesetzt, sodass der Vape wiederverwendet werden kann, sobald der Behälter wieder aufgefüllt ist. Der Mikrocontroller selbst muss dann zurückgesetzt werden, indem der nRST-Pin auf Masse gezogen oder durch Abklemmen und erneutes Anschließen der Batterie aus- und wieder eingeschaltet wird. Dies ist wahrscheinlich bereits passiert, wenn der externe Flash zum Neuprogrammieren/Patchen entlötet und neu gelötet wird.
Der Mikrocontroller verwendet die Debug-/Programmierschnittstelle Serial Wire Debug (SWD) nach Industriestandard zum Lesen/Schreiben seiner Firmware und/oder seines internen SRAM-Speichers. Die SWD-Schnittstelle wird über den USB-C-Ladeanschluss des Vapes zugänglich gemacht. Die SWDIO/SWCLK-Leitungen werden mit den CC-Pins hinter den normalen 5,1k-Rd-Pulldown-Widerständen verbunden, da der Anschluss normalerweise nur mit Strom versorgt wird.
Die Firmware auf dem Mikrocontroller ist nicht auslesegeschützt, daher ist eine weitere Erforschung der Firmware mittels Dekompilierung ein möglicher Weg. Möglicherweise ist es möglich, diese Debug-Schnittstelle zur Interaktion mit dem externen Flash zu verwenden, dies wurde jedoch noch nicht untersucht.
Einige der getesteten Vape-Mainboards hatten RX/TX-Testpads auf der Rückseite des Boards. Es ist noch nicht erforscht, wie dieser Port mit der Firmware interagiert und/oder ob er zur Aktualisierung der externen Flash-Inhalte genutzt werden kann.
Der Vape besteht aus zwei Leiterplatten, die über einen 9-poligen, rechtwinkligen Stiftstecker mit 0,15 mm Rastermaß miteinander verbunden sind:
Pin 1 wird durch ein quadratisches Pad auf der Leistungsplatine und ein entsprechendes Pad auf der Unterseite der Logikplatine (gegenüberliegende Seite von Mikrocontroller, SPI-Flash und LCD) gekennzeichnet. ACHTUNG: Die Markierungen von Pin 1 können zwischen den beiden Platinen entgegengesetzt sein!
Pin der Stromversorgungsplatine | Logikplatinen-Pin | Name | Funktion |
---|---|---|---|
1 | 9 | VBAT | Batterieplus (+) auf der Leistungsplatine |
2 | 8 | VBUS | +5 V vom USB-C-Anschluss auf der Leistungsplatine mit SMD-Sicherung, Markierung „B“. |
3 | 7 | GND | Strom-/Signalmasse |
4 | 6 | COIL_DRV | Heizungssteuersignal von der MCU auf der Logikplatine (aktiv-hoch) |
5 | 5 | PUFF_DET | Puff-Erkennungssignal vom Vape-Controller der Leistungsplatine (Hinweis 1) |
6 | 4 | CC2/SWCLK | USB-C Rd Pulldown 2 / SWD-Debug-Schnittstellentakt zur MCU auf der Hauptplatine |
7 | 3 | CC1/SWDIO | USB-C Rd Pulldown 1 / SWD-Debug-Schnittstellendaten zur MCU auf der Hauptplatine |
8 | 2 | VDD | 3-V-Versorgung vom LDO-Regler auf der Logikplatine zum Vape-Controller |
9 | 1 | COIL_DET? | Erkennung der Heizspule an die MCU auf der Logikplatine (siehe Hinweis 2) |
Die Mikrocontroller der N32G01-Serie werden im Datenblatt mit integrierter Flash-Verschlüsselung und sicherer Boot-Unterstützung beworben, aber diese Funktion wird (zum Glück) bei den bisher getesteten Vapes (nämlich dem Kraze HD7K) nicht verwendet.
Es wurde nicht viel Arbeit in das Reverse Engineering der Firmware selbst gesteckt, aber mithilfe eines Segger J-Links und der entsprechenden J-Mem-Software, auf die über den SWD-Debug-/Programmierport zugegriffen wurde, konnte ein Flash-Dump erstellt werden. Wie bei vielen Arm-basierten MCUs befindet sich der Flash bei 0x08000000, wird aber auch bei 0x00000000 gespiegelt. Ein Dump der Firmware wurde von den Adressen 0x08000000-0x0800FFFF (64 KB) erstellt, und ein flüchtiger Blick auf den Firmware-Dump zeigt, dass nur etwa 50 % des Flash-Speicherplatzes tatsächlich genutzt wurden (Adressen von kurz vor 0x8000 bis 0xFFFF waren alle 0xFF-Bytes, zeigt an, dass der Speicher gelöscht/unprogrammiert ist). Im Firmware-Dump scheinen keine für Menschen lesbaren Zeichenfolgen vorhanden zu sein.
Eine „geheime“ Versionsnummer wird auf dem Bildschirm angezeigt, wenn die USB-C-Stromversorgung schnell ein- und ausgeschaltet wird (dies scheint jedoch inkonsistent zu geschehen). Beim Versuch mit einem Kraze HD7K wird der Bildschirm schwarz und der Text „GV-K23 0904V1“ wird einige Sekunden lang in zwei Textzeilen rot angezeigt; Es scheint mit einer Monospace-Version der 12-Punkt-Schriftart „System“ von Windows gerendert zu werden. Dies deutet auf einen internen Produktnamen von „GV-K“ und die Firmware-Revision 1 vom 4. September 2023 hin. Zufälligerweise befindet sich gegen Ende des verwendeten Flash-Adressraums ein Byteblock, der mit 0x00 und 0xE8E4 gefüllt ist sieht verdächtig nach schwarzen und rot-orangefarbenen Pixeldaten aus. Eine weitere Analyse der Rohdaten aus dieser Region bestätigt, dass die Versionsnummer als Roh-Bitmap gespeichert und nicht aus einer Textzeichenfolge gerendert wird (siehe unten).
Im Firmware-Flash-Dump an den Adressen 0x7066-0x7E75 scheint sich eine Bitmap-Version der oben genannten Versionsnummer zu befinden. Es scheint nur 60 x 30 Pixel groß zu sein, aber es gibt 0 x 00 Füllbytes um diese Bitmap herum, die nicht an 120-Byte-Grenzen (60 Pixel) ausgerichtet sind, was es schwierig macht, die „wahre“ Bildgröße zu bestimmen, ohne die Firmware zu dekompilieren und die Funktion zu finden Dadurch wird der Versionsbildschirm ausgelöst.
Alle Marken sind Eigentum ihrer jeweiligen Inhaber.