7.904
Bearbeitungen
ICON (Diskussion | Beiträge) |
ICON (Diskussion | Beiträge) K (Fehler -> Problem) |
||
Zeile 2: | Zeile 2: | ||
== Erklärung == | == Erklärung == | ||
Zuerst entschlüsselt IOS bei der Installation eines Titels die Signatur und vergleicht die SHA1 des Payloads mit einem anderen Hash in der Signatur - | Zuerst entschlüsselt IOS bei der Installation eines Titels die Signatur und vergleicht die SHA1 des Payloads mit einem anderen Hash in der Signatur - das erste Problem hierbei ist, dass der Payload-Hash ein binärer SHA1-Hash ist und kein ASCII-String und deshalb ein NULL-Byte ("\0") enthalten kann. Das weitaus größere Problem ist jedoch, dass zum Vergleichen der Hashes die C-Funktion ''[http://www.cplusplus.com/reference/cstring/strncmp/ strncmp]'', statt ''[http://www.cplusplus.com/reference/cstring/memcmp/ memcmp]'' benutzt wird, welche Strings vergleicht und beim ersten NULL-Byte stoppt: | ||
{{Zitat|Text=This function starts comparing the first character of each string. If they are equal to each other, it continues with the following pairs until the characters differ, '''until a terminating null-character is reached''', or until num characters match in both strings, whichever happens first.}} | {{Zitat|Text=This function starts comparing the first character of each string. If they are equal to each other, it continues with the following pairs until the characters differ, '''until a terminating null-character is reached''', or until num characters match in both strings, whichever happens first.}} |
Bearbeitungen