2

I am looking at a 32 byte sequence, the chksum I believe is either the 1st two bytes or last 2 bytes (I am leaning on the last 2 bytes). I think it is a straight 16bit xor but I can't find the crunch number to put against it. It could be crc or citt too, I can't say for sure.

Here are 3 packets to work with, any help will be greatly appreciated.

55 00 53 4D 34 34 51 49 00 00 00 00 00 00 4F 1F DF F1 00 00 00 00 00 00 00 00 00 00 00 00 C7 CC

16 02 53 4D 31 30 30 54 51 47 00 00 00 00 C8 7F A8 F4 00 00 00 00 00 00 00 00 00 00 00 00 41 F5

11 00 53 4D 34 38 44 00 00 00 00 00 00 00 69 DC 9C F3 00 00 00 00 00 00 00 00 00 00 00 00 F3 48

closed as off-topic by Jason Geffner, perror, jvoisin, peter ferrie, Guntram Blohm Apr 26 '16 at 17:27

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking for help reverse-engineering a specific system are off-topic unless they demonstrate an understanding of the concepts involved and clearly identify a specific problem." – perror, peter ferrie, Guntram Blohm
If this question can be reworded to fit the rules in the help center, please edit the question.

2
unsigned int seed=0x3412;
unsigned int len=15;

unsigned int vec1[] = {
        0x5500,0x534D,0x3434,0x5149,0x0000,0x0000,0x0000,0x4F1F,0xDFF1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
        // 0xC7CC
};

unsigned int vec2[] = {
        0x1602,0x534D,0x3130,0x3054,0x5147,0x0000,0x0000,0xC87F,0xA8F4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
        // 0x41F5
};

unsigned int vec3[] = {
        0x1100,0x534D,0x3438,0x4400,0x0000,0x0000,0x0000,0x69DC,0x9CF3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
        // 0xF348
};


// poly = 0xffff

unsigned int fcalc(int len, unsigned int s, unsigned int *v)
{
        unsigned int ret, i;

        ret = s;
        for (i=0; i<len; i++)
                ret ^= *v++;

        return ret;
}

main()
{
        unsigned int c;

        c = fcalc(len, seed, vec1);
        printf("c = %04x\n", c);

        c = fcalc(len, seed, vec2);
        printf("c = %04x\n", c);

        c = fcalc(len, seed, vec3);
        printf("c = %04x\n", c);

}

enter image description here

  • This is great!! Thank you very much Alex. G – JGizmo Apr 22 '16 at 18:26

Not the answer you're looking for? Browse other questions tagged or ask your own question.