I want to be able to read Flash memory from Microcontroller using CAN BUS, I was looking for the past few months for some resources to do that but didn't find any, i'm wondering how is that possible since some companies do that I'm looking for a simple example or explaination on how to accomplish that and which tools I need. Thanks
In the automotive domain take a close look at the Unified Diagnostic Services (UDS) protocol. Most modern cars implement at least some of the services provided by UDS, typically over the OBD-II CAN interface.
For reading out flash memory, service
$35 (Request upload) can be used, if implemented. However, most likely you will have to get security access via service
If the specific ECU you have implements flash reading CAN commands and if you know the command format (and possibly some password necessary to unlock them) then it may be possible.
Unfortunately to discover these commands you need to analyze the firmware so it is somewhat of a chicken and egg problem.