Część programów crackme zawiera kod wykrywający różne narzędzia, którymi często posługują się crackerzy (np. OllyDbg, SoftICE). Kod ten stosowany jest aby utrudnić analizę kodu crackme. Czasami należy zneutralizować taki kod, aby poprawnie rozwiązać dane crackme.

Przykładowo prosty program CrackMe może wyglądać następująco: #include <iostream>

using namespace std;

int main() { int serial = 123; int liczba;

cout << "Podaj serial:" << endl; while(true)

cin >> liczba;

if (liczba == serial)

cout << "Gratuluję, podany numer jest prawidłowy!" << endl; cout << "Koniec programu." << endl; return 0;

else

cout << "Numer nieprawidłowy." << endl;

Po skompilowaniu i przeanalizowaniu programu np. narzędziem IDA widać, że aby obejść zabezpieczenie wystarczy zmienić instrukcję jnz (skocz jeżeli nie zero) na jz (skocz jeżeli zero) i program zaakceptuje każdy numer seryjny poza oryginalnym (w tym wypadku 123). Nieskrakowany program skacze do funkcji wyświetlającej komunikat o dobrym numerze seryjnym, jeżeli wpisany numer jest identyczny z tym zapisanym w programie, natomiast program skrakowany w podany sposób działa odwrotnie.