Unser Fokus

  • Alles was sie herstellen,
    können wir brechen!

  • Sie sind immer
    Sicher mit uns

Die Hauptziele unseres Dienstes sind: 1. den Auftrag erledigen,
2. Ihre Zahlung ist bei uns sicher. Win-Win für uns


Kostenlose Beratung


Warum ist Ihre Zahlung bei uns sicher?   Mehr...
Reverse-Historie

Weltweit Erste

Haben 1998 den ersten 8051-Mikrocontroller rückentwickelt – hat das jemand früher geschafft?

8051 hacken

Unsere Domäne

break-ic.com wurde im Jahr 2000 registriert – Sie können das selbst überprüfen.

MCU entsperren

Unsere Erfahrung

Tausende von Chips und PCBs bearbeitet – alle potenziellen Probleme vorhergesehen.

Hack-Erfahrung

Unsere Ethik

Ehrlichkeit sichert langfristige Geschäfte – wir hätten nicht 28 Jahre lang betrügen können.

Intel Mcu Code Auslesen


Die Intel Corporation ist ein amerikanischer multinationaler Halbleiter-Chip-Hersteller mit Hauptsitz in Santa Clara, Kalifornien. Intel ist der weltweit größte und wertvollste Halbleiter-Chip-Hersteller gemessen am Umsatz. Das Unternehmen ist der Erfinder der x86-Serie von Mikroprozessoren, die in den meisten Personal Computern zu finden sind. Die Intel Corporation, gegründet am 18. Juli 1968, ist ein Kofferwort aus Integrated Electronics (die Tatsache, dass „intel“ auch der Begriff für Geheimdienstinformationen ist, war ebenfalls recht passend). Intel stellt auch Motherboard-Chipsätze, Netzwerkschnittstellen-Controller und integrierte Schaltungen, Flash-Speicher, Grafikchips, eingebettete Prozessoren und andere Geräte im Zusammenhang mit Kommunikation und Computertechnik her. Gegründet von den Halbleiterpionieren Robert Noyce und Gordon Moore und eng verbunden mit der Führungsvision von Andrew Grove, verbindet Intel fortschrittliches Chipdesign mit hochmoderner Fertigungskapazität. Obwohl Intel ursprünglich hauptsächlich Ingenieuren und Technologen bekannt war, machte die Werbekampagne „Intel Inside“ der 1990er Jahre das Unternehmen und seinen Pentium-Prozessor zu einem Begriff in jedem Haushalt.

  • Mikatech Intel MCU Reverse-Engineering-Liste:
  • 2.png" width="266" height="228" border="0" class="imageFloatRight">87xx-Serie MCU-Code-Extraktion: 8741 8741AH 8742 8742AH 8744 8744H 8748 8748H 8749 8749H 8751 8751BH 8751H 8751H-8 87551SB 8752BH 8796BH 8796JF 8797BH 8797JF 8798 ...

    87Cxx-Serie MCU-Code-Extraktion: 87C151SA 87C151SB 87C194 87C196CA 87C196JQ 87C196JR 87C196JT 87C196JV 87C196KB 87C196KC 87C196KD 87C196KQ 87C196KR 87C196KS 87C196KT 87C196LA 87C196MC 87C196MH 87C198 87C251SA 87C251SB 87C251SP 87C251SQ 87C42 87C51 87C51FA 87C51FB 87C51FC 87C51GB 87C51RA 87C51RB 87C51RC 87C52 87C54 87C58 D87C51 D87C151SA D87C151SB D87C194 D87C198 D87C251SA D87C251SP D87C251SQ D87C196CA D87C42 D87C51FA D87C51FB D87C51FC D87C251SB D87C51RA D87C196JQ D87C196JR D87C196JT D87C196JV D87C196KR D87C196KS D87C196KT D87C196LA D87C51RB D87C51RC D87C52 D87C54 D87C51GB D87C58 D87L42 D87L51FA D87L51FB D8751BH D87L51FC D87L52 D87L54 8749 D87L58 D8741 D8741AH D8742 DD8749H D8742AH D8744 D8744H D8748 D8751 8D748H D8751H D8751H-8 D8752BH D8798 D8796BH D8796JF D8797BH D8797JF D87C196MC D87C196MH D87C251SA...

    87Lxx-Serie Mikroprozessor-Code-Wiederherstellung: 87L42 87L51FA 87L51FB 87L51FC 87L52 87L54 87L58 ...

    D87Cxx-Serie MCU-Code-Extraktion: D87C51 D87C52 D87C54 D87C58 D87C51FA D87C51FB D87C51FC D87C196KC D87C196MC D87C196MD D87C196MH D89C196MD...


 

 

Intel MCS-51

Der Intel MCS-51 (allgemein als 8051 bezeichnet) ist eine Mikrocontroller-Serie (µC) mit Harvard-Architektur und CISC-Befehlssatz, die 1980 von Intel für den Einsatz in eingebetteten Systemen entwickelt wurde. Intels ursprüngliche Versionen waren in den 1980er und frühen 1990er Jahren beliebt, und verbesserte binärkompatible Derivate sind auch heute noch weit verbreitet.

Intels ursprüngliche MCS-51-Familie wurde in NMOS-Technologie hergestellt, aber spätere Versionen, die durch den Buchstaben C im Namen gekennzeichnet sind (z. B. 80C51), verwendeten CMOS-Technologie und verbrauchten weniger Strom als ihre NMOS-Vorgänger. Dadurch waren sie besser für batteriebetriebene Geräte geeignet.

Die Familie wurde 1996 mit dem erweiterten 8-Bit-MCS-151 und der 8/16/32-Bit-MCS-251-Familie binärkompatibler Mikrocontroller fortgesetzt. Obwohl Intel die MCS-51-, MCS-151- und MCS-251-Familie nicht mehr herstellt, sind verbesserte binärkompatible Derivate zahlreicher Anbieter auch heute noch beliebt. Einige Derivate integrieren einen digitalen Signalprozessor (DSP). Zusätzlich zu diesen physischen Geräten bieten mehrere Unternehmen MCS-51-Derivate als IP-Cores für den Einsatz in FPGAs oder ASIC-Designs an.

i8051-Mikroarchitektur.

Die 8051-Architektur bietet viele Funktionen (CPU, RAM, ROM, E/A, Interrupt-Logik, Timer usw.) in einem einzigen Gehäuse
8-Bit-ALU und Akkumulator, 8-Bit-Register (ein 16-Bit-Register mit speziellen Bewegungsbefehlen), 8-Bit-Datenbus und 2x16-Bit-Adressbus/Programmzähler/Datenzeiger und damit verbundene 8/11/16-Bit-Operationen; daher handelt es sich hauptsächlich um einen 8-Bit-Mikrocontroller
Boolescher Prozessor mit 17 Befehlen, 1-Bit-Akkumulator, Dump-Wiederherstellung 32 Register (4 bitadressierbare 8-Bit) und bis zu 144 spezielle 1-Bit-adressierbare RAM-Variablen (18 bitadressierbare 8-Bit)

Multiplizieren-, Dividieren- und Vergleichsbefehle
4 schnell umschaltbare Registerbänke mit jeweils 8 Registern (speicherabgebildet)
Schneller Interrupt mit optionalem Registerbankwechsel
Interrupts und Threads mit wählbarer Priorität

Dualer 16-Bit-Adressbus – Er kann auf 2 x 216 Speicherstellen zugreifen – 64 kB (65536 Stellen) jeweils RAM und ROM
128 Bytes On-Chip-RAM (IRAM)
4 KiB On-Chip-ROM mit einem 16-Bit-Adressraum (64 KiB) (PMEM). Nicht bei 803X-Varianten enthalten
Vier 8-Bit-Bidirektionale Ein-/Ausgabeanschlüsse
UART (serielle Schnittstelle)
Zwei 16-Bit-Zähler/Timer
Energiesparmodus (bei einigen Derivaten)

Ein besonders nützliches Merkmal des 8051-Kerns ist die Einbindung einer booleschen Verarbeitungsengine, die bitweise boolesche Logikoperationen direkt und effizient auf ausgewählten internen Registern und ausgewählten RAM-Stellen durchführen kann. Diese vorteilhafte Eigenschaft trug dazu bei, die Beliebtheit des 8051 in industriellen Steuerungsanwendungen zu festigen, da sie die Codegröße um bis zu 30 % reduzierte. Ein weiteres geschätztes Merkmal ist die Einbindung von vier bankauswählbaren Arbeitsregistern, die die Zeit, die für die Bearbeitung einer Interrupt-Serviceroutine erforderlich ist, erheblich reduzieren. Mit einem einzigen Befehl kann der 8051 die Registerbänke wechseln, anstatt die kritischen Register auf den Stapel oder in bestimmte RAM-Stellen übertragen zu müssen. Diese Register ermöglichten es dem 8051 auch, schnell einen Kontextwechsel durchzuführen.

Die MCS-51-UARTs machen es einfach, den Chip als serielle Kommunikationsschnittstelle zu verwenden. Externe Pins können so konfiguriert werden, dass sie auf verschiedene Weise mit internen Schieberegistern verbunden werden, und die internen Timer können ebenfalls verwendet werden, was serielle Kommunikation in einer Reihe von Modi ermöglicht, sowohl synchron als auch asynchron. Einige Modi ermöglichen die Kommunikation ohne externe Dekapsulation und Code-Wiederherstellung, Kopieren der Inhalte von Crypto-Speicher, Auslesen von EEprom und ROM, Flash-Speicher auslesen. Ein mit einer RS-485-Mehrpunkt-Kommunikationsumgebung kompatibler Modus ist erreichbar, aber die wahre Stärke des 8051 liegt in der Anpassung an bestehende Ad-hoc-Protokolle (z. B. bei der Steuerung seriell gesteuerter Geräte).

Sobald ein UART und ggf. ein Timer konfiguriert sind, muss der Programmierer nur eine einfache Interrupt-Routine schreiben, um das Sendeschieberegister nachzufüllen, sobald das letzte Bit vom UART ausgegeben wurde, und/oder das volle Empfangsschieberegister zu leeren (die Daten anderswohin kopieren). Das Hauptprogramm führt dann serielle Lese- und Schreibvorgänge einfach durch Lesen und Schreiben von 8-Bit-Daten auf Stapeln durch.

MCS-51-basierte Mikrocontroller enthalten typischerweise ein oder zwei UARTs, zwei oder drei Timer, 128 oder 256 Bytes internes Daten-RAM (davon 16 Bytes bitadressierbar), bis zu 128 Bytes E/A, 512 Bytes bis 64 kB internen Disassemblierungsdatei-Speicher, Wiederherstellung von geschütztem Code, Schutz aufheben, Schutzsicherungen entfernen, Auslesen eines EEPROM-Prozessors, Dump von Flash- und EEPROM-Programmspeicher und manchmal eine Menge erweiterten Daten-RAM (ERAM), der sich im externen Datenbereich befindet. Der ursprüngliche 8051-Kern arbeitete mit 12 Taktzyklen pro Maschinenzyklus, wobei die meisten Befehle in ein oder zwei Maschinenzyklen ausgeführt wurden. Bei einer Taktfrequenz von 12 MHz konnte der 8051 somit 1 Million Ein-Zyklus-Befehle pro Sekunde oder 500.000 Zwei-Zyklus-Befehle pro Sekunde ausführen. Verbesserte 8051-Kerne werden heute häufig verwendet, die mit sechs, vier, zwei oder sogar einem Takt pro Maschinenzyklus arbeiten und Taktfrequenzen von bis zu 100 MHz haben und somit eine noch größere Anzahl von Befehlen pro Sekunde ausführen können. Alle SILabs-, einige Dallas- und einige Atmel-Geräte haben Einzelzyklus-Kerne.

8051-Varianten enthalten integrierte Reset-Timer mit Brown-Out-Erkennung, On-Chip-Oszillatoren, selbstprogrammierbaren Flash-ROM-Programmspeicher, integrierten externen RAM, zusätzlichen internen Programmspeicher, Bootloader-Code im ROM, EEPROM-nichtflüchtigen Datenspeicher, I²C-, SPI- und USB-Host-Schnittstellen, CAN- oder LIN-Bus, PWM-Generatoren, Analogkomparatoren, A/D- und D/A-Wandler, RTCs, zusätzliche Zähler und Timer, In-Circuit-Debugging-Funktionen, mehr Interrupt-Quellen und zusätzliche Energiesparmodi.

In vielen Ingenieursschulen wird der 8051-Mikrocontroller in einführenden Mikrocontroller-Kursen verwendet.

Speicherarchitektur

Der MCS-51 verfügt über vier verschiedene Speichertypen – internen RAM, spezielle Funktionsregister, Programmspeicher und externen Datenspeicher.
Interner RAM (IRAM) befindet sich von Adresse 0 bis Adresse 0xFF. IRAM von 0x00 bis 0x7F kann direkt zugegriffen werden. Auf IRAM von 0x80 bis 0xFF muss indirekt zugegriffen werden, indem die Syntax @R0 oder @R1 verwendet wird, wobei die anzusprechende Adresse in R0 oder R1 geladen wird. Die 128 Bits an den IRAM-Stellen 0x20–0x2F sind bitadressierbar.

Spezielle Funktionsregister (SFR) befinden sich im gleichen Adressraum wie IRAM, bei den Adressen 0x80 bis 0xFF, und werden direkt mit denselben Befehlen wie für die untere Hälfte des IRAM angesprochen. Auf sie kann nicht indirekt über @R0 oder @R1 zugegriffen werden. 16 der SFRs sind ebenfalls bitadressierbar.

Programmspeicher (PMEM, weniger gebräuchlich als IRAM und XRAM) besteht aus bis zu 64 KiB Nur-Lese-Speicher, beginnend bei Adresse 0 in einem separaten Adressraum. Er kann je nach spezifischem Chipmodell on- oder off-chip sein. Der Programmspeicher ist schreibgeschützt, obwohl einige Varianten des 8051 On-Chip-Flash-Speicher verwenden und eine Methode zur Neuprogrammierung des Speichers im System oder in der Anwendung bieten. Zusätzlich zum Code ist es möglich, schreibgeschützte Daten im Programmspeicher zu speichern, auf die mit dem Befehl MOVC A, @DPTR zugegriffen wird. Daten werden von der im 16-Bit-Sonderfunktionsregister DPTR angegebenen Adresse abgerufen.

Externer Datenspeicher (XRAM) ist ein dritter Adressraum, der ebenfalls bei Adresse 0 beginnt. Er kann ebenfalls on- oder off-chip sein; was ihn zu „intern“ macht, ist, dass er mit dem MOVX-Befehl (Move eXternal) angesprochen werden muss. Viele Varianten des 8051 enthalten die standardmäßigen 256 Bytes IRAM plus ein paar kB XRAM auf dem Chip.

Der 8051 ist als strenge Harvard-Architektur ausgelegt. Der 8051 kann nur Code ausführen, der vom Programmspeicher abgerufen wird. Der 8051 hat keinen Befehl zum Schreiben in den Programmspeicher. Die meisten 8051-Systeme respektieren diese Unterscheidung und können daher keine neuen Programme herunterladen und direkt ausführen. Die strenge Harvard-Architektur hat den Vorteil, dass sie solche Systeme immun gegen die meisten Formen von Malware macht. Einige 8051-Systeme haben (oder können so modifiziert werden, dass sie) einen „dual-mapped“ RAM haben, wodurch sie sich etwas mehr wie eine Princeton-Architektur verhalten. Diese (teilweise) Princeton-Architektur hat den Vorteil, dass es möglich ist, dass ein auf dem 8051 laufender Forth-Bootloader neuen nativen Code in den RAM schreibt und dann ausführt, was zu schnelleren inkrementellen und interaktiven Programmierzyklen führt als bei strengen Harvard-Systemen.

Register

Das einzige Register auf einem 8051, das nicht speicherabgebildet ist, ist der 16-Bit-Programmzähler PC. Dieser gibt die Adresse des nächsten auszuführenden Befehls an. Relative Sprungbefehle liefern einen 8-Bit-vorzeichenbehafteten Offset, der zum PC addiert wird.
Die folgenden Register sind in den Sonderfunktionsregisterbereich speicherabgebildet:
(0x81) Stapelzeiger SP. Dies ist ein 8-Bit-Register, das von Unterprogrammaufruf- und Rücksprungbefehlen verwendet wird. Der Stapel wächst nach oben; der SP wird vor dem Pushen inkrementiert und nach dem Poppen eines Werts dekrementiert.
(0x82–83) Datenzeiger DP. Dies ist ein 16-Bit-Register, das für den Zugriff auf PMEM und XRAM verwendet wird.
(0xD0) Programmstatuswort PSW. Dies enthält wichtige Statusflags:
PSW.0: P Parität. Gibt die Parität (modulo-2-Summe der Bits) des letzten ALU-Ergebnisses an.
PSW.1: UD Benutzerdefiniert. Für allgemeine Softwarezwecke, nicht anderweitig von der Hardware verwendet.
PSW.2: OV Überlaufflag. Wird gesetzt, wenn die Addition einen vorzeichenbehafteten Überlauf erzeugt.
PSW.3: RS0 Registerauswahl 0. Das niederwertige Bit der Registerbank snaileye. Gesetzt, wenn Bänke bei 0x08 oder 0x18 verwendet werden.
PSW.4: RS1 Registerauswahl 1. Das höherwertige Bit der Registerbank. Gesetzt, wenn Bänke bei 0x10 oder 0x18 verwendet werden.
PSW.5: F0 Flag 0. Für allgemeine Softwarezwecke, nicht anderweitig von der Hardware verwendet.
PSW.6: AC Hilfsübertrag. Wird gesetzt, wenn die Addition einen Übertrag von Bit 3 zu Bit 4 erzeugt.
PSW.7: C Übertragsbit.
(0xE0) Akkumulator A. Dieses Register wird von den meisten Befehlen verwendet.
(0xF0) B-Register. Dies wird als Erweiterung des Akkumulators für Multiplizier- und Dividierbefehle verwendet.

Darüber hinaus gibt es 8 allgemeine Register R0–R7, die in den IRAM zwischen 0x00 und 0x1F abgebildet sind. Nur 8 Bytes dieses Bereichs werden zu einem bestimmten Zeitpunkt verwendet, bestimmt durch die Bankauswahlbits im PSW.

256 einzelne Bits sind direkt adressierbar. Dies sind die 16 IRAM-Stellen von 0x20–0x2F und die 16 Sonderfunktionsregister 0x80, 0x88, 0x90, …, 0xF8.

Beachten Sie, dass das PSW nicht die üblichen N- (Negativ) und Z- (Null) Flags enthält. Da der Akkumulator jedoch ein bitadressierbares SFR ist, ist es möglich, auf einzelne Bits davon zu verzweigen, einschließlich des MSB. Es gibt auch einen Befehl, um zu springen, wenn der Akkumulator Null oder ungleich Null ist.

Befehlssatz

Befehle sind alle 1 bis 3 Bytes lang und bestehen aus einem anfänglichen Opcode-Byte, gefolgt von bis zu 2 Bytes Operanden.
Es gibt 16 grundlegende ALU-Befehle, die zwischen dem Akkumulator und einem zweiten Operanden operieren, der mit einer der folgenden Adressierungsarten angegeben wird:

Register direkt, R0–R7 (Opcodes x8–xF)
Register indirekt, @R0 oder @R1 (Opcodes x6 und x7)
Speicher direkt, Angabe einer IRAM- oder SFR-Stelle (Opcodes x5, gefolgt von 1 Byte Adresse)
Unmittelbar, Angabe einer 8-Bit-Konstante (Opcodes x4, gefolgt von 1 Byte Daten)
Die Befehle sind wie folgt. Nicht alle unterstützen alle Adressierungsarten; der unmittelbare Modus ist insbesondere manchmal unsinnig:
0y INC Operand: Erhöht den angegebenen Operanden. Opcode 04 spezifiziert „INC A“
1y DEC Operand: Verringert den angegebenen Operanden. Opcode 14 spezifiziert „DEC A“
2y ADD A,Operand: Addiert den Operanden zum Akkumulator A.
3y ADDC A,Operand: Addiert den Operanden plus das C-Bit zum Akkumulator.
4y ORL A,Operand: Logisches ODER des Operanden in das A-Register.
5y ANL A,Operand: Logisches UND des Operanden in das A-Register.
6y XRL A,Operand: Logisches exklusives ODER des Operanden in das A-Register.
7y MOV operand,#data: Bewegt unmittelbare Daten zum Operanden. Opcode 74 spezifiziert „MOV A,#data.
8y MOV address,operand: Bewegt Daten zu einer IRAM- oder SFR-Register.
9y SUBB A,operand: Subtrahiert den Operanden vom Akkumulator mit Übertrag. Beachten Sie, dass es keine Subtraktion ohne Übertrag gibt.
Ay MOV operand,address: Bewegt Daten von einer IRAM- oder SFR-Register. Opcodes A4 und A5 werden nicht verwendet.
By CJNE operand,#data,offset: Vergleicht den Operanden mit den unmittelbaren Daten und springt zu PC+Adresse, wenn nicht gleich. Opcodes B4 und B5 führen CJNE A,operand,offset durch, für speicherdirekte und unmittelbare Operanden. Beachten Sie, dass es keinen Befehl „vergleichen und springen wenn gleich“ gibt.
Cy XCH A,operand: Tauscht (vertauscht) den Akkumulator und den Operanden. Opcode C4 wird nicht verwendet.
Dy DJNZ operand,offset: Verringert den Operanden und springt zu PC+Offset, wenn das Ergebnis ungleich Null ist. Opcodes D4, D6 und D7 werden nicht verwendet.
Ey MOV A,operand: Bewegt Operanden zum Akkumulator. Opcode E4 wird nicht verwendet. (Verwenden Sie stattdessen Opcode 74.)
Fy MOV operand,A: Bewegt Akkumulator zum Operanden. Opcode F4 wird nicht verwendet.

Nur die Befehle ADD, ADDC und SUBB setzen die PSW-Flags. Die Befehle INC, DEC und die logischen Befehle tun dies nicht. Die CJNE-Befehle modifizieren nur das C-Bit auf den Übertrag, der sich aus Operand1−Operand2 ergibt.

Die 32 Opcodes 0x00–0x3F sowie die wenigen Opcodes, die im obigen Bereich nicht verwendet werden, werden für andere Befehle mit begrenzteren Operandenspezifikationsmöglichkeiten verwendet.

Einer der Gründe für die Beliebtheit des 8051 ist sein Angebot an Operationen auf einzelnen Bits. Bits werden immer durch absolute Adressen angegeben; es gibt keine registerindirekte oder indizierte Adressierung. Befehle, die auf einzelnen Bits operieren, sind:

SETB bit, CLR bit, CPL bit: Setzt, löscht oder komplementiert das angegebene Bit
JB bit,offset: Springt, wenn Bit gesetzt ist
JNB bit,offset: Springt, wenn Bit gelöscht ist
JBC bit,offset: Springt, wenn Bit gesetzt ist, und löscht Bit
MOV C,bit, MOV bit,C: Bewegt das angegebene Bit zum Übertragsbit oder umgekehrt
ORL C,bit, ORL C,/bit: ODER-Verknüpfung des Bits (oder seines Komplements) mit dem Übertragsbit
ANL C,bit, ANL C,/bit: UND-Verknüpfung des Bits (oder seines Komplements) mit dem Übertragsbit
XRL C,bit, XRL C,/bit: Exklusiv-ODER-Verknüpfung des Bits (oder seines Komplements) mit dem Übertragsbit

Obwohl die meisten Befehle verlangen, dass ein Operand der Akkumulator oder eine unmittelbare Konstante ist, ist es möglich, eine MOV direkt zwischen zwei internen RAM-Stellen durchzuführen.

Programmierung

Hauptartikel: 8051-Compiler
Es gibt verschiedene Compiler für höhere Programmiersprachen für den 8051. Mehrere C-Compiler sind für den 8051 verfügbar, von denen die meisten es dem Programmierer ermöglichen, anzugeben, wo jede Variable in seinen sechs Speichertypen gespeichert werden soll, und bieten Zugang zu 8051-spezifischen Hardware-Features wie den mehreren Registerbänken und Bit-Manipulationsbefehlen. Es gibt viele kommerzielle C-Compiler. SDCC ist ein beliebter Open-Source-C-Compiler. Andere höhere Sprachen wie C++, Forth, BASIC, Pascal/Object Pascal, PL/M und Modula-2 sind für den 8051 verfügbar, werden aber weniger häufig verwendet als C und Assembler.

Da IRAM, XRAM und PMEM (schreibgeschützt) alle eine Adresse 0 haben, bieten C-Compiler für die 8051-Architektur compilerspezifische Pragmas oder andere Erweiterungen, um anzugeben, wo ein bestimmtes Datum gespeichert werden soll (z. B. Konstanten in PMEM oder Variablen, die schnellen Zugriff in IRAM benötigen). Da sich Daten in einem von drei Speicherbereichen befinden können, wird normalerweise ein Mechanismus bereitgestellt, um zu bestimmen, auf welchen Speicher ein Zeiger verweist, entweder durch Einschränkung des Zeigertyps auf den Speicherbereich oder durch Speichern von Metadaten mit dem Zeiger.

Verwandte Prozessoren

Intel 8031-Prozessoren
Der Vorgänger des 8051, der 8048, wurde in der Tastatur des ersten IBM PC verwendet, wo er Tastendrücke in den seriellen Datenstrom umwandelte, der an das Hauptgerät des Computers gesendet wurde. Der 8048 und seine Derivate werden heute noch für grundlegende Modelltastaturen verwendet.

Der 8031 war eine abgespeckte Version des ursprünglichen Intel 8051, die keinen internen Programmspeicher (ROM) enthielt. Um diesen Chip zu verwenden, musste externes ROM hinzugefügt werden, das das Programm enthielt, das der 8031 abrufen und ausführen sollte. Ein 8051-Chip könnte als ROM-loser 8031 verkauft werden, da das interne ROM des 8051 durch den normalen Zustand des EA-Pins in einem 8031-basierten Design deaktiviert wird. Ein Anbieter könnte einen 8051 aus verschiedenen Gründen als 8031 verkaufen, z. B. aufgrund von fehlerhaftem Code im ROM des 8051 oder einfach aufgrund eines Überangebots an 8051 und Unterangebots an 8031.
Der 8052 war eine erweiterte Version des ursprünglichen 8051, die 256 Bytes internen RAM anstelle von 128 Bytes, 8 kB ROM anstelle von 4 kB und einen dritten 16-Bit-Timer bot. Der 8032 hatte dieselben Funktionen mit Ausnahme des internen ROM-Programmspeichers. Die meisten modernen „8051-kompatiblen“ Mikrocontroller enthalten diese Funktionen.

Intel stellte seine MCS-51-Produktlinie im März 2007 ein, jedoch werden regelmäßig verbesserte 8051-Produkte oder Silizium-IP von anderen Anbietern hinzugefügt. Zu den derzeitigen Herstellern von MCS-51-kompatiblen Prozessoren gehören mehr als 20 unabhängige Code-Lese-Mikroprozessor-, Code-Extraktions-, Speicher-Lese-, EEPROM-Kopier-, Binärdatei-Herstellungs-, Programm-Lese- und Firmware-Hersteller, darunter Atmel, Infineon Technologies (ehemals Siemens AG), Maxim Integrated Products (über seine Dallas Semiconductor-Tochter), NXP (ehemals Philips Semiconductor), Microchip Technology, Nuvoton (ehemals Winbond), ST Microelectronics, Silicon Laboratories (ehemals Cygnal), Texas Instruments, Ramtron International, Silicon Storage Technology, Cypress Semiconductor und Analog Devices.

Die 80C537 und 80C517 sind CMOS-Versionen, die für die Automobilindustrie entwickelt wurden. Die Verbesserungen umfassen hauptsächlich neue Peripheriefunktionen und erweiterte arithmetische Befehle. Der 80C517 verfügt über Fehlersicherungsmechanismen, Analog Signalverarbeitungsfähigkeiten und Timer-Fähigkeiten sowie 8 kB On-Chip-Programmspeicher. Weitere Merkmale sind:

256 Byte On-Chip-RAM
256 direkt adressierbare Bits
Externer Programm- und Datenspeicher bis zu 64 kB erweiterbar
8-Bit-A/D-Wandler mit 12 gemultiplexten Eingängen
Arithmetische Einheit kann Division, Multiplikation, Verschiebung und Normalisierungsoperationen durchführen
Acht Datenzeiger anstelle von einem für die indirekte Adressierung von Programm- und externem Datenspeicher
Erweiterte Watchdog-Funktionen
Neun Ports
Zwei vollduplexe serielle Schnittstellen mit eigenen Baudratengeneratoren
Vier Prioritätsebenen-Interruptsysteme, 14 Interrupt-Vektoren
Drei Energiesparmodi

Verwendung als geistiges Eigentum

Heute sind 8051 immer noch als diskrete Teile erhältlich, aber sie werden meist als Silizium-IP-Cores verwendet. Verfügbar in High-Level-Sprachquellcode (VHDL oder Verilog) oder FPGA-Netzlistenformen, werden diese Cores typischerweise in eingebettete Systeme integriert, in Produkten von USB-Flash-Laufwerken über Waschmaschinen bis hin zu komplexen drahtlosen Kommunikationssystemen auf einem Chip. Designer verwenden 8051-Silizium-IP-Cores wegen der geringeren Größe und des geringeren Stromverbrauchs im Vergleich zu 32-Bit-Prozessoren wie ARM M-Serie, MIPS und BA22. Moderne 8051-Cores sind schneller als frühere verpackte Versionen. Designverbesserungen haben die 8051-Leistung erhöht, während die Kompatibilität mit dem ursprünglichen MCS-51-Befehlssatz erhalten blieb. Der ursprüngliche Intel 8051 arbeitete mit 12 Taktzyklen pro Maschinenzyklus, und die meisten Befehle wurden in ein oder zwei Maschinenzyklen ausgeführt. Eine typische maximale Taktfrequenz von 12 MHz bedeutete, dass diese alten 8051 eine Million Ein-Zyklus-Befehle oder 500.000 Zwei-Zyklus-Befehle pro Sekunde ausführen konnten. Im Gegensatz dazu laufen verbesserte 8051-Silizium-IP-Cores jetzt mit einem Taktzyklus pro Maschinenzyklus und haben Taktfrequenzen von bis zu 450 MHz. Das bedeutet, dass ein 8051-kompatibler Prozessor jetzt 450 Millionen Befehle pro Sekunde ausführen kann.

MCU basierend auf 8051

Atmel: AT89C51, AT89S51, AT83C5134
NXP: NXP700 und NXP900 Serie
Infineon: XC800

Digitale Signalprozessor (DSP)-Varianten

Mehrere Varianten mit einem zusätzlichen 16-Bit-Digitalen Signalprozessor (DSP) (z. B. für MP3- oder OGG-Codierung/Decodierung) mit bis zu 675 Millionen Befehlen pro Sekunde (MIPS) und integrierter USB 2.0-Schnittstelle oder als geistiges Eigentum existieren.

Erweiterter 8-Bit-binärkompatibler Mikrocontroller: MCS-151-Familie

Dieser Abschnitt muss erweitert werden. (Mai 2013)
1996 kündigte Intel die MCS-151-Familie an, einen bis zu 6-mal schnelleren Varianten. Vollständig 8051-binär- und befehlssatzkompatibel, aber mit gepipelinetem CPU, 16-Bit-internem Codebus und 6-facher Geschwindigkeit. Die MCS-151-Familie wurde ebenfalls von Intel eingestellt, ist aber in binärkompatiblen und teilweise erweiterten Varianten weit verbreitet.

8/16/32-Bit-binärkompatibler Mikrocontroller: MCS-251-Familie

Dieser Abschnitt muss erweitert werden. (Mai 2013)
Der 80251 8/16/32-Bit-Mikrocontroller mit 16-MB-Adressraum (24-Bit) und 6-mal schnellerem Befehlszyklus wurde 1996 von Intel eingeführt. Er kann als 8-Bit-8051 fungieren, hat einen 24-Bit-externen Adressraum, der 16-Bit-breit segmentiert ist, und eine 32-Bit-ALU mit hauptsächlich 8/16/32-Bit-breiten Datenbefehlen (auch boolescher Prozessor mit speziellen Registern/Speicher) und einen großen CISC-Befehlssatz, 40 8/16/32-Bit-Register mit 8 8-Bit-Registern in 4-fach schnellen umschaltbaren Speicherbänken (maximal 512 adressierbare 8-Bit-Sonderregister).

Es verfügt über erweiterte Befehle – siehe auch das Programmierhandbuch – und spätere Varianten mit höherer Leistung, auch als geistiges Eigentum (IP) erhältlich. Es ist 3-stufig gepipelinet. Die MCS-251-Familie wurde ebenfalls von Intel eingestellt, ist aber in binärkompatiblen und teilweise erweiterten Varianten vieler Hersteller weit verbreitet

Allgemeine Fragen zur Mikrocontroller-Firmware-Extraktion


  • Ist es sicher, eine Zahlung an MikaTech zu senden?

    Wenn MikaTech ein schlechtes Unternehmen wäre, könnten Sie im Laufe der 28-jährigen Geschichte massenhaft schlechte Bewertungen über unseren Service im Internet finden.

    Die Antwort lautet also: JA! Wir sind gute Leute.

    Warum sollten Sie Mikatech wählen? Klicken Sie hier, um es herauszufinden


  • Kann Mikatech auch ICs brechen, die nicht auf dieser Website aufgeführt sind?

    Verschiedene Chip-Hersteller haben unterschiedliche Teilenummern, aber der innere Kern des Chips kann mit derselben Technologie hergestellt werden. Es wäre ziemlich unmöglich, alle Teilenummern aufzulisten, auf die unsere Technologie angewendet werden kann, wie z. B. MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.

    Mit dem Fortschritt der Technologie sammeln wir täglich mehr Erfahrung und entwickeln neue Methoden für das Reverse Engineering verschiedener integrierter Schaltungsteile. Die vollständige Liste der integrierten Schaltungsteilenummern, die in unseren Leistungsbereich fallen, wird immer größer. Bitte kontaktieren Sie uns, um mehr zu erfahren.

  • Wird meine Privatsphäre geschützt?

    Mikatech Innovative Limited versteht die Bedeutung der Privatsphäre seiner Kunden. In dem Moment, in dem Sie Mikatech kontaktieren, werden Ihre persönlichen Informationen durch unsere Managementrichtlinien geschützt, die wir im Laufe unserer langjährigen Praxis entwickelt haben. Mikatech verwendet diese Informationen, um seinen Service für Sie zu personalisieren und wird diese Informationen unter keinen Umständen an Dritte weitergeben.
    Bei jedem Projekt, das wir durchführen, löschen wir alle Daten, Materialien und Codes 60 Tage nach der Lieferung der Dateien. Dies schützt uns und schützt Ihre Privatsphäre.

  • Ist es legal, den Service von Mikatech in Anspruch zu nehmen?

    Ja, es ist völlig legal.
    Mikatech erbringt seine Reverse-Engineering-Dienstleistungen nur zu Bildungszwecken. Es kann in einigen Ländern oder Regionen illegal sein, die oben genannten Dienstleistungen zu nutzen. Bitte überprüfen Sie Ihre lokalen Gesetze. Mikatech übernimmt keine Verantwortung im Zusammenhang mit der Nutzung der oben genannten Dienstleistungen, die als illegal angesehen werden könnte.


  • Ich habe Ihnen eine E-Mail gesendet, warum gibt es keine Antwort?

    • A. Unser Mail-Server war vorübergehend ausgefallen. Ihre Nachricht wurde nicht an unser Postfach zugestellt, obwohl die erfolgreiche Sendebestätigung auf dem Bildschirm angezeigt wurde. Bitte kontaktieren Sie uns erneut.
    • B. Unsere E-Mail wird von Ihrem Mail-Server als Junk-Mail erkannt, daher wurde unsere Antwort von Ihrem Mail-Server abgelehnt oder in Ihren Junk-Ordner umgeleitet. Bitte entfernen Sie unser Konto aus Ihrer Junk-Mail-Liste oder überprüfen Sie Ihren Junk-Ordner oder verwenden Sie ein anderes E-Mail-Konto wie Gmail.
    • C. Ihre E-Mail wird von unserem Mail-Server als Junk-Mail erkannt, daher wurde Ihre E-Mail in unseren Junk-Ordner verschoben. Bitte verwenden Sie ein anderes E-Mail-Konto, um uns erneut zu kontaktieren.

  • Workflows für digitales forensisches Reverse Engineering

    Workflows für digitales forensisches Reverse Engineering für manipulierte, durch Lockbit geschützte MCU-Geräte. Die digitale eingebettete Forensik stützt sich auf strukturierte, rechtlich vertretbare Mikrocontroller-Reverse-Engineering-Workflows, um Vorfälle von Manipulation, Betrug und unbefugten Änderungen mit gesperrten, durch Lockbit geschützten Mikrocontroller-Geräten zu untersuchen. Die forensische Analyse unterscheidet sich grundlegend von der sicherheitsorientierten Forschung, da sie zwingende Regeln für die Beweiskette, Nichtabstreitbarkeitsanforderungen und gesetzliche Zulässigkeitsstandards umfasst, die alle Datenerfassungs- und Verarbeitungsschritte regeln. Der gesamte forensische Workflow beginnt mit der anfänglichen Lockbit-Integritätsvalidierung, um den historischen Sicherheitszustand des betroffenen MCU-Geräts vor der Beweissicherung zu bestimmen. Forensische Prüfer verwenden passive OTP-Zustandsscan-Tools, um die aktuelle Lockbit-Konfiguration auszulesen, ohne Speichereinstellungen oder Sicherheitseinstellungen zu verändern. Dieser erste Scan identifiziert, welche Lockbit-Domänen intakt sind, welche umgangen wurden und ob OTP-Bits Anzeichen von Manipulation oder glitch-induzierter Korruption aufweisen. Der Lockbit-Zustandsbericht stellt fest, ob frühere Akteure auf Debug-Schnittstellen zugegriffen, die Bootloader-Logik modifiziert oder Speicherdaten exfiltriert haben, bevor das Gerät als Beweismittel beschlagnahmt wurde. Nach der Zustandsvalidierung führen die Prüfer eine kontrollierte, forensisch einwandfreie Auslesung des EEPROM-Prozessorspeichers durch, um verbleibende Manipulationsartefakte im nichtflüchtigen Speicher abzurufen. Der EEPROM speichert häufig Änderungszeitstempel, Firmware-Aktualisierungsprotokolle, Debug-Zugriffszähler und Fehlercodes, die während unbefugter Manipulationsversuche generiert wurden. Diese Artefakte liefern entscheidende Zeitachsenbeweise, die detaillieren, wann Sicherheitsbarrieren durchbrochen wurden und welche Änderungsoperationen von Angreifern durchgeführt wurden. Alle EEPROM-Leseoperationen verwenden schreibgeschützte Befehlssequenzen, um ein versehentliches Überschreiben von Beweisdaten während der Erfassung zu verhindern. Die nächste Workflow-Stufe umfasst validierte forensische Verfahren zum vollständigen Dump von Flash- und EEPROM-Speicher-Binärdateien für Hash-Vergleiche und binäre Differenzanalysen. Forensische Tools generieren kryptografische SHA-256-Hashes aller gedumpten Speichersegmente, um die Datenintegrität zu gewährleisten und zu beweisen, dass während der Erfassung keine Änderungen vorgenommen wurden. Die Prüfer vergleichen den Firmware-Hash des beschlagnahmten Geräts mit den goldenen Referenz-Hashes des Herstellers, um modifizierte Codesegmente und unbefugte eingeschleuste Payloads zu identifizieren. Binäre Diffing-Algorithmen heben genaue Befehlsänderungen, versteckte Hintertür-Codes und veränderte Kalibrierungsparameter hervor, die von dem manipulierenden Akteur eingeführt wurden. Diese quantitative Analyse liefert objektive technische Beweise für die Kompromittierung des Geräts für Gerichtsverfahren. Bei Geräten mit vollständig intakten permanenten Lockbits, die jeden Software-Speicherzugriff blockieren, setzen forensische Labore kontrollierte invasive Dekapsulations- und Code-Wiederherstellungs-Workflows nach standardisierten forensischen Verarbeitungsprotokollen ein. Jeder Schritt des chemischen Ätzens, der Die-Freilegung und des Probing wird fotografisch dokumentiert, um die Beweisintegrität zu wahren. Labortechniker verwenden kalibrierte, spannungsarme Verarbeitung, um eine Beschädigung beweisrelevanter Speicherzellen zu vermeiden, während sie gehärtete Lockbit-Logikgatter für die vollständige Datenwiederherstellung umgehen. Nach der Dekapsulation


    Mikrocontroller-Hack-Zeit

    Jahre

    28 +
    Mikrocontroller-Hack-Länder

    Länder

    110 +
    Mikrocontroller-Angriff-Kunden

    Kunden

    5000 +
    Mikrocontroller-Projekte entsperrt

    Projekte

    60000 +