By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,304 Members | 3,132 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,304 IT Pros & Developers. It's quick & easy.

How to determine checksum calculation method

P: n/a
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.
Nov 15 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a

P: n/a
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.
Nov 15 '05 #3

P: n/a
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.
Nov 15 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.