How to determine checksum calculation method

Discussion in 'C Programming' started by Andrus, Oct 13, 2005.

  1. Andrus

    Andrus Guest

    Device connected to serial port accepts data packets in the form

    02 0x57 ll ll 00 00 00 00 dd..dd cc cc

    02 (1 byte ) is message prefix
    0x57 (1 byte) is message type (W=Write)
    ll ll ( 2 bytes) are message data length
    00 00 00 00 (4 bytes) seems to be constant zero bytes
    dd..dd ( ll ll bytes) is message content which I can vary.
    cc cc ( 2 bytes ) is problebly message checksum

    I need to determine method which is used for checksum calculation.
    Application which generates those packets is in 50 KB .exe file form, no
    source code.
    It must be some simple method.

    I can genereate data packets and listen them to observe created checksums.
    I experimented with 1 byte data packets and got the following results.

    Any idea which method is used for checksum calculation ?

    Observed checksum is in the last two bytes.

    57 00 01 00 00 00 00 00 89 EF
    57 00 01 00 00 00 00 01 09 EA
    57 00 01 00 00 00 00 02 09 E0
    57 00 01 00 00 00 00 03 89 E5
    57 00 01 00 00 00 00 04 09 F4
    57 00 01 00 00 00 00 05 89 F1
    57 00 01 00 00 00 00 06 89 FB
    57 00 01 00 00 00 00 07 09 FE
    57 00 01 00 00 00 00 08 09 DC
    57 00 01 00 00 00 00 09 89 D9
    57 00 01 00 00 00 00 0A 89 D3
    57 00 01 00 00 00 00 0B 09 D6
    57 00 01 00 00 00 00 0C 89 C7
    57 00 01 00 00 00 00 0D 09 C2
    57 00 01 00 00 00 00 0E 09 C8
    57 00 01 00 00 00 00 0F 89 CD
    57 00 01 00 00 00 00 10 09 8C
    57 00 01 00 00 00 00 11 89 89
    57 00 01 00 00 00 00 12 89 83
    57 00 01 00 00 00 00 13 09 86
    57 00 01 00 00 00 00 14 89 97
    57 00 01 00 00 00 00 15 09 92
    57 00 01 00 00 00 00 16 09 98
    57 00 01 00 00 00 00 17 89 9D
    57 00 01 00 00 00 00 18 89 BF
    57 00 01 00 00 00 00 19 09 BA
    57 00 01 00 00 00 00 1A 09 B0
    57 00 01 00 00 00 00 1B 89 B5
    57 00 01 00 00 00 00 1C 09 A4
    57 00 01 00 00 00 00 1D 89 A1
    57 00 01 00 00 00 00 1E 89 AB
    57 00 01 00 00 00 00 1F 09 AE
    57 00 01 00 00 00 00 20 09 2C
    57 00 01 00 00 00 00 21 89 29
    57 00 01 00 00 00 00 22 89 23
    57 00 01 00 00 00 00 23 09 26
    57 00 01 00 00 00 00 24 89 37
    57 00 01 00 00 00 00 25 09 32
    57 00 01 00 00 00 00 26 09 38
    .....
    57 00 01 00 00 00 00 F9 8B F9
    57 00 01 00 00 00 00 FA 8B F3
    57 00 01 00 00 00 00 FB 0B F6
    57 00 01 00 00 00 00 FC 8B E7
    57 00 01 00 00 00 00 FD 0B E2
    57 00 01 00 00 00 00 FE 0B E8
    57 00 01 00 00 00 00 FF 8B ED

    Andrus.
     
    Andrus, Oct 13, 2005
    #1
    1. Advertising

  2. Andrus

    Flash Gordon Guest

    Andrus wrote:
    > Device connected to serial port accepts data packets in the form


    Standard C knows nothing about serial ports.

    <snip>

    > I need to determine method which is used for checksum calculation.
    > Application which generates those packets is in 50 KB .exe file form, no
    > source code.


    <sbip>

    Standard C also knows exactly nothing about this application of yours.

    Nothing else you posted has anything to do with C either. So your post
    is completely off topic. And no, we don't care if the application was
    written in C or if you think we could do the analysis with a C program.
    There are billions of programs written in C and an infinite number that
    could be written in C.

    I suggest you go and ask the people who supplied the SW and if they
    won't tell you I suggest you throw it away and use something else instead.
    --
    Flash Gordon
    Living in interesting times.
    Although my email address says spam, it is real and I read it.
     
    Flash Gordon, Oct 13, 2005
    #2
    1. Advertising

  3. Pacher R. Dragos, Oct 13, 2005
    #3
  4. Andrus

    Flash Gordon Guest

    Pacher R. Dragos wrote:
    > Maybe this will help:
    >
    > http://gpsbots.com/tutorials/tut_io_class.php


    Provide context, most people don't use Google and may not have seen or
    have available the article you are responding to. There have already
    been posts today with instructions on how to do it.

    Also complain to Google for their stupid interface making you look like
    an idiot.
    --
    Flash Gordon
    Living in interesting times.
    Although my email address says spam, it is real and I read it.
     
    Flash Gordon, Oct 13, 2005
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. anupam

    vhdl code for crc32 checksum

    anupam, Sep 3, 2004, in forum: VHDL
    Replies:
    4
    Views:
    7,903
    Kai Harrekilde-Petersen
    Sep 6, 2004
  2. Alessio

    Checksum java

    Alessio, Oct 6, 2004, in forum: Java
    Replies:
    16
    Views:
    6,560
    Thomas G. Marshall
    Oct 12, 2004
  3. Checksum method determination

    , Feb 3, 2006, in forum: C Programming
    Replies:
    15
    Views:
    670
    Marty
    Feb 4, 2006
  4. Peña, Botp
    Replies:
    1
    Views:
    240
    Robert Klemme
    Jan 24, 2004
  5. Ironhide

    checksum calculation for file offsets

    Ironhide, Apr 26, 2010, in forum: Perl Misc
    Replies:
    2
    Views:
    233
    Steve C
    Apr 27, 2010
Loading...

Share This Page