Zwykle wykorzystywana jest tutaj mało znana i sporadycznie wykorzystywana dyrektywa %n, zapisująca w obszar pamięci wskazywany przez kolejny argument (który powinien znajdować się na stosie procesu) liczbę dotychczas zapisanych przez atakowaną funkcję znaków. Umiejętne użycie dyrektywy %n oraz dyrektyw określających liczbę znaków do wypisania, np. %<liczba>s, powoduje odwołanie się do, z pozoru przypadkowego, adresu z obszaru stosu programu i w wielu sytuacjach pozwoli na nadpisanie odpowiednio wybranych obszarów pamięci, w tym danych kontrolnych procesu.
Najczęstszy schemat wykorzystania podatności polega na nadpisaniu wskaźnika powrotu z funkcji (będącego wartością na stosie) przez zastąpienie go wskaźnikiem do kodu znajdującego na stosie, stercie lub w sekcji kodu procesu. W takim przypadku atak ten jest bardzo podobny do sposobu wykorzystania błędu przepełnienia bufora. Innym schematem jest nadpisanie danych (zmiennych), co może prowadzić do korzystnych, z punktu widzenia atakującego, zmian w przepływie sterowania procesu, np. eskalacji uprawnień.