# NRC (Negative Response Code)

> Ein Negative Response Code (NRC) ist das dritte Byte einer negativen UDS-Antwort, 7F <SID> <NRC>, und sagt dem Tester, warum das Steuergerät einen Request abgelehnt hat: 0x11 serviceNotSupported, 0x12 subFunctionNotSupported, 0x13 incorrectMessageLengthOrInvalidFormat, 0x22 conditionsNotCorrect, 0x31 requestOutOfRange, 0x33 securityAccessDenied, 0x35 invalidKey, 0x7E und 0x7F für die falsche Session, 0x78 für Response Pending. ISO 14229-1 Anhang A listet sie alle. Für einen Tester sind NRCs die Landkarte des Steuergeräts.

Eine negative UDS-Antwort besteht aus 7F, dem abgelehnten SID und einem Negative Response Code (NRC) wie 0x11, 0x33 oder 0x7F. Was die Codes aus ISO 14229-1 bedeuten.

Source: https://auto-st.com/de/glossar/nrc · Updated: 2026-10-07

## Was ist ein NRC?

Wenn ein Steuergerät einen UDS-Request nicht ausführen kann oder will, antwortet es negativ: `7F`, der Service Identifier des abgelehnten Requests und ein Negative Response Code. `7F 27 35` sagt, SecurityAccess wurde mit einem ungültigen Key aufgerufen, `7F 22 31` sagt, ReadDataByIdentifier wurde nach einer DID außerhalb des Bereichs gefragt, `7F 10 12` sagt, die gewünschte Session-Sub-Funktion wird nicht unterstützt.

Die Codes, die am Prüfstand am meisten zählen, sind `0x10` generalReject, `0x11` serviceNotSupported, `0x12` subFunctionNotSupported, `0x13` incorrectMessageLengthOrInvalidFormat, `0x14` responseTooLong, `0x21` busyRepeatRequest, `0x22` conditionsNotCorrect, `0x24` requestSequenceError, `0x31` requestOutOfRange, `0x33` securityAccessDenied, `0x34` authenticationRequired, `0x35` invalidKey, `0x36` exceedNumberOfAttempts, `0x37` requiredTimeDelayNotExpired, `0x70` uploadDownloadNotAccepted, `0x72` generalProgrammingFailure, `0x73` wrongBlockSequenceCounter, `0x78` requestCorrectlyReceived-ResponsePending, `0x7E` subFunctionNotSupportedInActiveSession und `0x7F` serviceNotSupportedInActiveSession.

## Wo ist es definiert?

ISO 14229-1:2020 Anhang A listet jeden Negative Response Code mit Name und Bedeutung; Kapitel 7.5 legt fest, wann ein Server negativ antwortet und in welcher Reihenfolge er einen Request prüft (Service, Länge, Sub-Funktion, Session, Security, Bedingungen). Die Codes `0x81` bis `0x8F` und `0x92` bis `0x94` beschreiben Fahrzeugzustände wie Drehzahl-, Temperatur- und Spannungsbereiche. `0x50` bis `0x5D` kamen für den Authentication-Service (`0x29`) hinzu. Jedes Service-Kapitel listet die Teilmenge der NRCs, die der Service zurückgeben darf, und das suppressPosRspMsgIndicationBit unterdrückt nie eine negative Antwort.

## Was es in der Praxis bedeutet

NRCs sind das reichhaltigste Signal, das ein Steuergerät kostenlos preisgibt. Ein Sweep über alle Service Identifier in einer Session ergibt ein Muster: `0x11` für Services, die fehlen, `0x7F` für Services, die in einer anderen Session warten, `0x33` für die Oberfläche hinter SecurityAccess, `0x13` für Services, die existieren und mit der richtigen Länge laufen würden. Dasselbe gilt für Sub-Funktionen (`0x12` gegenüber `0x7E`) und für Identifier (`0x31`). Diese Codes sorgfältig zu lesen ist Enumeration.

Beim SecurityAccess-Test zeigt die Folge `0x35`, `0x35`, `0x36`, dann `0x37` einen funktionierenden Versuchszähler mit Verzögerung. Wir sehen regelmäßig Steuergeräte, die endlos `0x35` antworten, also unbegrenzt Key-Versuche zulassen, und Steuergeräte, die auf alles Unverstandene `0x10` generalReject schicken, was die Struktur vor dem flüchtigen Blick versteckt, nicht aber vor dem statistischen. Ein weiteres wiederkehrendes Finding: `0x78` gefolgt von Stille, was jeden Tester hängen lässt, der sich an P2* hält.

## Wie AutoST es testet

Die Enumerations-Engine von AutoST klassifiziert jede Antwort in jeder Session anhand ihres NRC: supported, security access denied, not supported in this session, conditions not correct oder not supported. Die SecurityAccess-Engine zählt `0x35`, `0x36` und `0x37`, um den Lockout zu beurteilen, und die Fuzzing-Engine wertet ausbleibende Antworten und Transportfehler nach einem Payload als Absturz-Indikator. Der kostenlose NRC-Decoder auf dieser Seite erklärt jeden einzelnen Code.

## Häufige Missverständnisse

Eine negative Antwort ist kein fehlgeschlagener Test. Das Steuergerät tut seine Arbeit, und der richtige NRC in der richtigen Situation ist genau das, wie eine sichere Implementierung aussieht. Das Finding ist der falsche Code: eine positive Antwort, wo `0x33` hingehört hätte, oder `0x35`, wo `0x36` fällig war.

## FAQ

**Was ist der Unterschied zwischen 0x11 und 0x7F?**

serviceNotSupported (0x11) heißt, der Service existiert auf diesem Steuergerät in keiner Session. serviceNotSupportedInActiveSession (0x7F) heißt, er existiert, aber nicht in der aktuellen, meist weil er die Extended oder Programming Session braucht. Dasselbe Paar gibt es für Sub-Funktionen: 0x12 und 0x7E.

**Ist 0x78 ein Fehler?**

Nein. requestCorrectlyReceived-ResponsePending sagt dem Tester, dass das Steuergerät mehr Zeit braucht und er bis P2* auf die endgültige Antwort warten soll. Ein Steuergerät, das 0x78 schickt und dann nichts mehr, ist ein Finding, weil der Tester hängt. Mehrere 0x78 hintereinander sind erlaubt.

**Warum bekomme ich gar keine Antwort statt eines NRC?**

Bei funktional adressierten Requests schreibt ISO 14229-1 dem Steuergerät vor, statt 0x11, 0x12, 0x31, 0x7E oder 0x7F zu schweigen, damit ein Broadcast des Testers keine Flut negativer Antworten auslöst. Bei physisch adressierten Requests heißt Schweigen meist: das Steuergerät ist abgestürzt, die ISO-TP-Adresse ist falsch oder der Request ist nie angekommen.

## Sources

- [ISO 14229-1:2020 Straßenfahrzeuge, Unified diagnostic services (UDS), Teil 1: Anwendungsschicht, Kapitel 7.5 (negatives Antwortverhalten) und Anhang A (Negative Response Codes)](https://www.iso.org/standard/72439.html)
- [ISO 14229-2:2021 Straßenfahrzeuge, Unified diagnostic services (UDS), Teil 2: Session-Schicht (P2- und P2*-Timing)](https://www.iso.org/standard/79608.html)

## Related

- [SID (Service Identifier)](https://auto-st.com/de/glossar/sid)
- [UDS (Unified Diagnostic Services)](https://auto-st.com/de/glossar/uds)
- [Diagnose-Session (DiagnosticSessionControl 0x10)](https://auto-st.com/de/glossar/diagnose-session)
- [UDS-Negative-Response-Code-Decoder](https://auto-st.com/de/tools/uds-nrc-decoder)
- [Kenne jede Tür ins ECU.](https://auto-st.com/de/uds-enumeration)
- [Hält dein Seed/Key wirklich?](https://auto-st.com/de/security-access-test)

---
AutoST by Zyberum. Canonical page: https://auto-st.com/de/glossar/nrc
