Shellcode เป็นลำดับของรหัสเครื่องหรือคำสั่งที่สามารถเรียกทำงานได้ซึ่งจะถูกส่งเข้าไปในหน่วยความจำของคอมพิวเตอร์ด้วยเจตนาที่จะควบคุมโปรแกรมที่กำลังทำงานอยู่ ในการโจมตีดังกล่าวหนึ่งในขั้นตอนคือการได้รับการควบคุมของตัวนับโปรแกรมซึ่งระบุคำสั่งต่อไปที่จะดำเนินการ การไหลของโปรแกรมสามารถเปลี่ยนเส้นทางไปยังรหัสที่แทรก รหัสเครื่องที่ล่วงล้ำเรียกว่าเพย์โหลดของการโจมตีและเป็นองค์ประกอบทั่วไปที่อ้างถึงโดยคำว่า shellcode วิธีนี้มักใช้เพื่อให้สิทธิ์การเข้าถึงของผู้โจมตีโดยการเปิดเชลล์คำสั่งระบบปฏิบัติการดังนั้นการโจมตีการฉีดโค้ดโดยทั่วไปจึงเป็นที่รู้จักกันในชื่อ shellcode
ช่องโหว่ที่ถูกโจมตีมักจะเกี่ยวข้องกับวิธีที่โปรแกรมกำหนดหน่วยความจำตรวจสอบความถูกต้องของข้อมูลอินพุตและจัดการข้อผิดพลาดของหน่วยความจำ ผู้พัฒนาซอฟต์แวร์มักจะสามารถหลีกเลี่ยงภัยคุกคามนี้ได้โดยการกำหนดข้อมูลอินพุตและปฏิเสธค่าที่ไม่เหมาะสมอย่างเคร่งครัด หากไม่ถูกตรวจสอบค่าที่ต้องการพื้นที่เก็บข้อมูลมากกว่าหน่วยความจำที่จัดสรรไว้สำหรับค่านั้นอาจได้รับการยอมรับ สิ่งนี้ทำให้ก้นความปลอดภัยเรียกว่าบัฟเฟอร์โอเวอร์โฟลว์โดยที่ส่วนหนึ่งของข้อมูลถูกเขียนลงในตำแหน่งหน่วยความจำที่อยู่ติดกับพื้นที่ที่กำหนดของค่า เมื่อจัดการอย่างระมัดระวังความผิดปกตินี้สามารถอนุญาตให้มีการแนะนำรหัสล่วงล้ำ
โดยปกติแล้ว Shellcode จะเขียนด้วยภาษาการเขียนโปรแกรมที่มีการเข้าถึงระบบในระดับต่ำเช่นชุดประกอบ C หรือ C ++ อย่างไรก็ตามขึ้นอยู่กับช่องโหว่เป้าหมายเป้าหมายผลลัพธ์เดียวกันอาจเกิดขึ้นได้โดยการใส่รหัสสำหรับภาษาสคริปต์ที่แปลเช่น PERL หรือ bytecode สำหรับเครื่องเสมือนเช่น JAVA รหัสสามารถปลูกฝังก่อนระหว่างหรือหลังจี้ของเคาน์เตอร์โปรแกรม ดังนั้นรหัสที่ล่วงล้ำอาจอยู่ในไฟล์บนเครื่องเป้าหมายหรือส่งผ่านการเชื่อมต่อเครือข่ายแบบเรียลไทม์
การหาช่องโหว่ shellcode ในเครื่องได้รับการออกแบบมาเพื่อให้ผู้โจมตีสามารถควบคุมเครื่องที่เขาหรือเธอเข้าถึงได้ วัตถุประสงค์ในกรณีนี้อาจเป็นการสร้างบัญชีที่มีสิทธิ์ผู้ดูแลระบบตัวอย่างเช่น ในทำนองเดียวกันหากกระบวนการที่กำลังรันมีระดับสิทธิ์สูงการหาช่องโหว่ที่ประสบความสำเร็จจะให้สิทธิ์การเข้าถึงแก่ผู้บุกรุกในระดับเดียวกัน
กระบวนการที่ทำงานบนเครื่องระยะไกลสามารถใช้ประโยชน์ได้โดยใช้โปรโตคอลเครือข่ายมาตรฐานเพื่อสื่อสารกับคอมพิวเตอร์เป้าหมาย Shell-back shellcode สั่งให้เครื่องเป้าหมายเพื่อเริ่มต้นการเชื่อมต่อกับคอมพิวเตอร์ของผู้บุกรุก หากผู้บุกรุกเริ่มต้นการเชื่อมต่อรหัสนั้นจะเรียกว่า bindshell เนื่องจากจะพยายามควบคุมการเชื่อมต่อเครือข่ายที่เรียกว่าพอร์ตในเครื่องระยะไกล วิธีการเชื่อมต่อกลับใช้กันอย่างแพร่หลายมากขึ้นเนื่องจากไฟร์วอลล์ไม่ค่อยห้ามการเชื่อมต่อขาออก


