İçindekiler:

Bu PNG Gizli Bölmedir: 4 Adım
Bu PNG Gizli Bölmedir: 4 Adım

Video: Bu PNG Gizli Bölmedir: 4 Adım

Video: Bu PNG Gizli Bölmedir: 4 Adım
Video: Brookhaven Gizli Bölgeleri Gösteriyoruz!! - Panda ile Roblox Brookhaven 2024, Kasım
Anonim
Bu Gizli Bölmedir
Bu Gizli Bölmedir
Bu Gizli Bölmedir
Bu Gizli Bölmedir

Senin meydan okuman sevgili okuyucu, senin için github'a koyduğum output-p.webp

Buradaki iki resim aynı görünüyor ama değiller Bunlar yukarıda bağladığım greenman-p.webp

Bu talimat, harika bir youtube videosundan ilham almıştır. Bir gün gece geç saatlerde bu videoyu izledikten ve ileri düzey bir Java programlama dersi için havalı bir ders ve ara sınav bulmaya çalıştıktan sonra bu proje doğdu. Yukarıdaki resimler, bu talimatta açıklanan kodla birlikte Github'da ücretsizdir.

Gereçler

Bir bilgisayara ihtiyacınız olacak ve bir Java programını nasıl derleyip çalıştıracağınızı bilmeniz gerekecek. Bu program sadece iki kısa dosyadır ve onu komut satırında çalıştırmanız gerekir.

Adım 1: Steganografi Nedir?

Bir önceki adımda linkini verdiğim youtube videosunu izlemelisiniz ama işte özeti:

Bir arkadaşınıza gizli bir mesaj saklamanız gerekiyorsa, bunu yapmanın harika bir yolu Steganografidir. Görüntü Steganografisi fikri basittir; bilgisayar görüntüleri piksellerden oluşur ve her piksel kırmızı, yeşil ve mavinin birleşimidir. Birçok bilgisayar görüntü formatında, her pikseldeki kırmızı, yeşil ve mavi miktarları 0-127 arasındaki değerler olarak ifade edilir. Örneğin, çok kırmızı bir pikselin kırmızı değeri 127 ve yeşil ve mavi değerleri sıfır olacaktır. İşin püf noktası şudur: 126'lık bir kırmızı yoğunluk, 127'lik bir kırmızı yoğunluktan (insan gözüne) ayırt edilemez. Ve böylece her kırmızı pikselde artı veya eksi bir ile oynayarak bitleri piksel olarak gizleyebiliriz. Bitleri geri toplamanın gizli bir yolunu bulursak, görüntüye gizlice soktuğumuz verileri alabiliriz!

Yaratıcı ol! Steganografi herhangi bir dijital medya ile yapılabilir! Örneğin, müzik veya video dosyalarındaki bitlerle oynayabilirsiniz, ancak bu, bu talimatın kapsamı dışında daha fazla araştırma yapmanızı gerektirir.

2. Adım: Bilgisayarlarda Metin Nasıl Kodlanır?

Bilgisayarlarda Metin Nasıl Kodlanır?
Bilgisayarlarda Metin Nasıl Kodlanır?

Burada aşağıdakiler, CS'de bir derece veya anlamak için bir çok hobi tutkusu gerektirebilir. Bilgisayarlar verileri 1'ler ve 0'lar olarak bitler halinde depolar. Bu 1'ler ve 0'lar tipik olarak 8'li gruplar halinde gruplanır ve "bayt" olarak adlandırılır. Burada ve burada açıklandığı gibi, bir bilgisayara baytları metin olarak yorumlamasını söylemenin birkaç yolu vardır. Bu steganografi dersinden/eğitiminden en iyi şekilde yararlanmak için ASCII ve UTF8'i az çok anlamanız gerekir. Bunlar, dil verilerini bir dizi bayta kodlamanın iki yaygın yoludur.

Bu konu hakkında bir fikriniz olduğunda şunu anlayacaksınız: ASCII ve UTF8'de "the" kelimesi aşağıdaki baytlarla (onaltılık olarak) 0x74 0x68 0x65 ile temsil edilir. İkili sistemde bu baytlar: 01110100b 01101000b 01101101b

Ayrıca, UTF8'de bir Sırıtan Yüz Emojisinin aşağıdaki baytlarla (onaltılık olarak) 0xF0 0x9F 0x98 0x80 temsil edildiğini anlayacaksınız. İkili sistemde bu baytlar 11110000b 10011111b 10011000b 10000000b'dir.

Her halükarda, ekteki ekran görüntüsünde bilgisayarımın bu baytlarla bir şeyler yaptığını göreceksiniz. Bunları program çıktısında oklarla ve büyük bir "LOOK!" ile vurguladım.

Adım 3: Program Nasıl Çalışır?

Programı github'dan derlemek kolaydır. Ön sayfada gösterilen repoyu buradan alın ve ardından

Program komut satırından şu şekilde çalıştırılır: Java Main input-p.webp

ekli örneklerde java Main greenman-p.webp

Aynı şeyi yapacaksın.

Main.java'ya bakarsanız, olanın bu olduğunu göreceksiniz:

  1. Program görüntüyü 2B diziye okur
  2. Program, verdiğiniz mesajı bir bayt dizisine dönüştürür (bayt)
  3. Program daha sonra görüntü dizisindeki mesaj baytlarını gizlemek için bir MessageHider sınıfını kullanır.
  4. Program daha sonra görüntü 2d dizisini, içindeki gizli verilerle bir dosyaya (output.png) yazar. Bu resme bakarsanız, orijinalinden ayırt edilemez.
  5. Program daha sonra output-p.webp" />

Yani hemen hemen kod beklediğimiz gibi çalışıyor.

4. Adım: Sonuç

Bu yüzden size bazı çalışma kodları verdim, bunun bir resim şeklinde çalıştığını kanıtladım ve üniversite öğrencilerime verdiğim bazı ders notları. Ben de sana bir meydan okuma verdim! Kodu yazmak ve ders notları hazırlamak için birkaç saat harcadım, bu yüzden bu talimatta çok fazla resim olmadığı için üzgünüm. Steganografinin ilginç olduğunu düşünüyorsanız, lütfen meydan okumamı kabul edin!

Önerilen: