Reverse engineering: USB kontrollerade hemautomation hacka (9 / 19 steg)
Steg 9: Reverse engineering: kontrollsumma huvud-repas
Jag började läsa om kontrollsummorna på Wikipedia, och försökt tillämpa alla typer av algoritmer till data. Ingenting verkade verkligen fungera. Sedan märkte jag att kontrollsumman för någon given knapptryckning var identiska oavsett slumpmässiga nätverks-ID. Kontrollsumman beräknas endast baserat på nyttolasten data.
Min gissning är att det är hårdkodade i fjärrkontrollen för att förenkla chip design.
Så med detta i åtanke försökte jag lite enklare saker. Jag märkte att sekvenser av 01 och 01 skulle avbryta varandra och producera en kontrollsumma för 00, och att sekvenser av 01 och 10 skulle producera en kontrollsumma för 11.
Detta antydde mot en enkel algoritm för XOR.
Efter några försök och misstag hittade jag en enkel algoritm som alltid givit den korrekt kontrollsumman.
De första två bitarna är XOR'ed med de 2: a två bitarna. Resultatet av detta är XOR'ed med de sista två bitarna.
Kolla på bilden för att se hur hcecksum beräkning görs: