LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Reverse Engineer a Checksum

Solved!
Go to solution

Hello All,

If anyone is feeling brainy I have a puzzle to solve (I can pay in beer and/or kudos)

We have a need to create a message like each row below, but need to recreate the checksum. This is emulating a piece of kit circa 1984 based on an 8031 chip. Here's what we know.....

 

The last 2 bytes are a checksum, I've tried various options (XOR, 2s Comp, CRC) with no success. My guess is that it will be  a simple algorithm due to it's age and processing power. The first byte is the address and may or may not be included.

 

checksum.png

Any help or advice would be greatly appreciated, if you crack it I will love you forever!

Much Love

Steve Watts

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

0 Kudos
Message 1 of 24
(6,330 Views)

just to clarify each row is a line, with the last 2 bytes being the checksum. Thinking about it a bit more, I suspect it is an XOR with an initial seed value and perhaps I could reverse the operation and get the seed value back.

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

0 Kudos
Message 2 of 24
(6,304 Views)

I suggest that if you want people to be able to play with this, you should upload the data in a more friendly format.

 

Also, you might want to search for existing tools or methods. For instance, a quick search shows this - http://reveng.sourceforge.net/


___________________
Try to take over the world!
0 Kudos
Message 3 of 24
(6,283 Views)

You could also try Stack Overflow. Since this isn't specifically a LabVIEW question, you could draw on the experience of more people.


___________________
Try to take over the world!
0 Kudos
Message 4 of 24
(6,280 Views)

Any information on the CRC polynomial?


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 5 of 24
(6,265 Views)

cheers tst,

I've looked there and it has a lot of useful info, reveng is my weekend project, it assumes a lot more knowledge than I currently have.

My hope is that it may be an area where someone has expertise before I spend weeks acquiring it.

Attached is a text file each message is bounded by [ ]

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

0 Kudos
Message 6 of 24
(6,263 Views)

My best guess is that is just a seeded XOR, it's really old! so maybe an Adler or Fletcher type.

But essentially it is just a 1980s vintage RS485 keypad and we are sniffing the RS485, it's 9bits data length as well which is interesting..

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

0 Kudos
Message 7 of 24
(6,256 Views)
What specifically is the equipment? Is it commercial?

Other issues besides algorithm you also need to consoder what is included in the checksum, byte order, and bit order.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 8 of 24
(6,243 Views)

It's commercial (sorry to be cagey but I can't give all the info), it's a distributed monitoring system from a fairly well known company.

They dont' support it any more and it's becoming difficult to find anyone to talk to.

 

My current approach has been to throw every algorithm I can find at it, but to no avail. My next idea is that I can imagine I'm the recieving unit and undo the checksum, this may then leave me with the seed. I'm guessing that they just compare the result agains the seed and if it's OK the packet is OK.

I'm outside my comfort zone here tho'

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

0 Kudos
Message 9 of 24
(6,228 Views)

Sorry crossrulz,

It's just data at the moment (I think date/capability of the kit probably eliminates some of the more complex checksum algorithms

Steve


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop


Random Ramblings Index
My Profile

0 Kudos
Message 10 of 24
(6,224 Views)