Laser Fault Injection on a Budget: RP2350 Edition (2025)
courk.cc
courk.cc
Safetynet is a complex dance of crypto-keys, involving your phone and googles server. It generates a key from whatever state your uninitialized ram happens to land in (which is pretty consistent per chip and is a good source of randomness), uses that to generate a key, uses that key as a chain of trust to tell google whether or not you've modified your phone. It's some complicated stuff.
But if you can extract that key, or the source of data used to generate that key, you can trick safetynet fully and run your own software again. So how do we get that key?
Well maybe we can stop the safety processor from clearing that memory so we can read it? Glitch the chip when it tries to clear memory, so clearing memory fails. Or maybe we can glitch the part of the chip that keeps you from reading the region of memory where this finished key is kept, after it's already read that memory.
Basically you can use this kind of attack to make a chip sometimes fail when it goes to do or check something, including checking whether you should be able to extract a key.
This technique applies to reverse engineering as a whole, whether it's a state level actor reverse engineering military hardware, or you trying to run your own software on a device you own.
---
Note the android example isn't practical, you'd need to like decap the main chip and a whole lot else. This technique can work with side-channel power-analysis, which can help you figure out exactly what data a program is using by looking at how much electricity it used to run.
However the expertise and diligence required to solve so many problems in building the platform is absolutely exceptional!!
https://epc-co.com/epc/products/evaluation-boards/epc9172
That way the 1.4 Ohm resistor doesn't eat like 60-80% of the energy (40amps drop around 60V for an instant 240W in the resistor vs the foward voltage of the diode which is like 1.5V or so for the 60W peak).
Building optically precise platforms with bearings and sliding surfaces is annoying and difficult. But it turns out you can do pretty dang well with applying force to bendy metal or plastic.
There are also easier options if you spend some time with a specific use case. =3
For what purpose? Curious