Gli shellcode sono tipicamente inseriti nella memoria del computer stfruttandosfruttando [[buffer overflow]] nello [[stack]] e nell'[[heap]], o tramite un [[format string attack]]. L'esecuzione dello shellcode può essere ottenuta sovrascrivendo l'indirizzo di ritorno dello stack con l'indirizzo dello shellcode. In questo modo quando la ''subroutine'' prova a ritornare al chiamante, ritorna invece al codice dello shellcode che apre una riga di comando che può essere usata dal cracker.