0

I am asking this question in a hope that someone might have done this before.I want to download software from embedded system so that modification can be done in the software. Is it possible to do and how? Information I have for the system is : Platform : iMX7 ARM

Thank you

Kian
  • 11
  • 5
  • You mean some kind of reverse engineering ? What do you want to get from the device ? Because you can read the ROM but all you will get is a binary code. What are you trying to achieve ? – GabrielT Apr 12 '21 at 09:36
  • It will all depend on the system, but as a general rule, no. You may be able to get the binary off, but no source. – Colin Apr 12 '21 at 09:36
  • Yes ,Reverse enginering,I need to get the source code . – Kian Apr 12 '21 at 09:44
  • 2
    Assuming a compilable source language like C or C++: After compiling and linking the software of an embedded system, only the resulting binary code is stored there. You **cannot** "download" source files or project files. (That is, in all cases I saw in my 40+ years of working in the industry. Some very _strange_ project _might_ store source files in the target system, but why should it?) – the busybee Apr 12 '21 at 09:54
  • No you cannot get the source code - there is no source code on the target. – Clifford Apr 12 '21 at 16:34

1 Answers1

3

Since the job of a C compiler is to translate source code to machine code assembler before the program is downloaded in a microcontroller, then no, you cannot upload C code from it.

Also, for the past 20 years or so, "copycat" read protection of microcontrollers has been a standard feature. Meaning an on-chip hardware restriction that forces you to erase the flash before you can access it. So it might even be impossible to upload the raw assembler.

In case the MCU isn't protected and you have the original debugger files corresponding to the code downloaded, then decent debuggers can connect to the existing program "on the fly" and then view it together with the C source, without re-programming anything. (This is useful for investigating NVM changes and memory corruption.) But again, you would need access to the original files.

Lundin
  • 195,001
  • 40
  • 254
  • 396