รูปภาพ BMP (DIB) ประกอบด้วยส่วนหัวตามด้วยข้อมูลสี1สีที่ไม่มีการบีบอัด(สำหรับภาพ 24 bpp จะมีขนาด 3 ไบต์ต่อพิกเซลโดยจัดเก็บในลำดับแถวย้อนกลับและมีการก้าวข้ามแถว 4 ไบต์)
ไบต์สำหรับข้อมูลสีถูกใช้เพื่อแสดงสี (กล่าวคือไม่มีการ "บังคับ" โดยรูปแบบไฟล์2ทั้งหมดมาจากสีของแต่ละพิกเซล) และมีความสอดคล้องกัน 1: 1 ที่สมบูรณ์แบบระหว่างสีพิกเซลและไบต์ที่เขียน ในไฟล์; ดังนั้นการใช้สีที่เลือกอย่างสมบูรณ์คุณสามารถเขียนอะไรก็ได้ที่คุณต้องการในไฟล์ (ยกเว้นส่วนหัว)
เมื่อคุณเปิดไฟล์ที่สร้างขึ้นในแผ่นจดบันทึกข้อมูลสีจะแสดงเป็นข้อความ คุณยังสามารถเห็นได้อย่างชัดเจนจากส่วนหัว (ส่วนจากBM
ถึงจุดเริ่มต้นของข้อความ) ซึ่งได้รับคำสั่งจากรูปแบบไฟล์
ในความคิดของฉันวิดีโอนี้ทำด้วยวิธีนี้: ก่อนอื่นผู้เขียนคำนวณขนาดที่จำเป็นสำหรับบิตแมปและสร้างไฟล์ DIB ในขนาดที่ถูกต้องซึ่งเต็มไปด้วยสีที่ขยายเป็นรูปแบบง่ายๆ (เช่นไบต์ทั้งหมด 65 => 'A'
); จากนั้นแทนที่รูปแบบดังกล่าวด้วยรหัส "payload" ดังที่แสดงในวิดีโอ
อย่างไรก็ตามโปรดสังเกตว่ามันเป็นไปไม่ได้เลยที่จะประดิษฐ์สิ่งของทั้งหมดด้วย notepad ด้วยกล่องโต้ตอบตัวเลือกสีตาราง ASCII และความรู้พื้นฐานเกี่ยวกับรูปแบบ DIB ที่สามารถทำได้ แต่มันจะช้ากว่ามากและเกิดข้อผิดพลาดได้ง่าย
ข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบ DIB
- มี RLE ที่บีบอัด DIB แต่ในกรณีนี้จะใช้บิตแมปที่ไม่บีบอัด (และจะใช้ไม่ค่อยได้จริง ๆ )
- ยกเว้นการก้าวย่างที่หลีกเลี่ยงการใช้แถวที่มีหลาย 4 ไบต์