-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Doesnt seem to work on Ubuntu 23 #10
Comments
Hello @MeisterLone. Thanks for your feedback. There is clearly a bug. Once, there was a check if the polynomial width is more than 16 bit and then there was at least a warning. I am not sure right now, what is going on, but the program should stop before it runs into unexpected conditions. But before I start investigating, I like to give an early response. First of all, there is not need to run the program with elevated privileges (sudo). It will work without as long as file permissions of other files allow reading them. Second, bruteforcing a polynomial is fine for smaller degrees like 16, which is common and sufficient for communication protocols. For comm protocols, you may have a telegram of 100 byte. Even TCP uses a 16 bit checksum (not CRC). CRC-32 is often used for large data blobs. Bruteforcing it with probing different parameters is not feasible. It may work for probing a single parameter. I would say it is better to check common CRC-32 formats and start testing these standard methods first. An overview can be found here. Maybe there is even a tool for this purpose, but I am not aware of any specific program. If you find any tool for this, I would be glad to hear about it and to add it in the documentation. |
Hey @nitram2342 ! Yes this is a network packet that I am trying to emulate. `Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 03 0A 82 ED 86 39 61 D2 03 14 1E 32 B6 CA 00 3C ..‚í†9aÒ...2¶Ê.< The last 4 bytes in the packet is a checksum, seemingly CRC32. It is possible that they are only CRC a critical part of the packet (not the entire packet) but I am not sure. Here is a second packet, of the same type, with the checksum in the same spot. Last 4 bytes `Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 03 0A 82 ED 86 39 61 D2 03 14 1E 32 B6 CA 00 3C ..‚í†9aÒ...2¶Ê.< Have a good day! |
The file:
It seems like it reads the correct CRC from file (8D BB 3A 66) but when it starts up, it shows CRCs/s=5 briefly, then goes down to 0 in a second or two, then nothing happens after that and the screen shows as below.
Very strange. 5 crc/s also sounds really slow for my pc
Cheers!
file.txt
` sudo ./bruteforce-crc --verbose 1 --file file.txt --start 0 --end 1056 --width 32 --offs-crc 1056 --probe-initial true --threads 1
Extracted message with crc 8dbb3a66
Extracted 1 messages and CRC values
Brute Force CRC Settings
CRC Width : 32
Truncated Polynomial : 0x0 to 0x0
Truncated Polynomial : 0x0 to 0xffffffff
Initial value : 0x0 to 0xffffffff
final xor : 0x0
Probe reflect in : false
Probe reflect out : false
Feed type : auto
Permutation count : 18446744065119617025
Multithreaded CRC Brute Force Initiated
Number of threads : 1
Number of test vectors : 1
Testing Known CRC's for Length 32
Starting brute forcer over selected threads
Starting Thread 0, searching from 0 to ffffffff
time=198s CRCs/s=0 .42101e-17% (10 of 18446744T) time_to_go=5124095573644338 h`
The text was updated successfully, but these errors were encountered: