I have a binary firmware image with a routine that I find hard to understand. I want to step through this encryption routine step by step so I can better understand it.
I was able to obtain all the data from the memory of the device: the firmware, the option banks, the RAM which includes the data to be encrypted, etc.. and all in raw bytes.
I know the location of the encryption subroutine and want to start stepping through the program at that point. I've analyzed the firmware as far as possible in IDA PRO.
The device has an ARM Cortex-M3, which uses the ARMv7-M instruction set. Here is the
data sheet
of the device.
What would be a good approach to do this?
Update 1 - sep 19 '16
I chose to emulate just the code snippet. However I'm slightly clueless what "configuration" to choose (configuring QEMU: step 5). The information that comes up when googling for the "Versatile" or the "Integrator" board doesn't make it more clear.
How can I determine what configuration to choose?