Getting into EMFI for 30€ thanks to globalization

Guillaume Quéré


This article is a summary of my 2026 BeerRump presentation in Paris.

Introduction

Hardware attacks that were deemed lab-grade in the middle of the 2010s are now in my opinion basic attacks that everyone should be able to perform even with a constrained budget. My whole point is that the attacker’s bar has been dramatically lowered, which means it’s up to defenders to evenly raise theirs.

This stems from two combining trends:

Enter the FaultyCat

A few months back I came across a Reddit post in which a user asked about a FaultyCat clone he found on AliExpress. The FaultyCat is itself a clone of the open-source PicoEMP, which I own and have been using with great success on all manner of MCUs (and even SoCs!). The trouble everyone encounters when trying to get a PicoEMP is that they’re always out of stock. It’s also difficult to build one yourself because finding all the components in one place is a hassle, some are hard to source and some have been superseded by now. This costs money and more importantly wastes a lot of time. So at 30 euros it’s a no-brainer and I got one just to try it.

AliExpress listing for FaultyCat

Upon receiving it a week later I visually compared the power rails. As expected, they’re essentially the same: Injection circuit comparison

Before using it efficiently, a few things had to be addressed first.

Ditch the probe and make your own

The EM injection probe that comes with this version of the FaultyCat I found to be empirically bad with a dramatically low injection success with all other parameters fixed. This could be due to the target but I’ve also tested several MCUs from different semiconductor companies and it performed badly.

Be smart, recycle

I think there are two problems with this probe:

This is the perfect excuse to build your own injection tips!

Making your own EM injection tips

These are the parameters that define a coil:

To keep it simple start with 744710603 or 744710203 Würth chokes and expand from here. Remove as many turns as needed, solder both ends to a male SMA connector in either CW (usually preferred but try both!) or CCW and remove the excess ferrite using clippers and a file:

EMFI injection tip

This is the first coil (3mm ferrite core, CW, 11 turns) I made, it arguably has too many turns but I have great success with it and it’s my default coil for most EM injection setups.

Ditch the firmware

This is a problem I also had with the original PicoEMP: the firmware has a permanent UART listening thread to configure its properties and state. This means you need to send a UART command to re-arm it after each EM shot. And at some point (less than an hour) this thread crashes and the whole setup must be power-cycled. This is in my opinion a bad design, I’d rather have the tool be externally triggered and do nothing but fire when it gets a trigger signal.

I’ve pushed a release of the compiled firmware and of the code in a repo here.

A word of warning: with this version the FaultyCat is permanently armed. This means you should never handle it with your hands and always wait a few seconds after powering it off before handling it. Don’t be a retard here, there’s a chance you might die. If you are easily distracted maybe EMFI isn’t the best technique for you.

EMFI 101

Why do EMFI when you could do a simple voltage fault injection?

Voltage fault injection is simple because you only need to control 2 parameters:

VFI parameters

But the problem with VFI is that all of the capacitors on the board (including but not limited to the decoupling capacitors) are working against your glitch. You could either:

EMFI injection tip

Both these solutions have the potential to be destructive.

Another issue with VFI is that some MCUs really hate being glitched this way, for instance I’ve played with a few Atmel MCUs that simply died after a few hundred injections.

Lastly VFI has a global effect on the chip power rails. In some cases this works fine but in some other cases spatialization (e.g. targeting a specific power rail or a specific portion of the die) is an important part of the glitch.

VFI can be highly effective when applicable but it’s very intrusive. This is why more and more people are migrating towards EMFI. That being said I strongly recommend you master VFI before moving on to EMFI because it’s a more challenging technique and you will need strong fundamentals to further build upon.

EMFI parameters

There are a number of parameters that EMFI adds but we’ll keep things simple at first:

When using a powerful injection setup, Z and the injection voltage are coupled and iterated upon depending on whether a glitch or a reset was obtained at a certain spot. The PicoEMP/FaultyCat is not exactly concerned by this because of how weak it is. This means only X and Y need to be varied to characterize a chip.

Varying X and Y

If you have an old 3D printer, now is the time to put it to good use: 3d printer

A popular alternative is to use a CNC such as the 3018: CNC

Both have two main characteristics: precision and repeatability. For MCUs a precision of 0.1mm is good enough and these two will achieve this pretty easily. Repeatability is the characteristic of coming back to the origin point and it’s actually pretty important to build coherent heatmaps. Both are good enough for what we’re doing here, but the CNC might suffer from more backlash whereas the belt system of the 3D printer might actually make it better. Anyway, go for the cheapest available.

Effects of varying X and Y on the fault model

These are three successful EM faults at three different spots on the same chip (it’s not actually a STM32 ;)):

Localization

As you can see the top waveform looks incredibly similar to a voltage glitch: a negative voltage was induced in one of the power rails and that produced a successful fault. On the opposite side (maybe because of a copper loop?) the effect is reversed and a positive voltage was induced. And right in the middle (probably on the die), no current was induced on the power rail but a successful fault was achieved anyways. This suggests that we’ve hit at least two different fault models.

Characterization of a new target

Whether you’re doing VFI, EMFI or any other more advanced technique it is paramount to start with an unhardened whitebox target so that its behaviour can be fully understood before moving on to a hardened blackbox.

This part will be covered in a future post on a previously undocumented target. In the meantime, here’s the method:

EMFI heatmap

Limits of the PicoEMP/FaultyCat

When compared to other hardware the PicoEMP design really is a toy so don’t expect too much from it. It has fundamental limits:

Alternatives

Supercharging the PicoEMP

Incredible talk by RECESSIM at hardwear.io. He essentially fixed the rise time, voltage limit AND recharge time by supplying his own power source to the PicoEMP. But it’s not an out-of-the-box option and is a whole project of its own that not everybody can tackle.

SiliconToaster

This is a project by Ledger that has several very interesting features such as dual inverted connectors so you don’t have to double all your coils. It’s extra powerful and to some extent can multi-glitch. However it provides no galvanic isolation between the power stage and the control, personally I won’t use it for this reason and find it very dangerous both to humans and to the electronics bench built around it.

ChipShouter by NewAE

ChipShouter

The NewAE ChipShouter comes with a hefty price tag of $5000 but is the basis for most EMFI research nowadays. Unfortunately it’s priced beyond the reach of most hobbyists and independent researchers. I wish I had one of these! (or that someone built a clone)

Keysight/Riscure

Riscure EMFI setup

Dream on, this setup starts at $100k. It’s a top-of-the-line, lab-grade equipment used by labs to test chips against advanced attacks, such as required by the SESIP and PSA certifications.

I managed to pull a few prices from their website:

Conclusion

EMFI takes a lot of experimenting to get into but is in my opinion nowadays a mandatory technique to apply on hardware audits. I hope this article convinced you to give it a try!