V informatice je NOP nebo NOOP (zkratka pro angličtinu: „ No OP eration “) instrukce procesoru v jazyce symbolických instrukcí nebo instrukce protokolu , která nenařizuje nic nedělat.
Instrukční sada mnoha procesorů obsahuje instrukci, jejímž účelem není změnit stav jakéhokoli registru nebo paměťového místa , ale strávit určitý počet cyklů procesoru. U těch procesorů, ve kterých není žádná speciální instrukce, je NOP napodoben nějakou jinou instrukcí s takovými parametry, aby se registry a příznaky neměnily (např. u procesorů SPARC se jako NOP doporučuje instrukce " sethi 0, %g0 " ) . .
NOP se běžně používají:
Pokyny pro procesory kompatibilní s Intel x86 :
Instrukce NOP pro procesory x86 je ve skutečnosti XCHG EAX, EAX nebo XCHG AX,AX , která má stejný operační kód 0x90 a nemá žádný účinek kromě následujících speciálních případů:
„NOP's track“ nebo „NOP's springboard“ je známá hackerská technika spojená se spouštěním libovolného kódu .
Nejčastějším důvodem pro svévolné spuštění kódu je přetečení vyrovnávací paměti . Často je však adresa, která bude zapsána místo návratového bodu, známa jen přibližně. V tomto případě se vygeneruje následující kód.
ne ne ... ne ne <zde škodlivý kód>Po přepnutí na kterýkoli z NOP se procesor nakonec „sroluje“ do nebezpečné oblasti.
Mnoho protokolů, jako je telnet , obsahuje příkaz NOP, který může klient odeslat, aby získal odpověď ze serveru, aniž by dělal cokoli jiného. Příkaz NOOP je přítomen v následujících nejznámějších protokolech:
Možná použití příkazu NOP: