Heap spraying เป็นเทคนิคการแฮ็คที่ใช้ในการหาช่องโหว่ในซอฟต์แวร์คอมพิวเตอร์ มันทำหน้าที่ควบคุมโปรแกรมโดยการใช้ประโยชน์จากส่วนหนึ่งของหน่วยความจำ เมื่อส่วนหนึ่งของหน่วยความจำถูกควบคุมโดยรหัสการแฮ็กแฮ็กเกอร์สามารถควบคุมการดำเนินการของรหัสโดยใช้บัฟเฟอร์ล้นในพื้นที่กองของหน่วยความจำ แอปพลิเคชันที่พบบ่อยที่สุดสำหรับการสเปรย์ฮีปคือการแฮ็คเว็บเบราว์เซอร์เช่น Internet Explorer®
"ฮีป" คือบล็อกหน่วยความจำแบบไดนามิกที่คอมพิวเตอร์กำหนดให้กับโปรแกรมเฉพาะดังนั้นมีการตั้งชื่อเพราะคอมพิวเตอร์อุทิศกองจำหน่วยความจำเสมือนให้กับโปรแกรม อาจเป็นเหมือนพื้นที่จัดเก็บในตู้เสื้อผ้าหรือโต๊ะทำงาน หน่วยความจำฮีปนี้เป็นของโปรแกรมจนกว่าทั้งซอฟต์แวร์หรือรหัสชุดรวบรวมของระบบปฏิบัติการจะปล่อยออกมา รหัสการรวบรวมเป็นเพียงอุปกรณ์ที่ไม่ปลอดภัยที่จะเรียกคืนหน่วยความจำหากโปรแกรมขัดข้องหรือซอฟต์แวร์เองไม่สามารถปล่อยหน่วยความจำหลังจากที่ยุติการใช้งาน
ในการสเปรย์ฮีปแฮ็กเกอร์พยายาม "สเปรย์" ฮีปหน่วยความจำด้วยรหัสเฉพาะส่วน เป้าหมายคือการวางโค้ดในตำแหน่งที่เฉพาะเจาะจงภายในฮีปหน่วยความจำของโปรแกรมเช่นการวางชะแลงเข้าไปที่ขอบของวงกบประตูเพื่อให้เลเวอเรจสามารถเปิดประตูได้ หลังจากข้อมูลถูกใส่เข้าไปในหน่วยความจำฮีปผ่านการพ่นความร้อนแฮ็กเกอร์สามารถล้นได้ทั้งฮีปหรือบัฟเฟอร์หน่วยความจำทั้งหมดทำให้เกิดข้อผิดพลาดภายในระบบ เมื่อเกิดข้อผิดพลาดแฮ็กเกอร์สามารถใช้ประโยชน์จากพวกเขาเพื่อรันโค้ดของตัวเองในระบบ
การสเปรย์ฮีปทำงานได้เนื่องจากการจัดสรรหน่วยความจำในระบบแบบไดนามิก โปรแกรมคอมพิวเตอร์นั้น "เป็นเจ้าของ" หน่วยความจำทั้งหมดในขณะนี้ดังนั้นแฮกเกอร์ก็รู้ตำแหน่งที่สัมพันธ์กันภายในหน่วยความจำที่คอมพิวเตอร์กำหนดให้กับโปรแกรม ดังนั้นแฮ็กเกอร์จึงต้องการความจำเพาะเล็ก ๆ น้อย ๆ ในการใส่รหัสลงในรอยแตก เขาสามารถพ่นรหัสอย่างสุ่ม ๆ รู้ว่ากลุ่มของหน่วยความจำจะอยู่ที่นั่นตราบใดที่โปรแกรมยังคงทำงานต่อไป นี่อาจเทียบกับการพยายามเลือกล็อคในขณะที่ปิดตา งานแทบจะเป็นไปไม่ได้เลยถ้าล็อคเคลื่อนไปมา แต่ตราบใดที่มันยังคงอยู่ในที่เดียว - เช่นเดียวกับจำนวนหน่วยความจำในระบบ - งานจะเกิดขึ้นได้


