NOP (datavitenskap)

NOP ( N eller OP eration) er en monteringsinstruksjon , hvis formål er å tillate utførelsesenheten til rørledningen å gå på tomgang i N klokkesykluser (hvor N endres avhengig av prosessoren som brukes), som kan utledes av navnet, derfor gjør ingenting.

Analyse av NOP-instruksjonen

De fleste av instruksjonssettene som tas i bruk av store CPUer inkluderer en instruksjon som i hovedsak ikke gjør noe for N klokkesykluser uten å forårsake noen endring i databaneregistrene .

Kjennetegn ved denne instruksjonen i x86- arkitekturer :

Funksjoner i ARM-arkitektur :

Programmering

NOP-instruksjonen tar derfor opp tid og minne, men har sin nytte i programmeringsverdenen (i tillegg til å skape konvensjonelle forsinkelser og minneplassreserver), og løser noen problemer kalt "hazards", det vil si de typene konflikter og inkonsekvenser som kan forekomme innenfor en pipeline under programkjøring. Instruksjonen kan også brukes til å løse grenforsinkelsessporproblemer på en ineffektiv måte.

I modifikasjon av kjørbar kode kan NOP-instruksjonen brukes til å eliminere uønskede instruksjoner ved å erstatte / dekke dem med NOP. I dette tilfellet kan instruksjonene derfor brukes både til å feilsøke og knekke en programvare.

Hacking / Cracking

Overløp (NOD)

Når vi utnytter de viktigste tilfellene av stabler og heap-overflow , står vi overfor en shellcode- standard som ser bufferen organisert på denne måten:

Opcode for funksjonen [eks. execve ()] Returadresse (gjentatt) [--------------- 40bytes ------------] [------------ 60bytes ----- --------]

I scenariet ovenfor er angriperen forpliktet til å vite den nøyaktige minneplasseringen til skallkoden du vil at programmet skal kjøre.

Ved å fylle et X-rom med NOP før skallkoden vår , og returnere funksjonen til et tilfeldig punkt i minnet der en av NOP-ene våre befinner seg, vil prosessoren utføre hver instruksjon fra det punktet, opp til skallkoden vår . Denne operasjonen kalles NOD eller NOP Sled .

Nop Sled (NOD) Opcode for funksjonen [eks. execve ()] Returadresse (gjentatt) [--- 100bytes ---] [-------------- 40bytes -------------] [-------- --- 60 bytes -------------]

I motsetning til bekvemmeligheten av bruken av denne metoden, er det å vurdere at vår shellcode vil kunne gjenkjennes av ethvert IDS -system som gir beskyttelse mot lignende angrep.

NOD-en som er satt inn i en skallkode ser slik ut: / x90 / x90 / x90 / x90 / x90 / x90 / x90 / x90 / x90 / x90 [...]