Copy compiled code?

Working with a legacy product where the client has lost their source code but have a working unit. They bought the cloning board, but apparently the “okay to clone” bit wasn’t set when the code was initially compiled.
I spoke to someone at customer support who said that “someone” had come up with a utility to clone boards that weren’t set up to be able to be cloned, but that it eventually went away because of security requirements. I wonder; do any of you have any information about this? I can rewrite their code, but it would be easier if we could just steal it from their existing machine.

Which Rabbit product? I recently added a sample that you can compile to RAM on many of the 4000/5000/6000-based products and download an image of the boot flash. See this commit for details: https://github.com/digidotcom/DCRabbit_10/commit/e13966ab30634cd4a46855dd4e274daa824bcad3

In that case, it’s dumping the entire flash including the UserBlock and SystemIDBlock (I needed it to analyze a FAT filesystem as part of the serial flash).

Depending on which product this is, and what communications hardware you have on it, you should be able to write a program that you compile to RAM on the board, which then dumps the flash in a way that you can create a .BIN file for installation via RFU (Rabbit Field Utility).

For serial flash products that support Remote Program Update (RCM4300 series, BL4S100 series, BL4S200, RCM5600W series and Rabbit 6000 based boards), you can use Samples/RemoteProgramUpdate/firmware_report.c to tell you what’s on the serial flash.

1 Like