Electronic – Reading RAM externally in a running system by intercepting the memory bus or replacing the RAM chips

busmemoryram

I wonder if it is possible to modify a consumer electronic system (TV, phone, embedded device, etc.) so that it is possible to read and possibly write the contents of its RAM chips while system is running, without adding any software to the target device.

I'm not very familiar with hardware, but I guess a solution could possibly involve soldering something on the pins of the RAM chip, so that signals are intercepted, and then "replaying" the writes to an internal RAM, effectively creating a synchronized copy of the device RAM.

The internal RAM could then have a second port that would allow the user to read it, for example via a controller exposing an USB mass storage interface.

Alternatively, without the second port, the controller could perhaps give the original device access to the internal RAM when it is writing, and instead replace reads with the reads issued by the user to examine the RAM when it is reading.

Or for DRAM chips refreshed by the controller, it could filter out all access except writes used for DRAM refresh (by detecting a refresh and then using a timer), and then pass examination reads at times when DRAM refresh is not happening.

An alternative design could be to replace the RAM chip with a dual ported RAM, and then wire the original port to the target device, and the other port to the controller allowing to read or write it.

This latter design would also allow to write the RAM in addition to reading.

Alternatively, one could maybe attempt to process the stream of RAM signals in software instead of sending it to a RAM chip, but it seems this would be far more complex and expensive due to the high data rate (which might require splitting the stream and processing it with a cluster of machines).

Precisely, the questions are:

  1. Is it possible at all?

  2. Is it feasible to do this on commercially produced motherboards with soldered RAM chips found on consumer electronic devices?

  3. Are there any off-the-shelf devices that can do this?

  4. If not, what would be the cheapest/simplest way of building a single copy of such a device with only read support? What about write support? (assuming everything beyond the target device and a normal PC has to be bought)

This is a general question regarding SRAM, DDR, LPDDR, GDDR, Rambus, etc. chips.

Best Answer

Is it possible at all?

Well, maybe yes.

Is it feasible to do this on commercially produced motherboards with soldered RAM chips found on consumer electronic devices?

Definitely no. Connecting wires to the lines between the CPU and the RAM without disturbing communications is extremely difficult. The faster the bus is, the more difficult this is. Replacing the RAM chips with something (a larger FPGA + external RAM would probably suffice) that "simulates" a RAM chip to the modified system and does whatever you want with the data is probably a lot more feasible.

Are there any off-the-shelf devices that can do this?

Most probably no.