CRC-32 Reverse Utility


Command line

crcrevrs \
    --address WRITE_ADDRESS \
    --crc CHECKSUM_VALUE \
    --input INPUT_FILE \
    --output OUTPUT_FILE \


  • address - address in firmware (shift from start of firmware file), where will be written correction value;
  • crc - checksum, what must be calculated after correction;
  • crc-at - address (shift from start of firmware file), where can be readed checksum, instead of using crc option;
  • input - original firmware file;
  • output - modified (corrected) firmware file;
  • verbose - show log;
  • version - show version.


$>crcrevrs.exe --crc 0x12345678 --address 10 --input file.bin --output file2.bin --verbose
Input file: file.bin
Output file: file2.bin
Address: 0x0000000a
Target CRC: 0x12345678

Opening file: 'file.bin'...
Allocated buffer, 20 byte(s)
Readed 20 byte(s)
Applying patch...
Calculating CRC forward...
... 0xaee5618c
Calculating CRC backward...
... 0x974189e6
Calculating stub data...
... 0x3aa46907
Applying stub...
Target CRC: 0x12345678, result CRC: 0x12345678

Opening file: 'file2.bin'...
Written 20 byte(s)


The site moves to GitHub Pages, in connection with which the Disqus Comments will be replaced by GitHub Issues (with only one authorization - GitHub).