{"id":19525900,"url":"https://github.com/nitram2342/bruteforce-crc","last_synced_at":"2025-02-28T06:11:41.531Z","repository":{"id":2431358,"uuid":"3400768","full_name":"nitram2342/bruteforce-crc","owner":"nitram2342","description":"Brute-forcing CRC parameters","archived":false,"fork":false,"pushed_at":"2024-08-30T14:49:09.000Z","size":130,"stargazers_count":71,"open_issues_count":1,"forks_count":14,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-14T04:03:18.615Z","etag":null,"topics":["brute-force","bruteforce-crc","bruteforcer","crc","crc-16","crc-8","crc-algorithms","crc-calculation","crc-model","probe-crc","test-crc"],"latest_commit_sha":null,"homepage":"http://sitsec.net/blog/2012/02/10/brute-forcing-crc-parameters/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Clans/FloatingActionButton","license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nitram2342.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_1_0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-02-09T20:13:07.000Z","updated_at":"2025-01-18T13:22:08.000Z","dependencies_parsed_at":"2025-01-01T18:11:12.502Z","dependency_job_id":"272244b9-f54d-49c3-906d-e14c44069f7f","html_url":"https://github.com/nitram2342/bruteforce-crc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitram2342%2Fbruteforce-crc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitram2342%2Fbruteforce-crc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitram2342%2Fbruteforce-crc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitram2342%2Fbruteforce-crc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nitram2342","download_url":"https://codeload.github.com/nitram2342/bruteforce-crc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239958310,"owners_count":19724926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brute-force","bruteforce-crc","bruteforcer","crc","crc-16","crc-8","crc-algorithms","crc-calculation","crc-model","probe-crc","test-crc"],"created_at":"2024-11-11T01:07:31.662Z","updated_at":"2025-02-21T05:06:38.701Z","avatar_url":"https://github.com/nitram2342.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"These files are part of a CRC parameter brute-forcing tool. Please have a look at\nhttp://sitsec.net/blog/2012/02/10/brute-forcing-crc-parameters/\n\nAuthor: Martin Schobert \u003cschobert@sitsec.net\u003e\n\nLicence\n--------\n\nThis code is published under the Boost Software Licence.\nhttp://www.boost.org/users/license.html\n\nDependencies\n-------------\n\n- Cmake\n- Boost\n  - boost\\_program\\_options\n  - boost\\_system\n  - boost\\_regex\n  - boost\\_thread\n\n$ sudo apt-get install cmake libboost-program-options-dev libboost-system-dev libboost-regex-dev \\\n  libboost-thread-dev libboost-test-dev libboost-filesystem-dev\n\nCompile\n--------\n\n\\\u003e cmake .\n\nCheck for errors and install missing dependencies.\n\n\\\u003e make\n\nBuild bruteforce-crc and ./bin/test*\n\n\\\u003e make test\n\nRun tests (can take a long time) \n\n\nInstall\n-------\n\nin general, you may use the bruteforcer from the directory where you compiled the code. If you like to install the bruteforcer into your system, you may run the 'install' target:\n\n\\\u003e sudo make install\n\n\nRun\n----\n\nMinimum input:\n\n\u003cpre\u003e\n./bruteforce-crc --file [filename] --width [crc-width] --offs-crc [offset to start of crc] --start [start of data] --end [end of data]\n\u003c/pre\u003e\n\nInput file is an ASCII representation of a binary string, for example:\n\n\u003cpre\u003e\n01101100100000111010000110001101011110000000001001111111010\n00010000000011001011001001100110111111000001101000101000101\n11010111001110001101101100101110111101101010010010011100111\n\u003c/pre\u003e\n\nIf your input is hex-bytes, just use the Perl script \"rewrite-as.pl\" to convert your input into a format the bruteforcer expects, for example:\n\n\u003cpre\u003e\nperl rewrite-as.pl bits test_hexbytes.txt \u003e test_bitmsg.txt\n\u003c/pre\u003e\n\nThe brute-forcer expects simple newlines as line endings. If you have Windows text files ending in \\r\\n, you need to convert them.\n\nBack to the example, in this example the CRC is 10 bits long and starts at bit 49:\n\n\u003cpre\u003e\n[--------------------data-----------------------][---CRC--]\n01101100100000111010000110001101011110000000001001111111010\n\u003c/pre\u003e\n\nThe command line for this example would be:\n\n\u003cpre\u003e\n./bruteforce-crc --verbose 1 --file data.txt --start 0 --end 49 --width 10 --offs-crc 49 --probe-initial true\n\nOptions List [* Required]:\n\n  --file arg                   * File containing messages\n  --width arg                  * CRC width\n  --offs-crc arg               * CRC's offset\n  --start arg                  * Calculate CRC from this offset\n  --end arg                    * Calculate CRC up to this offset (not included)\n  --output arg                 Output file for matched crc settings\n  --verbose arg                Enable verbose output\n  --poly arg                   Truncated polynomial (default: bruteforced)\n  --poly-start arg             Start of polynomial search space (default: 0)\n  --poly-end arg               End of polynomial search space (default (2^width - 1))\n  --threads arg                Number of threads (default: 4)\n  --initial arg                Set intial value (default: 0)\n  --probe-initial arg          Bruteforce the intial, overrides initial (default: true)\n  --final-xor arg              Final xor (default: 0)\n  --probe-final-xor arg        Bruteforce the final-xor, overrides final-xor (default: false)\n  --probe-reflected-input arg  Probe for reflect input (default: false)\n  --probe-reflected-output arg Probe for reflect remainder output (default: false)\n\u003c/pre\u003e\n\n\nCredits\n--------\n\n* Martyn Pittuck (https://github.com/martynp) made a major rework of the code base and contributed a lot of code\n* Solomon Tan (https://github.com/solomonbstoner) fixed issues with reflection and improved example code generation","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitram2342%2Fbruteforce-crc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitram2342%2Fbruteforce-crc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitram2342%2Fbruteforce-crc/lists"}