colinoflynn / crcbeagle Goto Github PK
View Code? Open in Web Editor NEWCRC Reverse Engineering Tool in Python
License: BSD 3-Clause "New" or "Revised" License
CRC Reverse Engineering Tool in Python
License: BSD 3-Clause "New" or "Revised" License
Printed message suggests different length messages will be useful for the solve, this is a lie with current implementation. Should fix that to actually check solution against other lengths.
Makes more sense once the INIT value fix for #4 is done however.
Currently inputs assumed to be lists - should also parse hex strings which are often the "output" of protocol analyzers.
in the demo
crcb.search([[165, 16, 2, 7, 85, 163, 209, 114, 21, 131, 143, 144, 52, 187, 183, 142, 180, 39, 169, 76],
[165, 16, 2, 7, 140, 39, 242, 202, 181, 209, 220, 248, 156, 112, 66, 128, 236, 187, 35, 176],
[165, 16, 2, 7, 113, 105, 30, 118, 164, 96, 43, 198, 84, 170, 123, 76, 107, 225, 133, 194]],
[[253, 14],
[90, 38],
[248, 236]]
)
I know the first three lines are the sample msg, but what is the meaning of these arrays?
[[253, 14],
[90, 38],
[248, 236]]
and where can I define the CRC length?
for example, with CRC RevEng, I can type something like
./reveng -w 16 -s 282FAC4DD9 2B6BACD581 2F2AAC37BC AF2EACC022
to search for the CRC-16
thanks in advance
Would be nice to have some (real) examples of this working on protocols. If you've got some simple test vectors please post them to this issue. You can see the demo.py
example for how it should work.
NB - I'm very lazy, please don't post wireshark captures or something, only post either Python or "raw" hex (which can convert easily, and when I fixed #2 will "just work").
The tool requires at least two messages of the same length, it's not brute-forcing the per-message CRC. This is required for the differential to work.
This thing depends on crccheck
so you better install that before I get around to making setup.py
Currently sets init value to 0 for the differential technique.
Most of the time init value is 0 or 0xFF... . Should really try known init values once the polynomial is found, as that would be very handy for users.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.