How to guess CRC type, polynomial, init value, data feed order/endian if we have given block of data and it's corresponding CRC

Many systems have a tampering protection using a CRC checked in hardware (ASIC/chipset) or by the BIOS/Early stage boot loader.

This may help:
https://yurichev.com/news/20211114_find_CRC/

Also, comments: https://www.reddit.com/r/ReverseEngineering/comments/qzkork/reveng_find_crc_utility/

Also: “13.4 Getting CRC polynomial and other CRC generator parameters”
Here: https://sat-smt.codes/SAT_SMT_by_example.pdf

:+1:i will check it now, i had a case when the CRC was checked from FPGA externally while the CPU was held in reset, then if check passes it releases it and booting normal…
FPGA was ALTERA CYCLONE MAX II, so I assumed that the engineers have used some ready CRC VHDL code. I installed Altera Quartus and I saw there is a wizard for building CRC checkers easily… but I needed the poly, init value, xor in/out, reflection and data feed scheme because the CPU was BIG ENDIAN - Freescale CoolFire, I was not sure in what order to fetch and feed the 32bits from the flash data to the CRC… also location of the checksum placeholder was not at the very end, but somewhere before it, I found the exact spot by comparing different versions of the same code, and luckily there were some with minor differences only few bytes altered, and except that, only the checksum was different…