Supongamos que tengo algunos paquetes con una suma de comprobación de 16 bits al final. Me gustaría adivinar qué algoritmo de suma de comprobación se utiliza.¿Cómo puedo adivinar un algoritmo de suma de comprobación?
Para empezar, a partir de datos de volcado, puedo ver que un cambio de byte en la carga útil del paquete cambia totalmente la suma de comprobación, por lo que puedo suponer que no es un tipo simple de XOR o suma.
Luego probé several variations of CRC16, pero sin mucha suerte.
Esta pregunta puede ser más parcial hacia la criptografía, pero estoy realmente interesado en cualquier herramienta estadística fácil de entender para saber qué CRC podría ser. Incluso podría pasar al drawing different CRC algorithms si todo lo demás falla.
Backgroud story: Tengo un protocolo de RFID en serie con algún tipo de suma de comprobación. Puedo reproducir mensajes sin problemas e interpretar los resultados (sin verificación de suma de comprobación), pero no puedo enviar paquetes modificados porque el dispositivo los descarta.
Usando el software existente, puedo cambiar la carga útil del chip RFID. Sin embargo, el número de serie único es inmutable, por lo que no tengo la capacidad de verificar todas las combinaciones posibles. Aunque podría generar volcados de valores incrementando en uno, pero no lo suficiente como para hacer una búsqueda exhaustiva aplicable a este problema.
dump files with data están disponibles si se pregunta en sí misma no es suficiente :-)
Necesita documentación de referencia?A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS es una gran referencia que encontré después de hacer una pregunta aquí.
Al final, después toque muy útil en la respuesta aceptada de lo que es CCITT, que used this CRC calculator, y XOR generada suma de comprobación con la suma de comprobación conocida para obtener 0xffff que me llevó a la conclusión de que xor final es instread 0xffff del CCITT de 0x0000.
se puede obtener sumas de comprobación de los datos que desee? –
No, no puedo. Puedo cambiar parte de los datos y generar sumas de comprobación de eso utilizando la aplicación existente que habla con el dispositivo, pero esto no es un paquete completo. – dpavlin
El estándar para CCITT especifica un XOR con 0x0000? ¿No es siempre un no-op? – unwind