İçindekiler:
- Gereçler
- Adım 1: Steganografi Nedir?
- 2. Adım: Bilgisayarlarda Metin Nasıl Kodlanır?
- Adım 3: Program Nasıl Çalışır?
- 4. Adım: Sonuç
Video: Bu PNG Gizli Bölmedir: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-31 10:26
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?
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:
- Program görüntüyü 2B diziye okur
- Program, verdiğiniz mesajı bir bayt dizisine dönüştürür (bayt)
- Program daha sonra görüntü dizisindeki mesaj baytlarını gizlemek için bir MessageHider sınıfını kullanır.
- 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.
- 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:
Mikro Bit Kullanarak Gizli Bir İletişim Oluşturucu Nasıl Yapılır: 9 Adım
Micro Bit Kullanarak Gizli Bir İletişim Oluşturucu Nasıl Yapılır: You tube chanal.here'den aldığım 'diğer makineler'den ilham aldım. diğer mikro bit-güç bankaları için- Bunun için ekstra kod
Gizli Duvar Tipi Ev Otomasyon Tableti: 6 Adım
Gizli Duvara Monte Ev Otomasyon Tableti: Bu talimat, bir openHAB tableti (https://www.openhab.org/) için tabletin herhangi bir zamanda çıkarılabileceği, nerede şarj edileceği bir bağlantının nasıl oluşturulacağını ele alacaktır. kablo ve tablet olmadığında duvarın tamamen normal görünmesini sağlayın
Gizli Bölmeli Yüz Tanıma Aynası: 15 Adım (Resimli)
Gizli Bölmeli Yüz Tanıma Aynası: Hikayelerde, filmlerde ve benzerlerinde kullanılan, sürekli yaratıcı gizli bölmeler her zaman ilgimi çekmiştir. Bu yüzden, Gizli Bölme Yarışmasını gördüğümde, bu fikri kendim denemeye ve bir pencere açan sıradan görünümlü bir ayna yapmaya karar verdim
Gizli Anahtarlı Dahili Gizli USB Stick: 5 Adım
Gizli Anahtarlı Dahili Gizli USB Çubuğu: Son zamanlarda, Tails OS*'nin her zaman yanımda ikinci bir işletim sistemi olarak olmasını istediğim sorunu yaşadım. Ama ben bir USB çubuğu taşımak istemedim ve geliştiriciler kalıcı bir sabit sürücü yüklemeyi amaçlamadı. Bu yüzden başka bir şey buldum
Disket USB + Gizli Gizli Sürücü: 7 Adım
Disket USB + Gizli Gizli Sürücü: Eski bir disket sürücüden yeni projeler için parçalar kurtardığım başka bir projenin ardından. Biraz daha USB bağlantı noktası yapmak istedim ama yeni bağlantı noktaları için bilgisayarın arkasını karıştırmak istemedim ama nasıl gizlendiklerini sevdim