{"id":43279,"date":"2026-07-12T21:06:32","date_gmt":"2026-07-12T18:06:32","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/"},"modified":"2026-07-12T21:07:10","modified_gmt":"2026-07-12T18:07:10","slug":"broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/","title":{"rendered":"BroncoCTF: Unblur Me Challenge&#8217;\u0131n\u0131n Perde Arkas\u0131 &#8211; G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri"},"content":{"rendered":"<h2>BroncoCTF: Unblur Me Challenge&#8217;\u0131n\u0131n Perde Arkas\u0131 &#8211; G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri<\/h2>\n<p>Dijital d\u00fcnyada gizemli bir g\u00f6rselle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, bulan\u0131kl\u0131\u011f\u0131n ard\u0131nda yatan s\u0131rlar\u0131 \u00e7\u00f6zmek m\u00fcmk\u00fcn m\u00fc? BroncoCTF gibi Capture The Flag (CTF) yar\u0131\u015fmalar\u0131nda s\u0131k\u00e7a kar\u015f\u0131m\u0131za \u00e7\u0131kan &#8220;Unblur Me&#8221; (Beni Netle\u015ftir) tarz\u0131 g\u00f6revler, tam da bu sorunun pe\u015finden gitmemizi ister. Bu makalede, bulan\u0131kla\u015ft\u0131r\u0131lm\u0131\u015f bir g\u00f6r\u00fcnt\u00fcn\u00fcn ard\u0131ndaki bilgiyi nas\u0131l ortaya \u00e7\u0131karabilece\u011fimizi, g\u00f6r\u00fcnt\u00fc i\u015fleme tekniklerinden steganografiye, adli bili\u015fim y\u00f6ntemlerinden pratik kod uygulamalar\u0131na kadar geni\u015f bir yelpazede ele alaca\u011f\u0131z. Amac\u0131m\u0131z, sadece bir CTF g\u00f6revi i\u00e7in de\u011fil, ayn\u0131 zamanda dijital d\u00fcnyadaki g\u00f6rsel verileri anlama ve analiz etme yetene\u011finizi geli\u015ftirmek.<\/p>\n<h2>CTF D\u00fcnyas\u0131nda &#8220;Unblur Me&#8221; Ne Anlama Gelir?<\/h2>\n<p>Capture The Flag (CTF) yar\u0131\u015fmalar\u0131, siber g\u00fcvenlik alan\u0131nda bilgi ve becerileri test etmek i\u00e7in tasarlanm\u0131\u015f, genellikle zaman s\u0131n\u0131rl\u0131 ve rekabet\u00e7i etkinliklerdir. Bu yar\u0131\u015fmalarda kat\u0131l\u0131mc\u0131lar, &#8220;bayrak&#8221; ad\u0131 verilen gizli metin dizelerini bulmak i\u00e7in \u00e7e\u015fitli siber g\u00fcvenlik disiplinlerinde (kriptografi, web g\u00fcvenli\u011fi, adli bili\u015fim, tersine m\u00fchendislik vb.) m\u00fccadele ederler. &#8220;Unblur Me&#8221; gibi g\u00f6revler, genellikle adli bili\u015fim veya g\u00f6r\u00fcnt\u00fc i\u015fleme kategorilerine girer ve kat\u0131l\u0131mc\u0131lardan bulan\u0131k, sans\u00fcrl\u00fc veya manip\u00fcle edilmi\u015f bir g\u00f6r\u00fcnt\u00fcden anlaml\u0131 bilgi \u00e7\u0131karmalar\u0131n\u0131 bekler.<\/p>\n<p>Peki, bir &#8220;Unblur Me&#8221; g\u00f6revi tam olarak ne anlama gelebilir? \u0130lk akla gelen, bir bulan\u0131kl\u0131k filtresi uygulanm\u0131\u015f bir foto\u011fraf\u0131n orijinal halini geri getirmektir. \u00d6rne\u011fin, bir g\u00fcvenlik kameras\u0131 g\u00f6r\u00fcnt\u00fcs\u00fcndeki plaka numaras\u0131n\u0131n okunamaz hale getirilmesi veya bir belgedeki hassas bilgilerin karart\u0131lmas\u0131 gibi senaryolar bu kapsamda de\u011ferlendirilebilir. Ancak, bu t\u00fcr g\u00f6revler sadece basit bir bulan\u0131kl\u0131k giderme i\u015fleminden ibaret olmayabilir. Bazen, bulan\u0131kl\u0131\u011f\u0131n kendisi bir ipucu olabilir veya g\u00f6r\u00fcnt\u00fcn\u00fcn i\u00e7ine ba\u015fka y\u00f6ntemlerle gizlenmi\u015f (steganografi) bir bayrak bulunabilir. Bu durumda, sadece g\u00f6r\u00fcnt\u00fcy\u00fc netle\u015ftirmekle kalmay\u0131p, ayn\u0131 zamanda g\u00f6r\u00fcnt\u00fcdeki anormallikleri veya gizli veri katmanlar\u0131n\u0131 da ara\u015ft\u0131rmam\u0131z gerekir.<\/p>\n<p>BroncoCTF&#8217;teki &#8220;Unblur Me&#8221; m\u00fccadelesi de, genellikle bu \u00e7ok katmanl\u0131 yakla\u015f\u0131mlardan birini gerektirir. Yar\u0131\u015fmac\u0131lar, verilen bir g\u00f6r\u00fcnt\u00fc dosyas\u0131n\u0131 \u00e7e\u015fitli ara\u00e7lar ve teknikler kullanarak analiz etmeli, potansiyel olarak uygulanan bulan\u0131kl\u0131k t\u00fcr\u00fcn\u00fc anlamal\u0131 ve ard\u0131ndan uygun tersine m\u00fchendislik (reverse engineering) veya g\u00f6r\u00fcnt\u00fc i\u015fleme algoritmalar\u0131n\u0131 uygulamal\u0131d\u0131r. Bu s\u00fcre\u00e7, sadece teknik bilgi de\u011fil, ayn\u0131 zamanda yarat\u0131c\u0131 d\u00fc\u015f\u00fcnme ve problem \u00e7\u00f6zme yetene\u011fi de gerektirir. Unutulmamal\u0131d\u0131r ki, her &#8220;bulan\u0131k&#8221; g\u00f6r\u00fcnt\u00fc ayn\u0131 y\u00f6ntemle \u00e7\u00f6z\u00fclmez; bu nedenle farkl\u0131 teknikleri denemek ve esnek olmak b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Bu g\u00f6revler, bizlere dijital d\u00fcnyadaki g\u00f6rsel verilerin ne kadar \u00e7ok katmanl\u0131 olabilece\u011fini ve y\u00fczeysel g\u00f6r\u00fcn\u00fcm\u00fcn \u00f6tesinde nelerin saklanabilece\u011fini g\u00f6sterir.<\/p>\n<h2>G\u00f6r\u00fcnt\u00fc Bulan\u0131kla\u015ft\u0131rma Teknikleri ve Arka Plan\u0131<\/h2>\n<p>G\u00f6r\u00fcnt\u00fc bulan\u0131kla\u015ft\u0131rma, dijital g\u00f6r\u00fcnt\u00fclerde piksellerin renk ve yo\u011funluk de\u011ferlerini de\u011fi\u015ftirerek netli\u011fi azaltma i\u015flemidir. Bu i\u015flem, genellikle estetik ama\u00e7larla, gizlili\u011fi korumak i\u00e7in veya belirli bir bilgiyi kas\u0131tl\u0131 olarak okunamaz hale getirmek i\u00e7in kullan\u0131l\u0131r. CTF yar\u0131\u015fmalar\u0131nda &#8220;Unblur Me&#8221; g\u00f6revleri ba\u011flam\u0131nda, bu teknikleri anlamak, bulan\u0131kl\u0131\u011f\u0131 tersine \u00e7evirme s\u00fcrecinin ilk ve en kritik ad\u0131m\u0131d\u0131r. Zira, bir bulan\u0131kl\u0131k t\u00fcr\u00fcn\u00fc do\u011fru bir \u015fekilde te\u015fhis etmek, onu gidermek i\u00e7in hangi algoritman\u0131n kullan\u0131laca\u011f\u0131na dair \u00f6nemli ipu\u00e7lar\u0131 sunar.<\/p>\n<p>En yayg\u0131n bulan\u0131kla\u015ft\u0131rma tekniklerinden biri, genellikle &#8220;Gaussian bulan\u0131kl\u0131k&#8221; (Gaussian blur) olarak adland\u0131r\u0131l\u0131r. Bu y\u00f6ntem, bir g\u00f6r\u00fcnt\u00fcn\u00fcn her pikselinin \u00e7evresindeki piksellerle belirli bir matematiksel fonksiyon (Gaussian fonksiyonu) kullanarak ortalamas\u0131n\u0131 alarak \u00e7al\u0131\u015f\u0131r. Sonu\u00e7 olarak, keskin kenarlar yumu\u015far ve g\u00f6r\u00fcnt\u00fc daha p\u00fcr\u00fczs\u00fcz, ancak daha az detayl\u0131 hale gelir. Gaussian bulan\u0131kl\u0131k, foto\u011fraflarda arka plan\u0131 flula\u015ft\u0131rmak veya g\u00f6r\u00fcnt\u00fcdeki g\u00fcr\u00fclt\u00fcy\u00fc azaltmak i\u00e7in yayg\u0131n olarak kullan\u0131l\u0131r. Bir ba\u015fka s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan t\u00fcr ise &#8220;hareket bulan\u0131kl\u0131\u011f\u0131&#8221;d\u0131r (motion blur). Bu bulan\u0131kl\u0131k, foto\u011fraf makinesi veya obje hareket halindeyken \u00e7ekim yap\u0131ld\u0131\u011f\u0131nda ortaya \u00e7\u0131kar. G\u00f6r\u00fcnt\u00fcdeki nesneler, hareket y\u00f6n\u00fcne do\u011fru uzam\u0131\u015f, \u00e7izgisel bir bulan\u0131kl\u0131k g\u00f6sterir. Hareket bulan\u0131kl\u0131\u011f\u0131, \u00f6zellikle d\u00fc\u015f\u00fck \u0131\u015f\u0131k ko\u015fullar\u0131nda veya h\u0131zl\u0131 hareket eden nesneleri \u00e7ekerken belirginle\u015fir ve genellikle do\u011frusal bir desen takip eder.<\/p>\n<p>Median bulan\u0131kl\u0131k (median blur) ise, di\u011ferlerinden biraz farkl\u0131 \u00e7al\u0131\u015f\u0131r. Bu y\u00f6ntemde, her pikselin de\u011feri \u00e7evresindeki piksellerin medyan de\u011feriyle de\u011fi\u015ftirilir. Medyan, bir dizi say\u0131n\u0131n ortanca de\u011feridir; yani, s\u0131raland\u0131\u011f\u0131nda tam ortada kalan say\u0131d\u0131r. Bu bulan\u0131kl\u0131k t\u00fcr\u00fc, \u00f6zellikle &#8220;tuz ve biber&#8221; g\u00fcr\u00fclt\u00fcs\u00fc gibi ani ve rastgele piksel hatalar\u0131n\u0131 gidermede etkilidir, \u00e7\u00fcnk\u00fc ayk\u0131r\u0131 de\u011ferleri (g\u00fcr\u00fclt\u00fcl\u00fc pikselleri) yok sayma e\u011filimindedir. Sonu\u00e7 olarak, g\u00f6r\u00fcnt\u00fcdeki keskin kenarlar\u0131 korurken g\u00fcr\u00fclt\u00fcy\u00fc azalt\u0131r. Di\u011fer bir teknik olan kutu bulan\u0131kl\u0131k (box blur) ise, basit\u00e7e bir pikselin \u00e7evresindeki piksellerin aritmetik ortalamas\u0131n\u0131 alarak \u00e7al\u0131\u015f\u0131r. Gaussian bulan\u0131kl\u0131\u011fa benzer ancak daha basit bir hesaplama y\u00f6ntemidir ve genellikle daha az do\u011fal bir bulan\u0131kl\u0131k etkisi yarat\u0131r.<\/p>\n<p>Bu bulan\u0131kla\u015ft\u0131rma tekniklerinin her birinin kendine \u00f6zg\u00fc bir &#8220;\u00e7ekirdek&#8221;i (kernel) vard\u0131r. G\u00f6r\u00fcnt\u00fc i\u015fleme ba\u011flam\u0131nda \u00e7ekirdek, bir g\u00f6r\u00fcnt\u00fcn\u00fcn her pikseline uygulanan k\u00fc\u00e7\u00fck bir matristir ve \u00e7evresindeki piksellerle nas\u0131l etkile\u015fime girece\u011fini belirler. Bulan\u0131kla\u015ft\u0131rma, temelde bu \u00e7ekirdek matrisinin g\u00f6r\u00fcnt\u00fcyle &#8220;evri\u015fim&#8221; (convolution) ad\u0131 verilen bir matematiksel i\u015flemle uygulanmas\u0131d\u0131r. Bir g\u00f6r\u00fcnt\u00fcy\u00fc netle\u015ftirmeye \u00e7al\u0131\u015f\u0131rken, asl\u0131nda bu evri\u015fim i\u015flemini tersine \u00e7evirmeye, yani &#8220;ters evri\u015fim&#8221; (deconvolution) yapmaya \u00e7al\u0131\u015f\u0131r\u0131z. Bulan\u0131kl\u0131k t\u00fcr\u00fcn\u00fc ve dolay\u0131s\u0131yla kullan\u0131lan \u00e7ekirde\u011fi tahmin edebilmek, ters evri\u015fim i\u015fleminin ba\u015far\u0131s\u0131 i\u00e7in hayati \u00f6neme sahiptir. Bu nedenle, bir CTF g\u00f6revinde bulan\u0131k bir g\u00f6r\u00fcnt\u00fcyle kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131zda, ilk ad\u0131m\u0131m\u0131z genellikle bulan\u0131kl\u0131k t\u00fcr\u00fcn\u00fc ve parametrelerini analiz etmeye \u00e7al\u0131\u015fmak olmal\u0131d\u0131r. Bu, daha sonra uygulayaca\u011f\u0131m\u0131z netle\u015ftirme algoritmalar\u0131n\u0131n etkinli\u011fini do\u011frudan etkileyecektir.<\/p>\n<h2>Bulan\u0131k G\u00f6r\u00fcnt\u00fcleri Netle\u015ftirme Sanat\u0131: Deconvolution ve Ters M\u00fchendislik<\/h2>\n<p>Bulan\u0131k bir g\u00f6r\u00fcnt\u00fcy\u00fc netle\u015ftirmek, bir dedektifin delilleri bir araya getirmesi gibi karma\u015f\u0131k bir s\u00fcre\u00e7tir. Bu i\u015flem, genellikle &#8220;ters evri\u015fim&#8221; (deconvolution) ad\u0131 verilen matematiksel bir temele dayan\u0131r. G\u00f6r\u00fcnt\u00fc bulan\u0131kla\u015ft\u0131rma, orijinal bir g\u00f6r\u00fcnt\u00fcn\u00fcn (<code>O<\/code>) bir bulan\u0131kl\u0131k \u00e7ekirde\u011fi (<code>K<\/code>) ile evri\u015fim (<code>*<\/code>) i\u015flemine tabi tutulmas\u0131 ve \u00fczerine bir miktar g\u00fcr\u00fclt\u00fc (<code>N<\/code>) eklenmesiyle olu\u015fur: <code>B = O * K + N<\/code>. Bizim amac\u0131m\u0131z ise bu denklemi tersine \u00e7evirerek orijinal g\u00f6r\u00fcnt\u00fcy\u00fc (<code>O<\/code>) elde etmektir. Ancak, g\u00fcr\u00fclt\u00fc ve bulan\u0131kl\u0131k \u00e7ekirde\u011finin bilinmemesi, bu i\u015flemi olduk\u00e7a zorla\u015ft\u0131r\u0131r.<\/p>\n<p>Ters evri\u015fim algoritmalar\u0131, bu zorlu\u011fun \u00fcstesinden gelmek i\u00e7in \u00e7e\u015fitli yakla\u015f\u0131mlar kullan\u0131r. En bilinen y\u00f6ntemlerden biri &#8220;Wiener filtresi&#8221;dir. Wiener filtresi, g\u00f6r\u00fcnt\u00fcn\u00fcn orijinal halini tahmin etmek i\u00e7in hem bulan\u0131kl\u0131k \u00e7ekirde\u011fini hem de g\u00f6r\u00fcnt\u00fcdeki g\u00fcr\u00fclt\u00fc oran\u0131n\u0131 hesaba katar. Bu filtre, g\u00fcr\u00fclt\u00fcy\u00fc minimize ederken ayn\u0131 zamanda bulan\u0131kl\u0131\u011f\u0131 gidermeye \u00e7al\u0131\u015f\u0131r ve bu iki fakt\u00f6r aras\u0131nda bir denge kurar. Genellikle, bulan\u0131kl\u0131k \u00e7ekirde\u011finin (point spread function &#8211; PSF) ve g\u00fcr\u00fclt\u00fc oran\u0131n\u0131n yakla\u015f\u0131k olarak bilindi\u011fi durumlarda olduk\u00e7a etkili sonu\u00e7lar verir. Ancak, CTF senaryolar\u0131nda bu bilgiler genellikle mevcut de\u011fildir, bu da bizi daha geli\u015fmi\u015f y\u00f6ntemlere y\u00f6neltir.<\/p>\n<p>Bir di\u011fer g\u00fc\u00e7l\u00fc algoritma ise &#8220;Lucy-Richardson deconvolution&#8221; (Lucy-Richardson ters evri\u015fim) olarak bilinir. Bu y\u00f6ntem, bulan\u0131kl\u0131k \u00e7ekirde\u011fi bilindi\u011finde, \u00f6zellikle teleskopik g\u00f6r\u00fcnt\u00fclerde ve mikroskopide s\u0131k\u00e7a kullan\u0131l\u0131r. Algoritma, g\u00f6r\u00fcnt\u00fcn\u00fcn orijinal halini tahmin etmek i\u00e7in iteratif (tekrarlamal\u0131) bir s\u00fcre\u00e7 izler. Her ad\u0131mda, mevcut tahminin bulan\u0131kla\u015ft\u0131r\u0131lm\u0131\u015f hali ile ger\u00e7ek bulan\u0131k g\u00f6r\u00fcnt\u00fc aras\u0131ndaki fark\u0131 hesaplar ve bu fark\u0131 kullanarak tahmini iyile\u015ftirir. Lucy-Richardson algoritmas\u0131, \u00f6zellikle g\u00fcr\u00fclt\u00fcn\u00fcn Poisson da\u011f\u0131l\u0131m\u0131na uydu\u011fu durumlarda iyi performans g\u00f6sterir ve Wiener filtresine g\u00f6re daha keskin sonu\u00e7lar verebilir, ancak g\u00fcr\u00fclt\u00fcy\u00fc art\u0131rma e\u011filimi de vard\u0131r.<\/p>\n<p>E\u011fer bulan\u0131kl\u0131k \u00e7ekirde\u011fi hakk\u0131nda hi\u00e7bir bilgimiz yoksa, yani hem orijinal g\u00f6r\u00fcnt\u00fc hem de bulan\u0131kl\u0131k \u00e7ekirde\u011fi bilinmiyorsa, bu duruma &#8220;k\u00f6r ters evri\u015fim&#8221; (blind deconvolution) denir. K\u00f6r ters evri\u015fim, iki bilinmeyeni ayn\u0131 anda tahmin etmeye \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in \u00e7ok daha karma\u015f\u0131kt\u0131r. Bu algoritmalar, genellikle g\u00f6r\u00fcnt\u00fcn\u00fcn istatistiksel \u00f6zelliklerini veya bulan\u0131kl\u0131k \u00e7ekirde\u011finin do\u011fas\u0131n\u0131 (\u00f6rne\u011fin, hareket bulan\u0131kl\u0131\u011f\u0131 veya Gaussian bulan\u0131kl\u0131\u011f\u0131) tahmin etmeye \u00e7al\u0131\u015f\u0131r. Derin \u00f6\u011frenme tabanl\u0131 yakla\u015f\u0131mlar da g\u00fcn\u00fcm\u00fczde k\u00f6r ters evri\u015fim problemlerini \u00e7\u00f6zmek i\u00e7in pop\u00fcler hale gelmi\u015ftir, ancak bunlar genellikle y\u00fcksek i\u015flem g\u00fcc\u00fc ve geni\u015f veri setleri gerektirir.<\/p>\n<p>Pratikte, bir BroncoCTF &#8220;Unblur Me&#8221; g\u00f6revinde, genellikle Python&#8217;daki OpenCV veya scikit-image gibi k\u00fct\u00fcphaneler arac\u0131l\u0131\u011f\u0131yla bu algoritmalar\u0131 kullan\u0131r\u0131z. \u00d6rne\u011fin, bulan\u0131k bir plaka g\u00f6r\u00fcnt\u00fcs\u00fcyle kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131zda, \u00f6nce bulan\u0131kl\u0131k t\u00fcr\u00fcn\u00fc (\u00f6rne\u011fin, hareket bulan\u0131kl\u0131\u011f\u0131) ve y\u00f6n\u00fcn\u00fc tahmin etmeye \u00e7al\u0131\u015f\u0131r\u0131z. Ard\u0131ndan, bu tahmini bir PSF (\u00e7ekirdek) olarak kullanarak Wiener veya Lucy-Richardson filtrelerini uygular\u0131z. E\u011fer tek bir denemede ba\u015far\u0131l\u0131 olamazsak, farkl\u0131 PSF&#8217;ler veya algoritma parametreleri ile denemeler yaparak en iyi sonuca ula\u015fmaya \u00e7al\u0131\u015f\u0131r\u0131z. Bu s\u00fcre\u00e7, deneme yan\u0131lma ve sab\u0131r gerektiren bir ters m\u00fchendislik \u00e7abas\u0131d\u0131r. Unutmayal\u0131m ki, bulan\u0131kl\u0131\u011f\u0131n tamamen giderilmesi her zaman m\u00fcmk\u00fcn olmayabilir; bazen sadece yeterli bilgiyi (\u00f6rne\u011fin, plaka numaras\u0131n\u0131n birka\u00e7 karakterini) ortaya \u00e7\u0131karmak bile CTF g\u00f6revini \u00e7\u00f6zmek i\u00e7in yeterli olacakt\u0131r.<\/p>\n<h2>Steganografi ve G\u00f6r\u00fcnt\u00fc \u0130\u00e7ine Saklanan S\u0131rlar<\/h2>\n<p>Bulan\u0131kla\u015ft\u0131r\u0131lm\u0131\u015f bir g\u00f6r\u00fcnt\u00fcyle kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131zda, akla gelen ilk \u00e7\u00f6z\u00fcm genellikle bulan\u0131kl\u0131\u011f\u0131 gidermek olsa da, CTF d\u00fcnyas\u0131nda &#8220;Unblur Me&#8221; g\u00f6revleri bazen daha sinsi bir y\u00f6ntem olan steganografiyi i\u015faret edebilir. Steganografi, bir mesaj\u0131 veya dosyay\u0131 ba\u015fka bir mesaj\u0131n, g\u00f6r\u00fcnt\u00fcn\u00fcn veya ses dosyas\u0131n\u0131n i\u00e7ine gizleme sanat\u0131d\u0131r. Kriptografiden (\u015fifreleme) farkl\u0131 olarak, steganografinin amac\u0131 mesaj\u0131n varl\u0131\u011f\u0131n\u0131 bile gizlemektir; yani, gizli bir mesaj\u0131n oldu\u011fu d\u0131\u015far\u0131dan belli olmamal\u0131d\u0131r. Bu nedenle, bir g\u00f6r\u00fcnt\u00fc bulan\u0131kla\u015ft\u0131r\u0131lm\u0131\u015f olsa bile, bu bulan\u0131kl\u0131k sadece dikkat da\u011f\u0131t\u0131c\u0131 bir unsur olabilir ve as\u0131l bayrak g\u00f6r\u00fcnt\u00fcn\u00fcn piksellerine ba\u015fka bir yolla gizlenmi\u015f olabilir.<\/p>\n<p>En yayg\u0131n steganografi tekniklerinden biri, &#8220;En D\u00fc\u015f\u00fck Anlaml\u0131 Bit&#8221; (Least Significant Bit &#8211; LSB) y\u00f6ntemidir. Dijital bir g\u00f6r\u00fcnt\u00fc, her pikselin renk de\u011ferlerini (genellikle K\u0131rm\u0131z\u0131, Ye\u015fil, Mavi &#8211; RGB kanallar\u0131 i\u00e7in 0-255 aras\u0131 de\u011ferler) temsil eden bir dizi bitten olu\u015fur. LSB tekni\u011finde, her pikselin renk de\u011ferlerinin en d\u00fc\u015f\u00fck anlaml\u0131 bitleri (yani, en az \u00f6neme sahip bitleri) gizli veriyi saklamak i\u00e7in de\u011fi\u015ftirilir. \u00d6rne\u011fin, bir pikselin k\u0131rm\u0131z\u0131 de\u011feri <code>10101010<\/code> ise, bu de\u011ferin son biti <code>0<\/code>&#8216;d\u0131r. Gizlenecek verinin bir biti <code>1<\/code> ise, pikselin de\u011feri <code>10101011<\/code> olarak de\u011fi\u015ftirilebilir. Bu k\u00fc\u00e7\u00fck de\u011fi\u015fiklik, insan g\u00f6z\u00fcyle neredeyse hi\u00e7 fark edilemez, \u00e7\u00fcnk\u00fc renk tonunda meydana gelen de\u011fi\u015fiklik \u00e7ok d\u00fc\u015f\u00fckt\u00fcr. Ancak, bu k\u00fc\u00e7\u00fck de\u011fi\u015fiklikler bir araya geldi\u011finde, b\u00fcy\u00fck miktarda veri gizlenebilir.<\/p>\n<p>CTF senaryolar\u0131nda, bir &#8220;Unblur Me&#8221; g\u00f6revi size bulan\u0131k bir g\u00f6r\u00fcnt\u00fc verdi\u011finde, bu g\u00f6r\u00fcnt\u00fcye LSB steganografisi uygulanm\u0131\u015f olabilece\u011fini d\u00fc\u015f\u00fcnmelisiniz. Bulan\u0131kl\u0131k, genellikle g\u00f6r\u00fcnt\u00fcy\u00fc daha da &#8220;masum&#8221; g\u00f6stermek veya potansiyel g\u00f6rsel anormallikleri gizlemek i\u00e7in eklenmi\u015f olabilir. Bu durumda, bulan\u0131kl\u0131\u011f\u0131 gidermeye \u00e7al\u0131\u015fmak yerine, g\u00f6r\u00fcnt\u00fcy\u00fc steganografi ara\u00e7lar\u0131yla analiz etmeniz gerekebilir. Bu t\u00fcr ara\u00e7lar, g\u00f6r\u00fcnt\u00fcn\u00fcn bit katmanlar\u0131n\u0131 inceleyerek veya belirli algoritmalar uygulayarak gizli verileri ortaya \u00e7\u0131kar\u0131r.<\/p>\n<p>Piyasada ve CTF d\u00fcnyas\u0131nda pop\u00fcler olan steganografi ara\u00e7lar\u0131 aras\u0131nda <a href=\"https:\/\/www.sarc.io\/stegsolve\/\">Stegsolve<\/a> ve <a href=\"https:\/\/github.com\/zed-0xff\/zsteg\">zsteg<\/a> bulunur. Stegsolve, bir g\u00f6r\u00fcnt\u00fcn\u00fcn farkl\u0131 bit katmanlar\u0131n\u0131 (\u00f6rne\u011fin, her bir renk kanal\u0131n\u0131n 0. bitinden 7. bitine kadar) g\u00f6rselle\u015ftirmenize olanak tan\u0131r. Bu sayede, gizli verinin bir desen veya metin olarak ortaya \u00e7\u0131k\u0131p \u00e7\u0131kmad\u0131\u011f\u0131n\u0131 kolayca g\u00f6rebilirsiniz. zsteg ise, PNG ve BMP gibi dosya formatlar\u0131nda LSB steganografisi i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015f bir komut sat\u0131r\u0131 arac\u0131d\u0131r. G\u00f6r\u00fcnt\u00fcdeki gizli verileri otomatik olarak alg\u0131lamaya ve \u00e7\u0131karmaya \u00e7al\u0131\u015f\u0131r. Bir CTF g\u00f6revinde, bulan\u0131k bir g\u00f6r\u00fcnt\u00fcyle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, bu ara\u00e7lar\u0131 kullanarak g\u00f6r\u00fcnt\u00fcn\u00fcn steganografik a\u00e7\u0131dan temiz olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek, deconvolution denemelerinden \u00f6nce veya onlarla e\u015f zamanl\u0131 olarak yap\u0131lmas\u0131 gereken \u00f6nemli bir ad\u0131md\u0131r.<\/p>\n<p>\u00d6rne\u011fin, BroncoCTF&#8217;te size verilen bulan\u0131k bir <code>.png<\/code> dosyas\u0131n\u0131 Stegsolve ile a\u00e7arak farkl\u0131 bit katmanlar\u0131na bakmak, bulan\u0131kl\u0131\u011f\u0131n ard\u0131ndaki as\u0131l bayra\u011f\u0131 ortaya \u00e7\u0131karabilir. Belki de bulan\u0131kl\u0131k, sadece bir k\u0131rm\u0131z\u0131 bal\u0131k (red herring) olup, as\u0131l \u00e7\u00f6z\u00fcm LSB&#8217;de gizlidir. Bu nedenle, &#8220;Unblur Me&#8221; g\u00f6revlerinde \u00e7ok y\u00f6nl\u00fc d\u00fc\u015f\u00fcnmek ve sadece g\u00f6r\u00fcnen soruna odaklanmak yerine, olas\u0131 t\u00fcm gizleme y\u00f6ntemlerini g\u00f6z \u00f6n\u00fcnde bulundurmak ba\u015far\u0131 i\u00e7in kritik \u00f6neme sahiptir. Unutmay\u0131n, siber g\u00fcvenlik d\u00fcnyas\u0131nda her zaman birden fazla katmanl\u0131 sald\u0131r\u0131lar ve savunmalar mevcuttur.<\/p>\n<h2>Adli Bili\u015fim Perspektifinden G\u00f6r\u00fcnt\u00fc Analizi ve Metaveri \u0130ncelemesi<\/h2>\n<p>Bir BroncoCTF &#8220;Unblur Me&#8221; m\u00fccadelesinde, sadece bulan\u0131kl\u0131\u011f\u0131 gidermek veya steganografi aramak yeterli olmayabilir. Bazen, \u00e7\u00f6z\u00fcm g\u00f6r\u00fcnt\u00fcn\u00fcn kendisinde de\u011fil, onu \u00e7evreleyen verilerde gizlidir. \u0130\u015fte burada adli bili\u015fim (digital forensics) devreye girer. Adli bili\u015fim, dijital delilleri toplama, analiz etme ve sunma bilimidir. G\u00f6r\u00fcnt\u00fc dosyalar\u0131 da, i\u00e7erdi\u011fi metaveriler ve dosya yap\u0131s\u0131 itibar\u0131yla \u00f6nemli adli deliller bar\u0131nd\u0131rabilir. Bu t\u00fcr bilgiler, bulan\u0131kl\u0131\u011f\u0131n kayna\u011f\u0131n\u0131 anlamaktan, g\u00f6r\u00fcnt\u00fcn\u00fcn ne zaman ve nerede \u00e7ekildi\u011fini \u00f6\u011frenmeye kadar bir\u00e7ok konuda ipucu sa\u011flayabilir.<\/p>\n<p>G\u00f6r\u00fcnt\u00fc dosyalar\u0131n\u0131n en zengin bilgi kaynaklar\u0131ndan biri, &#8220;EXIF (Exchangeable Image File Format) verileri&#8221;dir. EXIF verileri, dijital kameralar ve ak\u0131ll\u0131 telefonlar taraf\u0131ndan \u00e7ekilen g\u00f6r\u00fcnt\u00fclere otomatik olarak eklenen bir t\u00fcr metaveridir. Bu veriler, g\u00f6r\u00fcnt\u00fcn\u00fcn \u00e7ekildi\u011fi tarih ve saat, kullan\u0131lan kamera modeli, pozlama ayarlar\u0131 (ISO, diyafram, enstantane h\u0131z\u0131), fla\u015f kullan\u0131m\u0131, GPS koordinatlar\u0131 gibi bilgileri i\u00e7erebilir. Bir CTF g\u00f6revinde, bu bilgiler do\u011frudan bayra\u011f\u0131 vermese bile, sorunun \u00e7\u00f6z\u00fcm\u00fcne giden yolu ayd\u0131nlatabilir. \u00d6rne\u011fin, GPS koordinatlar\u0131 belirli bir konumu i\u015faret edebilir veya kamera modeli, o kameran\u0131n bilinen bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131na sahip olup olmad\u0131\u011f\u0131n\u0131 ara\u015ft\u0131rmam\u0131z\u0131 sa\u011flayabilir.<\/p>\n<p>EXIF verilerini incelemek i\u00e7in \u00e7e\u015fitli ara\u00e7lar mevcuttur. Komut sat\u0131r\u0131nda kullan\u0131lan <a href=\"https:\/\/exiftool.org\/\"><code>exiftool<\/code><\/a>, bu alandaki en g\u00fc\u00e7l\u00fc ve pop\u00fcler ara\u00e7lardan biridir. Bir g\u00f6r\u00fcnt\u00fc dosyas\u0131ndaki t\u00fcm EXIF verilerini detayl\u0131 bir \u015fekilde listeler. \u00d6rne\u011fin, bir BroncoCTF g\u00f6revinde verilen bulan\u0131k g\u00f6r\u00fcnt\u00fcy\u00fc <code>exiftool image.jpg<\/code> komutuyla inceleyerek, g\u00f6r\u00fcnt\u00fcn\u00fcn kime ait oldu\u011funa, ne zaman \u00e7ekildi\u011fine veya hangi yaz\u0131l\u0131mla d\u00fczenlendi\u011fine dair ipu\u00e7lar\u0131 bulabiliriz. Bazen, bayrak do\u011frudan bir EXIF alan\u0131na (\u00f6rne\u011fin, &#8220;Yorum&#8221; veya &#8220;Sanat\u00e7\u0131&#8221; alan\u0131) gizlenmi\u015f olabilir veya bir \u015fifrenin bir par\u00e7as\u0131 olarak kodlanm\u0131\u015f olabilir.<\/p>\n<div class=\"code-container\">\n<pre><code>exiftool bulanik_resim.jpg<\/code><\/pre>\n<\/p><\/div>\n<p>Metaveri incelemesi sadece EXIF ile s\u0131n\u0131rl\u0131 de\u011fildir. Dosya sistemleri, bir dosyan\u0131n i\u00e7ine &#8220;alternatif veri ak\u0131\u015flar\u0131&#8221; (Alternate Data Streams &#8211; ADS) gizlemeye izin verebilir. \u00d6zellikle Windows i\u015fletim sistemlerinde, bir dosyan\u0131n ana i\u00e7eri\u011fine ek olarak gizli veri ak\u0131\u015flar\u0131 bulunabilir. Bu t\u00fcr ak\u0131\u015flar, normal dosya listelemelerinde g\u00f6r\u00fcnmez ve \u00f6zel ara\u00e7larla tespit edilebilir. CTF&#8217;lerde, bayrak bu t\u00fcr gizli ak\u0131\u015flara yerle\u015ftirilmi\u015f olabilir. Benzer \u015fekilde, &#8220;dosya oyma&#8221; (file carving) teknikleri, bir disk g\u00f6r\u00fcnt\u00fcs\u00fcnden veya hasarl\u0131 bir dosyadan gizli veya silinmi\u015f dosyalar\u0131 kurtarmak i\u00e7in kullan\u0131l\u0131r. Bazen, bulan\u0131k bir g\u00f6r\u00fcnt\u00fcn\u00fcn i\u00e7inde, ba\u015fka bir gizli dosya (\u00f6rne\u011fin, bir ZIP ar\u015fivi veya ba\u015fka bir g\u00f6r\u00fcnt\u00fc) saklanm\u0131\u015f olabilir ve bu da bulan\u0131kl\u0131\u011f\u0131n kendisinden daha \u00f6nemli bir ipucu sunabilir.<\/p>\n<p>Sonu\u00e7 olarak, bir &#8220;Unblur Me&#8221; m\u00fccadelesinde adli bili\u015fim yakla\u015f\u0131m\u0131, sadece g\u00f6r\u00fcnt\u00fcn\u00fcn piksel i\u00e7eri\u011fine odaklanmak yerine, g\u00f6r\u00fcnt\u00fcy\u00fc bir b\u00fct\u00fcn olarak ele almay\u0131 gerektirir. Metaverileri incelemek, gizli veri ak\u0131\u015flar\u0131n\u0131 aramak ve dosya yap\u0131s\u0131n\u0131 analiz etmek, bulan\u0131kl\u0131\u011f\u0131n ard\u0131ndaki ger\u00e7e\u011fi ortaya \u00e7\u0131karman\u0131n anahtarlar\u0131ndan biri olabilir. Bu \u00e7ok y\u00f6nl\u00fc inceleme, CTF yar\u0131\u015fmalar\u0131nda ba\u015far\u0131ya ula\u015fmak i\u00e7in vazge\u00e7ilmez bir beceridir ve dijital d\u00fcnyadaki her t\u00fcrl\u00fc veri analizinde uygulanabilir.<\/p>\n<h2>Pratik Uygulamalar: Python ile G\u00f6r\u00fcnt\u00fc Netle\u015ftirme ve Gizli Veri Bulma<\/h2>\n<p>Teorik bilgileri peki\u015ftirmenin en iyi yolu, onlar\u0131 pratik uygulamalarla desteklemektir. Python, g\u00f6r\u00fcnt\u00fc i\u015fleme ve veri analizi i\u00e7in zengin k\u00fct\u00fcphaneleri sayesinde CTF g\u00f6revlerinde en s\u0131k kullan\u0131lan dillerden biridir. OpenCV (Open Source Computer Vision Library) ve Pillow (PIL&#8217;in \u00e7atal\u0131), g\u00f6r\u00fcnt\u00fc manip\u00fclasyonu i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. \u015eimdi, BroncoCTF &#8220;Unblur Me&#8221; senaryosunda kullanabilece\u011fimiz baz\u0131 temel Python uygulamalar\u0131na g\u00f6z atal\u0131m.<\/p>\n<h3>Python ile Basit Bulan\u0131kl\u0131k Giderme (Unsharp Masking)<\/h3>\n<p>Bulan\u0131kl\u0131k giderme (deblurring) karma\u015f\u0131k bir matematiksel i\u015flem olsa da, bazen basit &#8220;keskinle\u015ftirme&#8221; (sharpening) filtreleri bile bulan\u0131k g\u00f6r\u00fcnt\u00fclerde okunabilirli\u011fi art\u0131rabilir. &#8220;Unsharp Masking&#8221; (Netle\u015ftirme Maskesi) bu ama\u00e7la kullan\u0131lan yayg\u0131n bir tekniktir. G\u00f6r\u00fcnt\u00fcn\u00fcn bulan\u0131k bir versiyonunu orijinalinden \u00e7\u0131kararak kenarlar\u0131 vurgular. \u0130\u015fte basit bir \u00f6rnek:<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport cv2\nimport numpy as np\n\ndef unsharp_mask(image, kernel_size=(5, 5), sigma=1.0, amount=1.0, threshold=0):\n    \"\"\"\n    G\u00f6r\u00fcnt\u00fcye unsharp mask uygulayarak keskinle\u015ftirir.\n    \"\"\"\n    blurred = cv2.GaussianBlur(image, kernel_size, sigma)\n    sharpened = float(amount + 1) * image - float(amount) * blurred\n    sharpened = np.maximum(sharpened, 0)\n    sharpened = np.minimum(sharpened, 255)\n    sharpened = sharpened.astype(np.uint8)\n    if threshold > 0:\n        low_contrast_mask = np.absolute(image - blurred) < threshold\n        np.copyto(sharpened, image, where=low_contrast_mask)\n    return sharpened\n\n# \u00d6rnek bir bulan\u0131k g\u00f6r\u00fcnt\u00fc y\u00fckleyelim (varsay\u0131msal olarak \"bulanik_resim.png\")\n# Ger\u00e7ek bir CTF'te, bu dosyay\u0131 kendiniz sa\u011flaman\u0131z gerekir.\ntry:\n    img = cv2.imread('bulanik_resim.png')\n    if img is None:\n        raise FileNotFoundError(\"bulanik_resim.png bulunamad\u0131.\")\n    \n    # G\u00f6r\u00fcnt\u00fcy\u00fc keskinle\u015ftir\n    keskinlesmis_img = unsharp_mask(img, kernel_size=(5, 5), sigma=2.0, amount=1.5)\n\n    cv2.imshow('Orijinal Bulan\u0131k Resim', img)\n    cv2.imshow('Keskinle\u015ftirilmi\u015f Resim', keskinlesmis_img)\n    cv2.waitKey(0)\n    cv2.destroyAllWindows()\n\nexcept FileNotFoundError as e:\n    print(e)\nexcept Exception as e:\n    print(f\"Bir hata olu\u015ftu: {e}\")\n      <\/code><\/pre>\n<\/p><\/div>\n<p>Bu kod, g\u00f6r\u00fcnt\u00fcy\u00fc Gaussian bulan\u0131kl\u0131\u011f\u0131 ile bulan\u0131kla\u015ft\u0131r\u0131r ve ard\u0131ndan orijinal g\u00f6r\u00fcnt\u00fcden bu bulan\u0131k versiyonu \u00e7\u0131kararak kenarlar\u0131 belirginle\u015ftirir. <code>sigma<\/code> ve <code>amount<\/code> parametreleri ile oynayarak farkl\u0131 keskinle\u015ftirme seviyeleri elde edebilirsiniz. CTF'lerde, bu t\u00fcr basit y\u00f6ntemler bile bazen bayra\u011f\u0131n okunmas\u0131 i\u00e7in yeterli olabilir.<\/p>\n<h3>LSB (Least Significant Bit) Steganografi Kontrol\u00fc<\/h3>\n<p>G\u00f6r\u00fcnt\u00fcye gizlenmi\u015f metin veya veri bulmak i\u00e7in LSB tekni\u011fini kontrol etmek, bir CTF g\u00f6revinde vazge\u00e7ilmezdir. \u0130\u015fte bir g\u00f6r\u00fcnt\u00fcn\u00fcn LSB'sini okuyarak gizli metin bulmaya \u00e7al\u0131\u015fan basit bir Python kodu:<\/p>\n<div class=\"code-container\">\n<pre><code>\nfrom PIL import Image\n\ndef extract_lsb_text(image_path, num_bits=1):\n    \"\"\"\n    Bir g\u00f6r\u00fcnt\u00fcn\u00fcn en d\u00fc\u015f\u00fck anlaml\u0131 bitlerinden metin \u00e7\u0131kar\u0131r.\n    num_bits: Her pikselden ka\u00e7 bit okunaca\u011f\u0131n\u0131 belirtir (genellikle 1).\n    \"\"\"\n    img = Image.open(image_path)\n    width, height = img.size\n    binary_data = \"\"\n\n    for y in range(height):\n        for x in range(width):\n            pixel = img.getpixel((x, y))\n            for channel in pixel: # Her RGB kanal\u0131 i\u00e7in\n                # En d\u00fc\u015f\u00fck anlaml\u0131 bitleri al\n                binary_data += bin(channel)[2:].zfill(8)[-num_bits:]\n                \n    # Binary veriyi karaktere d\u00f6n\u00fc\u015ft\u00fcr\n    extracted_text = \"\"\n    for i in range(0, len(binary_data) - (len(binary_data) % 8), 8):\n        byte = binary_data[i:i+8]\n        extracted_text += chr(int(byte, 2))\n        \n        # Olas\u0131 bayrak format\u0131 (\u00f6rne\u011fin \"flag{...}\") kontrol\u00fc\n        # Veya null karakter (\\x00) ile biti\u015f kontrol\u00fc\n        if \"flag{\" in extracted_text.lower() or extracted_text.endswith('\\x00'):\n            break # Bayra\u011f\u0131 buldu\u011fumuzda veya null karakterde dur\n\n    return extracted_text\n\n# \u00d6rnek kullan\u0131m:\n# \"bulanik_lsb.png\" dosyas\u0131nda gizli bir metin oldu\u011funu varsayal\u0131m.\ntry:\n    hidden_message = extract_lsb_text('bulanik_lsb.png')\n    print(\"Gizli Mesaj (LSB):\")\n    print(hidden_message.strip()) # Bo\u015fluklar\u0131 temizle\n\nexcept FileNotFoundError:\n    print(\"bulanik_lsb.png bulunamad\u0131. L\u00fctfen do\u011fru dosya yolunu sa\u011flay\u0131n.\")\nexcept Exception as e:\n    print(f\"Bir hata olu\u015ftu: {e}\")\n      <\/code><\/pre>\n<\/p><\/div>\n<p>Bu kod, g\u00f6r\u00fcnt\u00fcn\u00fcn her pikselinin RGB kanallar\u0131ndaki en d\u00fc\u015f\u00fck anlaml\u0131 bitleri okur ve bunlar\u0131 birle\u015ftirerek bir metin olu\u015fturmaya \u00e7al\u0131\u015f\u0131r. CTF'lerde bayraklar genellikle belirli bir formatta (\u00f6rne\u011fin, <code>flag{...}<\/code>) oldu\u011fu i\u00e7in, bu format\u0131 arayarak veya null karakter (<code>\\x00<\/code>) gibi bir sonland\u0131rma i\u015faretini kontrol ederek gereksiz verileri filtreleyebilirsiniz. Bu, Stegsolve gibi ara\u00e7lar\u0131n yapt\u0131\u011f\u0131na benzer bir i\u015flemi programatik olarak ger\u00e7ekle\u015ftirmenizi sa\u011flar.<\/p>\n<p>Bu pratik \u00f6rnekler, Python'\u0131n CTF g\u00f6revlerinde ne kadar g\u00fc\u00e7l\u00fc bir ara\u00e7 olabilece\u011fini g\u00f6stermektedir. Hem g\u00f6r\u00fcnt\u00fc i\u015fleme algoritmalar\u0131n\u0131 denemek hem de steganografik verileri \u00e7\u0131karmak i\u00e7in esneklik sunar. Unutmay\u0131n, bu kodlar ba\u015flang\u0131\u00e7 noktalar\u0131d\u0131r ve ger\u00e7ek bir CTF g\u00f6revinde, belirli zorlu\u011fa ve bulan\u0131kl\u0131k t\u00fcr\u00fcne g\u00f6re daha karma\u015f\u0131k algoritmalar veya farkl\u0131 parametre ayarlamalar\u0131 denemeniz gerekebilir.<\/p>\n<h2>BroncoCTF \"Unblur Me\" M\u00fccadelesinde Ba\u015far\u0131 \u0130\u00e7in \u0130pu\u00e7lar\u0131<\/h2>\n<p>BroncoCTF gibi zorlu bir yar\u0131\u015fmada \"Unblur Me\" tarz\u0131 bir g\u00f6revle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, do\u011fru stratejiyi izlemek ba\u015far\u0131 \u015fans\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r. Bu t\u00fcr g\u00f6revler genellikle birden fazla \u00e7\u00f6z\u00fcm yoluna sahip olabilir veya birden fazla tekni\u011fin birle\u015fimini gerektirebilir. \u0130\u015fte bu m\u00fccadelede size yard\u0131mc\u0131 olacak baz\u0131 \u00f6nemli ipu\u00e7lar\u0131:<\/p>\n<ul>\n<li><strong>Sistematik Yakla\u015f\u0131m Sergileyin:<\/strong> Panik yapmak yerine, her zaman belirli bir s\u0131rayla hareket edin. \u0130lk olarak, g\u00f6r\u00fcnt\u00fcn\u00fcn metaverilerini (EXIF) kontrol edin. Bu, dosyan\u0131n kayna\u011f\u0131, olu\u015fturulma tarihi veya gizli yorumlar hakk\u0131nda \u00f6nemli ipu\u00e7lar\u0131 verebilir. Ard\u0131ndan, Stegsolve veya zsteg gibi ara\u00e7larla steganografi olas\u0131l\u0131\u011f\u0131n\u0131 ara\u015ft\u0131r\u0131n. Bulan\u0131kl\u0131k, sadece bir dikkat da\u011f\u0131t\u0131c\u0131 olabilir ve as\u0131l bayrak LSB gibi y\u00f6ntemlerle gizlenmi\u015f olabilir. E\u011fer bu ad\u0131mlar sonu\u00e7 vermezse, g\u00f6r\u00fcnt\u00fc i\u015fleme tekniklerine y\u00f6nelin.<\/li>\n<li><strong>Farkl\u0131 Bulan\u0131kl\u0131k T\u00fcrlerini G\u00f6z \u00d6n\u00fcnde Bulundurun:<\/strong> G\u00f6r\u00fcnt\u00fcdeki bulan\u0131kl\u0131\u011f\u0131n t\u00fcr\u00fcn\u00fc (Gaussian, hareket, kutu vb.) tahmin etmeye \u00e7al\u0131\u015f\u0131n. Hareket bulan\u0131kl\u0131\u011f\u0131 genellikle do\u011frusal bir desene sahipken, Gaussian bulan\u0131kl\u0131\u011f\u0131 daha yumu\u015fak ve dairesel bir etki yarat\u0131r. Bulan\u0131kl\u0131k t\u00fcr\u00fcn\u00fc do\u011fru tahmin etmek, deconvolution algoritmalar\u0131 i\u00e7in do\u011fru \u00e7ekirde\u011fi (PSF) se\u00e7menize yard\u0131mc\u0131 olacakt\u0131r.<\/li>\n<li><strong>\u00c7e\u015fitli Ara\u00e7 ve Algoritmalar\u0131 Deneyin:<\/strong> Tek bir araca veya algoritmaya tak\u0131l\u0131p kalmay\u0131n. OpenCV, scikit-image gibi Python k\u00fct\u00fcphaneleri, Wiener filtresi, Lucy-Richardson deconvolution, unsharp masking gibi \u00e7e\u015fitli bulan\u0131kl\u0131k giderme ve keskinle\u015ftirme algoritmalar\u0131 sunar. Her birinin farkl\u0131 g\u00fc\u00e7l\u00fc ve zay\u0131f y\u00f6nleri vard\u0131r. Parametrelerle (\u00f6rne\u011fin, kernel boyutu, sigma de\u011feri, iterasyon say\u0131s\u0131) oynayarak en iyi sonucu elde etmeye \u00e7al\u0131\u015f\u0131n.<\/li>\n<li><strong>G\u00fcr\u00fclt\u00fcye Dikkat Edin:<\/strong> Bulan\u0131kl\u0131k giderme i\u015flemleri genellikle g\u00f6r\u00fcnt\u00fcdeki g\u00fcr\u00fclt\u00fcy\u00fc art\u0131rma e\u011filimindedir. G\u00fcr\u00fclt\u00fc, bayra\u011f\u0131n okunmas\u0131n\u0131 engelleyebilir. Bu nedenle, bulan\u0131kl\u0131k giderme i\u015fleminden \u00f6nce veya sonra g\u00fcr\u00fclt\u00fc azaltma filtrelerini (\u00f6rne\u011fin, median filtre, non-local means denoising) uygulamay\u0131 d\u00fc\u015f\u00fcnebilirsiniz.<\/li>\n<li><strong>K\u00fc\u00e7\u00fck Detaylar\u0131 G\u00f6zden Ka\u00e7\u0131rmay\u0131n:<\/strong> Bazen bayrak, bulan\u0131k g\u00f6r\u00fcnt\u00fcn\u00fcn sadece k\u00fc\u00e7\u00fck bir b\u00f6l\u00fcm\u00fcnde veya kenar\u0131nda gizlenmi\u015f olabilir. G\u00f6r\u00fcnt\u00fcy\u00fc farkl\u0131 b\u00f6lgelere odaklanarak, parlakl\u0131k ve kontrast ayarlar\u0131n\u0131 de\u011fi\u015ftirerek dikkatlice inceleyin. Piksel renk de\u011ferlerindeki ani de\u011fi\u015fiklikler veya beklenmedik desenler ipucu olabilir.<\/li>\n<li><strong>\u0130pu\u00e7lar\u0131n\u0131 Birle\u015ftirin:<\/strong> CTF g\u00f6revleri genellikle birden fazla ipucunu birle\u015ftirerek \u00e7\u00f6z\u00fcl\u00fcr. \u00d6rne\u011fin, EXIF verilerinden elde etti\u011finiz bir tarih, steganografi ile gizlenmi\u015f bir \u015fifrenin bir par\u00e7as\u0131 olabilir veya bulan\u0131kl\u0131k giderme sonucu elde etti\u011finiz metin, ba\u015fka bir g\u00f6revin anahtar\u0131 olabilir. Her ipucunu not al\u0131n ve aralar\u0131ndaki ba\u011flant\u0131lar\u0131 kurmaya \u00e7al\u0131\u015f\u0131n.<\/li>\n<li><strong>Sab\u0131rl\u0131 Olun ve Denemekten \u00c7ekinmeyin:<\/strong> Bulan\u0131kl\u0131k giderme ve gizli veri bulma, deneme yan\u0131lma s\u00fcreci gerektirebilir. Bir y\u00f6ntem i\u015fe yaramazsa, ba\u015fka bir y\u00f6ntem deneyin. Ba\u015flang\u0131\u00e7ta anlams\u0131z g\u00f6r\u00fcnen veriler, do\u011fru ba\u011flamda anlam kazanabilir. Unutmay\u0131n, CTF'lerde ba\u015far\u0131, sadece teknik bilgiye de\u011fil, ayn\u0131 zamanda azim ve yarat\u0131c\u0131l\u0131\u011fa da ba\u011fl\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Bu ipu\u00e7lar\u0131, BroncoCTF \"Unblur Me\" m\u00fccadelesinde size yol g\u00f6sterecek ve bulan\u0131kl\u0131\u011f\u0131n ard\u0131ndaki s\u0131rlar\u0131 \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Her zaman a\u00e7\u0131k fikirli olun ve farkl\u0131 yakla\u015f\u0131mlar\u0131 denemekten \u00e7ekinmeyin.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>BroncoCTF gibi Capture The Flag yar\u0131\u015fmalar\u0131nda \"Unblur Me\" g\u00f6revleri, siber g\u00fcvenlik uzmanlar\u0131n\u0131n ve merakl\u0131lar\u0131n\u0131n g\u00f6r\u00fcnt\u00fc i\u015fleme, steganografi ve adli bili\u015fim alan\u0131ndaki becerilerini test eden heyecan verici m\u00fccadelelerdir. Bu makalede, bulan\u0131kla\u015ft\u0131r\u0131lm\u0131\u015f bir g\u00f6r\u00fcnt\u00fcn\u00fcn ard\u0131ndaki bilgiyi ortaya \u00e7\u0131karmak i\u00e7in kullan\u0131labilecek temel teknikleri, teorik arka planlar\u0131 ve pratik uygulama y\u00f6ntemlerini detayl\u0131 bir \u015fekilde inceledik. G\u00f6r\u00fcnt\u00fc bulan\u0131kla\u015ft\u0131rma tekniklerini anlamaktan, deconvolution algoritmalar\u0131yla netle\u015ftirmeye, LSB steganografisiyle gizli verileri bulmaktan, EXIF metaverileriyle adli bili\u015fim ipu\u00e7lar\u0131n\u0131 yakalamaya kadar geni\u015f bir yelpazede bilgi edindik.<\/p>\n<p>\u00d6zetle, bir \"Unblur Me\" g\u00f6revine yakla\u015f\u0131rken \u00e7ok y\u00f6nl\u00fc bir strateji benimsemek esast\u0131r. Sadece bulan\u0131kl\u0131\u011f\u0131 gidermeye odaklanmak yerine, g\u00f6r\u00fcnt\u00fcn\u00fcn dosya yap\u0131s\u0131n\u0131, metaverilerini ve olas\u0131 steganografik i\u00e7eriklerini de ara\u015ft\u0131rmal\u0131y\u0131z. Python'\u0131n OpenCV ve Pillow gibi g\u00fc\u00e7l\u00fc k\u00fct\u00fcphaneleri, bu s\u00fcre\u00e7te bize b\u00fcy\u00fck esneklik ve otomasyon imkanlar\u0131 sunar. Unutmayal\u0131m ki, siber g\u00fcvenlik d\u00fcnyas\u0131nda her zaman birden fazla katmanl\u0131 gizleme ve manip\u00fclasyon teknikleri kullan\u0131labilir. Bu nedenle, analitik d\u00fc\u015f\u00fcnme, sab\u0131r ve s\u00fcrekli deneme, bu t\u00fcr zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n            <strong>S: Her bulan\u0131k g\u00f6r\u00fcnt\u00fc netle\u015ftirilebilir mi?<\/strong><br \/>\n            <strong>C:<\/strong> Hay\u0131r, her bulan\u0131k g\u00f6r\u00fcnt\u00fc tamamen netle\u015ftirilemez. Bulan\u0131kl\u0131\u011f\u0131n derecesi ve t\u00fcr\u00fc, g\u00f6r\u00fcnt\u00fcn\u00fcn orijinal detaylar\u0131n\u0131n ne kadar\u0131n\u0131n kayboldu\u011funu belirler. \u00c7ok \u015fiddetli bulan\u0131kl\u0131k, orijinal bilgiyi geri d\u00f6nd\u00fcr\u00fclemez bir \u015fekilde yok edebilir. Ancak, \u00e7o\u011fu durumda, en az\u0131ndan baz\u0131 \u00f6nemli detaylar\u0131 ortaya \u00e7\u0131karmak m\u00fcmk\u00fcnd\u00fcr.\n        <\/li>\n<li>\n            <strong>S: \"Unblur Me\" g\u00f6revlerinde en s\u0131k kullan\u0131lan teknikler nelerdir?<\/strong><br \/>\n            <strong>C:<\/strong> En s\u0131k kullan\u0131lan teknikler aras\u0131nda g\u00f6r\u00fcnt\u00fc keskinle\u015ftirme (unsharp masking), deconvolution algoritmalar\u0131 (Wiener, Lucy-Richardson), LSB steganografi analizi ve EXIF metaveri incelemesi bulunur. G\u00f6revin karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131 olarak bu teknikler tek ba\u015f\u0131na veya birlikte kullan\u0131labilir.\n        <\/li>\n<li>\n            <strong>S: Python d\u0131\u015f\u0131nda hangi ara\u00e7lar\u0131 kullanabilirim?<\/strong><br \/>\n            <strong>C:<\/strong> Python k\u00fct\u00fcphanelerinin yan\u0131 s\u0131ra, Stegsolve (steganografi i\u00e7in), GIMP veya Photoshop gibi g\u00f6r\u00fcnt\u00fc d\u00fczenleme yaz\u0131l\u0131mlar\u0131 (manuel keskinle\u015ftirme ve kontrast ayarlar\u0131 i\u00e7in), ve <code>exiftool<\/code> (metaveri analizi i\u00e7in) gibi ara\u00e7lar da olduk\u00e7a faydal\u0131d\u0131r.\n        <\/li>\n<li>\n            <strong>S: Bulan\u0131kl\u0131k giderme i\u015flemi g\u00f6r\u00fcnt\u00fcy\u00fc her zaman daha iyi hale getirir mi?<\/strong><br \/>\n            <strong>C:<\/strong> Hay\u0131r, bulan\u0131kl\u0131k giderme algoritmalar\u0131 bazen g\u00f6r\u00fcnt\u00fcdeki g\u00fcr\u00fclt\u00fcy\u00fc art\u0131rabilir veya yapay \"halka\" (ringing) etkileri yaratabilir. Bu nedenle, en iyi sonucu elde etmek i\u00e7in farkl\u0131 parametrelerle denemeler yapmak ve g\u00fcr\u00fclt\u00fc azaltma tekniklerini kullanmak \u00f6nemlidir.\n        <\/li>\n<li>\n            <strong>S: CTF'lerde \"Unblur Me\" g\u00f6revleri neden bu kadar pop\u00fcler?<\/strong><br \/>\n            <strong>C:<\/strong> Bu g\u00f6revler, kat\u0131l\u0131mc\u0131lardan g\u00f6r\u00fcnt\u00fc i\u015fleme, adli bili\u015fim ve steganografi gibi farkl\u0131 siber g\u00fcvenlik disiplinlerinde bilgi ve beceri g\u00f6stermelerini gerektirdi\u011fi i\u00e7in pop\u00fclerdir. Ayn\u0131 zamanda, ger\u00e7ek d\u00fcnyadaki adli incelemelerde veya g\u00fcvenlik kameras\u0131 g\u00f6r\u00fcnt\u00fclerinin analizinde kar\u015f\u0131la\u015f\u0131lan senaryolar\u0131 sim\u00fcle ederler.\n        <\/li>\n<\/ul>\n<p>#BroncoCTF #UnblurMe #G\u00f6r\u00fcnt\u00fc\u0130\u015fleme #Steganografi #AdliBili\u015fim #CTF #SiberG\u00fcvenlik #Python<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/lsb-steganography-image-message-extraction\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/lsb-steganography-image-message-extraction<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Dijital d\u00fcnyada gizemli bir g\u00f6rselle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, bulan\u0131kl\u0131\u011f\u0131n ard\u0131nda yatan s\u0131rlar\u0131 \u00e7\u00f6zmek m\u00fcmk\u00fcn m\u00fc?","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-43279","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>BroncoCTF: Unblur Me Challenge&#039;\u0131n\u0131n Perde Arkas\u0131 - G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BroncoCTF: Unblur Me Challenge&#039;\u0131n\u0131n Perde Arkas\u0131 - G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri\" \/>\n<meta property=\"og:description\" content=\"Dijital d\u00fcnyada gizemli bir g\u00f6rselle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, bulan\u0131kl\u0131\u011f\u0131n ard\u0131nda yatan s\u0131rlar\u0131 \u00e7\u00f6zmek m\u00fcmk\u00fcn m\u00fc?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-12T18:06:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-12T18:07:10+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"BroncoCTF: Unblur Me Challenge&#8217;\u0131n\u0131n Perde Arkas\u0131 &#8211; G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri\",\"datePublished\":\"2026-07-12T18:06:32+00:00\",\"dateModified\":\"2026-07-12T18:07:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\"},\"wordCount\":4693,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\",\"name\":\"BroncoCTF: Unblur Me Challenge'\u0131n\u0131n Perde Arkas\u0131 - G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-07-12T18:06:32+00:00\",\"dateModified\":\"2026-07-12T18:07:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"BroncoCTF: Unblur Me Challenge&#8217;\u0131n\u0131n Perde Arkas\u0131 &#8211; G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"BroncoCTF: Unblur Me Challenge'\u0131n\u0131n Perde Arkas\u0131 - G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/","og_locale":"tr_TR","og_type":"article","og_title":"BroncoCTF: Unblur Me Challenge'\u0131n\u0131n Perde Arkas\u0131 - G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri","og_description":"Dijital d\u00fcnyada gizemli bir g\u00f6rselle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, bulan\u0131kl\u0131\u011f\u0131n ard\u0131nda yatan s\u0131rlar\u0131 \u00e7\u00f6zmek m\u00fcmk\u00fcn m\u00fc?","og_url":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-07-12T18:06:32+00:00","article_modified_time":"2026-07-12T18:07:10+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"BroncoCTF: Unblur Me Challenge&#8217;\u0131n\u0131n Perde Arkas\u0131 &#8211; G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri","datePublished":"2026-07-12T18:06:32+00:00","dateModified":"2026-07-12T18:07:10+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/"},"wordCount":4693,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/","url":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/","name":"BroncoCTF: Unblur Me Challenge'\u0131n\u0131n Perde Arkas\u0131 - G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-07-12T18:06:32+00:00","dateModified":"2026-07-12T18:07:10+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/broncoctf-unblur-me-challengeinin-perde-arkasi-goruntu-isleme-ve-adli-bilisim-yontemleri\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"BroncoCTF: Unblur Me Challenge&#8217;\u0131n\u0131n Perde Arkas\u0131 &#8211; G\u00f6r\u00fcnt\u00fc \u0130\u015fleme ve Adli Bili\u015fim Y\u00f6ntemleri"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=43279"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43279\/revisions"}],"predecessor-version":[{"id":43280,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/43279\/revisions\/43280"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=43279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=43279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=43279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}