NOP

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.

NOP jako strojová instrukce

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ů:

Skladba NOP

„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.

NOP v příkazech protokolu

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:

Viz také