Extracting the data
For cases where we don't have the data already (that is, we did not succeed in getting updates), we need to extract the data from its storage place to our computer. Being able to process and modify the data on a computer will allow us to use higher-level programming languages and tools.
Let's have a look at the most common things we have to extract.
On-chip firmware
Most micro-controllers will embed their programs (that is, their firmware), at least partially, on on-chip (or on-module) flash or other forms of storage, such as EEPROM. The worst-case scenario for us is cases where programs are stored in One-Time Programmable (OTP) memory, such as the MCU used in furbies or most low-end calculators for example (they can come with in a mask ROM that is integral to the making of the chip silicon or a real memory that can be programmed only once) or a lot of very cheap MCUs.
For example, most ARM chips come with on-chip flash. The ESP family of chips has a flash...