Given that these days everything has flashable firmware, what devices can be factory reset, or use a ROM for firmware ?
I think all SSDs can have their firmware overwritten… and I believe even SD and microSD cards can have their firmware overwritten?
I wonder if mechanical disk drives have a ROM or also have a flash that can be written to?
When devices are manufactured, the manufacturer has to upload the firmware, so I believe most devices will have a tool that we just don’t know about, that can flash a firmware. Most routers have a U-boot loader partition or CFE that is not written during firmware upgrade, so I wonder if there are any routers that can be restored to 100% factory.
Something like a Raspberry Pi4 has a EMMC, so I wonder if that can be flashed with 100% certainty …
If anyone knows of any devices that can be restored to factory with certainty, or with static firmware, it would be nice to know about them. I guess the only way for firmware to be static is to be a write-once chip … or for the manufacturer to specifically not allow writing to the chip in some way.
Spinning hard drives have terabytes of storage space. Not all of them is user-accessible. So yes, they can be written to. I don’t know if any of it is flash, but I would guess that there isn’t any flash in them.
I keep buying cheap routers and flashing them with OpenWRT, and while this won’t bring them to factory state, I do think that it’s possible to restore the ones I had to a known state quite reliably. That’s because they only have raw NAND and/or NOR storage.
eMMC is a tougher thing because it’s not a raw flash device, but contains software that may set a piece aside and do who knows what with it.
You’ll have a problem with any storage device that runs complicated software, i.e. anything that is not a dumb raw flash chip, including anything comprising of a dumb chip attached to a processor.
I was able to finally read the CFE on a RTN66U to make sure it’s the original one. However, on many routers it’s encrypted and cannot be read… the MAC address/device parameters will make every version look different when encrypted. The CFE is code that runs on startup, so even though it’s written to a dumb chip, if someone over-writes it, and it’s encrypted, there’s no way to find out.
Technically nobody should be able to re-encrypt and flash a modified version, but who knows. For quite a few routers, there are flashing utilities available.
How do you know that it can be written? The code used on startup on the i.MX8MQ on startup for example is stored in mask ROM to the best of my knowledge. There’s no altering that.
There’s a thread for RT-N66U on SNB forums for upgrading the CFE. On AsusWRT Merlin firmware it can be read and written to. On other firmware it shouldn’t be possible. I flashed Merlin firmware just to read the CFE… After all the work of comparing CFEs, and upgrading to latest OpenWRT, seems my laptop got infected with something as soon as I connected that router to the internet. Even after SSD replacement, I still got strange errors, and finally after pulling the battery and a 3rd SSD the laptop is running ok , but I haven’t connected back to the internet.
This router had been already acting strange that’s why I was checking it. It would run perfectly until connected to the modem, then the DHCP would stop working within a few minutes. Existing connections remained, but no IP assignment. Maybe a N66U facing the Internet is not a good idea.
Is PFsense the recommended solution when some devices cannot be trusted? I keep having strange things happen, so that’s why I asked which devices are more safe in the first place… My IP was part of a data leak a while ago, which likely led to someone getting in and planting something persistent in one or more of my lan devices. I tried to re-flash everything to keep things clean, but I recently I connected a T95Q android box that I hadn’t used since the data leak. I flashed it with a Turewell ROM I found on turewell.com , so I thought that should be clean it.
In the end, I think I need a very secure router that will separate all my devices, and monitor them for strange activity. Any recommendations?
Thank you!