{"id":39364,"date":"2026-02-19T19:02:00","date_gmt":"2026-02-19T16:02:00","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/"},"modified":"2026-02-19T19:02:00","modified_gmt":"2026-02-19T16:02:00","slug":"seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/","title":{"rendered":"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi"},"content":{"rendered":"<h2>SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi<\/h2>\n<p>Hack The Box platformunun mobil uygulama zorluklar\u0131ndan biri olan &#8220;SeeTheSharpFlag&#8221;, Android uygulama g\u00fcvenli\u011fine ilgi duyanlar i\u00e7in olduk\u00e7a \u00f6\u011fretici bir deneyim sunmaktad\u0131r. Bu yaz\u0131da, s\u00f6z konusu mobil challenge&#8217;\u0131 \u00e7\u00f6zmek i\u00e7in izlenen ad\u0131mlar\u0131, kullan\u0131lan ara\u00e7lar\u0131 ve kar\u015f\u0131la\u015f\u0131lan teknik zorluklar\u0131 detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Amac\u0131m\u0131z, uygulaman\u0131n derinliklerine inerek gizlenmi\u015f bayra\u011f\u0131 nas\u0131l buldu\u011fumuzu ad\u0131m ad\u0131m a\u00e7\u0131klamak ve mobil uygulama tersine m\u00fchendisli\u011fi ile g\u00fcvenlik analizine dair pratik bilgiler sunmakt\u0131r.<\/p>\n<h3>Uygulaman\u0131n Ke\u015ffi ve \u0130lk Analizler<\/h3>\n<p>Her siber g\u00fcvenlik challenge&#8217;\u0131nda oldu\u011fu gibi, &#8220;SeeTheSharpFlag&#8221; ile de ilk ad\u0131m uygulamay\u0131 tan\u0131mak ve temel i\u015flevselli\u011fini anlamakt\u0131r. Bu a\u015fama, daha sonraki statik ve dinamik analizler i\u00e7in bir yol haritas\u0131 olu\u015fturmam\u0131z\u0131 sa\u011flar.<\/p>\n<h4>Uygulaman\u0131n Elde Edilmesi ve Kurulumu<\/h4>\n<p>Challenge, bize bir <code>.apk<\/code> dosyas\u0131 olarak sunulur. Bu dosyay\u0131, bir Android em\u00fclat\u00f6r\u00fcne (\u00f6rne\u011fin Genymotion veya Android Studio AVD) veya fiziksel bir Android cihaza kurarak i\u015fe ba\u015flar\u0131z. Kurulum i\u00e7in <code>adb install <uygulama.apk><\/code> komutu yeterlidir. Uygulama kurulduktan sonra, aray\u00fcz\u00fcn\u00fc ve sa\u011flad\u0131\u011f\u0131 \u00f6zellikleri h\u0131zl\u0131ca g\u00f6zden ge\u00e7iririz. Genellikle bu t\u00fcr challenge&#8217;larda basit bir aray\u00fcz bulunur ve bayra\u011f\u0131 bulmak i\u00e7in bir ipucu veya giri\u015f alan\u0131 i\u00e7erebilir.<\/p>\n<h4>Temel \u0130\u015flevselli\u011fin \u0130ncelenmesi<\/h4>\n<p>Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda, genellikle bir giri\u015f ekran\u0131, bir buton veya basit bir metin g\u00f6r\u00fcnt\u00fcleyici gibi temel bile\u015fenlerle kar\u015f\u0131la\u015f\u0131r\u0131z. &#8220;SeeTheSharpFlag&#8221; \u00f6zelinde, uygulaman\u0131n aray\u00fcz\u00fc olduk\u00e7a minimaldir ve genellikle bir &#8220;Check Flag&#8221; veya benzeri bir butona sahiptir. Bu butonun ne yapt\u0131\u011f\u0131n\u0131, hangi verilere ihtiya\u00e7 duydu\u011funu ve nas\u0131l tepki verdi\u011fini anlamak, ilk ipu\u00e7lar\u0131n\u0131 toplamam\u0131z i\u00e7in kritiktir. Uygulaman\u0131n hata mesajlar\u0131n\u0131 veya logcat \u00e7\u0131kt\u0131lar\u0131n\u0131 izlemek (<code>adb logcat<\/code>) bu a\u015famada faydal\u0131 olabilir.<\/p>\n<h4>AndroidManifest.xml Analizi<\/h4>\n<p>Her Android uygulamas\u0131n\u0131n kalbinde <code>AndroidManifest.xml<\/code> dosyas\u0131 yer al\u0131r. Bu dosya, uygulaman\u0131n temel bile\u015fenlerini (aktiviteler, servisler, broadcast receiver&#8217;lar, i\u00e7erik sa\u011flay\u0131c\u0131lar), izinlerini ve di\u011fer yap\u0131land\u0131rma bilgilerini tan\u0131mlar. <code>apktool<\/code> gibi ara\u00e7larla APK dosyas\u0131n\u0131 a\u00e7t\u0131ktan sonra bu dosyay\u0131 incelemek, uygulaman\u0131n hangi izinlere sahip oldu\u011funu, hangi aktivitelerin d\u0131\u015fa aktar\u0131ld\u0131\u011f\u0131n\u0131 (exported) ve olas\u0131 giri\u015f noktalar\u0131n\u0131 belirlememize yard\u0131mc\u0131 olur. \u00d6rne\u011fin, d\u0131\u015fa aktar\u0131lm\u0131\u015f bir aktivite, uygulamay\u0131 belirli bir intent ile ba\u015flatarak dinamik analize ba\u015flamak i\u00e7in bir yol sunabilir.<\/p>\n<pre><code class=\"language-xml\"><manifest xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    package=\"com.example.seethesharpflag\">\n\n    <uses-permission android:name=\"android.permission.INTERNET\"\/>\n    <application\n        android:allowBackup=\"true\"\n        android:icon=\"@mipmap\/ic_launcher\"\n        android:label=\"@string\/app_name\"\n        android:roundIcon=\"@mipmap\/ic_launcher_round\"\n        android:supportsRtl=\"true\"\n        android:theme=\"@style\/AppTheme\">\n        <activity android:name=\".MainActivity\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" \/>\n                <category android:name=\"android.intent.category.LAUNCHER\" \/>\n            <\/intent-filter>\n        <\/activity>\n        <activity android:name=\".FlagActivity\" android:exported=\"false\"\/>\n        <!-- Di\u011fer bile\u015fenler -->\n    <\/application>\n<\/manifest>\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>FlagActivity<\/code>'nin <code>exported=\"false\"<\/code> olarak i\u015faretlenmesi, d\u0131\u015far\u0131dan do\u011frudan eri\u015filemedi\u011fini g\u00f6sterir ve uygulaman\u0131n i\u00e7 mant\u0131\u011f\u0131 \u00fczerinden ula\u015f\u0131lmas\u0131 gerekti\u011fini ima eder.<\/p>\n<h3>Statik Analiz: APK Tersine M\u00fchendislik<\/h3>\n<p>Statik analiz, uygulaman\u0131n kaynak kodunu \u00e7al\u0131\u015ft\u0131rmadan inceleme s\u00fcrecidir. Bu a\u015fama, uygulaman\u0131n mant\u0131\u011f\u0131n\u0131, gizli i\u015flevlerini ve potansiyel zafiyetleri anlamak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>APK Dosyas\u0131n\u0131n A\u00e7\u0131lmas\u0131 ve Kaynak Koda D\u00f6n\u00fc\u015ft\u00fcr\u00fclmesi<\/h4>\n<p>APK dosyalar\u0131 asl\u0131nda birer ZIP ar\u015fividir. \u0130\u00e7erisinde <code>classes.dex<\/code> (Dalvik\/ART bytecode), kaynaklar, varl\u0131klar ve <code>AndroidManifest.xml<\/code> gibi dosyalar\u0131 bar\u0131nd\u0131r\u0131r. <code>apktool<\/code> kullanarak APK'y\u0131 a\u00e7mak, kaynaklar\u0131 ve Smali kodunu (Dalvik bytecode'\u0131n insan taraf\u0131ndan okunabilir hali) elde etmemizi sa\u011flar:<\/p>\n<pre><code class=\"language-bash\">apktool d seethesharpflag.apk -o seethesharpflag_decompiled<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, <code>dex2jar<\/code> arac\u0131n\u0131 kullanarak <code>classes.dex<\/code> dosyas\u0131n\u0131 Java JAR dosyas\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr\u00fcz:<\/p>\n<pre><code class=\"language-bash\">d2j-dex2jar.sh classes.dex -o seethesharpflag.jar<\/pre>\n<p><\/code><\/p>\n<p>Bu JAR dosyas\u0131n\u0131 <code>JD-GUI<\/code> veya <code>Luyten<\/code> gibi bir Java dekompilat\u00f6r\u00fc ile a\u00e7arak, uygulaman\u0131n Java kaynak kodunu inceleyebiliriz. Bu, uygulaman\u0131n i\u015f mant\u0131\u011f\u0131n\u0131 anlamak i\u00e7in en verimli yoldur.<\/p>\n<h4>Kaynak Kodda Anahtar Kelime Aramalar\u0131<\/h4>\n<p>Dekomplile edilmi\u015f Java kodunda veya Smali kodunda anahtar kelime aramalar\u0131 yapmak, bayrak, \u015fifreleme, do\u011frulama, anahtar veya hassas API \u00e7a\u011fr\u0131lar\u0131 gibi kritik noktalar\u0131 h\u0131zl\u0131ca bulmam\u0131z\u0131 sa\u011flar. Genellikle \"flag\", \"key\", \"password\", \"validate\", \"check\", \"encrypt\", \"decrypt\", \"secret\" gibi terimler aran\u0131r. Ayr\u0131ca, uygulaman\u0131n paket ad\u0131n\u0131 veya spesifik s\u0131n\u0131f isimlerini hedefleyerek aramalar daralt\u0131labilir.<\/p>\n<pre><code class=\"language-bash\">grep -r \"flag\" seethesharpflag_decompiled\/smali\/\ngrep -r \"key\" seethesharpflag.jar<\/pre>\n<p><\/code><\/p>\n<p>Bu aramalar, bayra\u011f\u0131n do\u011frudan bir string olarak saklan\u0131p saklanmad\u0131\u011f\u0131n\u0131 veya bir fonksiyonun \u00e7\u0131kt\u0131s\u0131 olup olmad\u0131\u011f\u0131n\u0131 belirlememize yard\u0131mc\u0131 olur.<\/p>\n<h4>ProGuard\/Obfuscation Kontrol\u00fc<\/h4>\n<p>Baz\u0131 mobil uygulamalar, tersine m\u00fchendisli\u011fi zorla\u015ft\u0131rmak i\u00e7in ProGuard veya benzeri ara\u00e7larla kod kar\u0131\u015ft\u0131rma (obfuscation) teknikleri kullan\u0131r. E\u011fer dekompile edilmi\u015f kod okunaks\u0131z, s\u0131n\u0131f ve metod isimleri anlams\u0131z karakterlerden olu\u015fuyorsa (\u00f6rn. <code>a.b.c.d()<\/code>), bu bir obfuscation belirtisidir. Bu durumda, statik analiz daha zorla\u015f\u0131r ve dinamik analize daha fazla a\u011f\u0131rl\u0131k vermek gerekebilir. Ancak, \"SeeTheSharpFlag\" gibi challenge'larda genellikle bu seviyede bir obfuscation bulunmaz veya a\u015f\u0131labilir d\u00fczeydedir.<\/p>\n<h3>Dinamik Analiz: \u00c7al\u0131\u015fma Zaman\u0131 \u0130ncelemesi<\/h3>\n<p>Dinamik analiz, uygulaman\u0131n \u00e7al\u0131\u015fma zaman\u0131ndaki davran\u0131\u015f\u0131n\u0131 g\u00f6zlemlemeyi ve manip\u00fcle etmeyi i\u00e7erir. Bu, statik analizde anla\u015f\u0131lamayan veya gizlenmi\u015f mant\u0131klar\u0131 ortaya \u00e7\u0131karmak i\u00e7in \u00e7ok g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir.<\/p>\n<h4>Frida ile Enjeksiyon<\/h4>\n<p>Frida, dinamik analiz i\u00e7in en pop\u00fcler ve g\u00fc\u00e7l\u00fc ara\u00e7lardan biridir. \u00c7al\u0131\u015fan bir uygulamaya kod enjekte ederek metod \u00e7a\u011fr\u0131lar\u0131n\u0131 izleyebilir, arg\u00fcmanlar\u0131 de\u011fi\u015ftirebilir, d\u00f6n\u00fc\u015f de\u011ferlerini manip\u00fcle edebilir ve hatta yeni fonksiyonlar ekleyebiliriz. Frida'y\u0131 kullanmak i\u00e7in, hedef cihazda Frida sunucusunun \u00e7al\u0131\u015f\u0131yor olmas\u0131 ve bilgisayar\u0131m\u0131zda Frida istemcisinin y\u00fckl\u00fc olmas\u0131 gerekir.<\/p>\n<pre><code class=\"language-bash\"># Frida sunucusunu cihaza itme ve \u00e7al\u0131\u015ft\u0131rma\nadb push frida-server \/data\/local\/tmp\/\nadb shell \"chmod 755 \/data\/local\/tmp\/frida-server\"\nadb shell \"\/data\/local\/tmp\/frida-server &\"\n\n# Uygulaman\u0131n PID'sini bulma\nadb shell ps | grep com.example.seethesharpflag\n\n# Frida ile enjeksiyon (\u00f6rnek bir script ile)\nfrida -U -l myscript.js com.example.seethesharpflag<\/pre>\n<p><\/code><\/p>\n<h4>Uygulama Ak\u0131\u015f\u0131n\u0131n \u0130zlenmesi<\/h4>\n<p>Frida scriptleri ile uygulaman\u0131n belirli metodlar\u0131n\u0131 hook'layarak, bu metodlar\u0131n ne zaman \u00e7a\u011fr\u0131ld\u0131\u011f\u0131n\u0131, hangi arg\u00fcmanlarla \u00e7a\u011fr\u0131ld\u0131\u011f\u0131n\u0131 ve ne d\u00f6nd\u00fcrd\u00fc\u011f\u00fcn\u00fc g\u00f6zlemleyebiliriz. \u00d6zellikle bayrak kontrol\u00fc yapan veya hassas verileri i\u015fleyen metodlar\u0131 hedef al\u0131r\u0131z. \u00d6rne\u011fin, bir butona t\u0131kland\u0131\u011f\u0131nda hangi metodlar\u0131n \u00e7a\u011fr\u0131ld\u0131\u011f\u0131n\u0131 izlemek, uygulaman\u0131n i\u015f mant\u0131\u011f\u0131n\u0131 anlamam\u0131za yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-javascript\">\/\/ myscript.js \u00f6rne\u011fi: MainActivity'deki bir metodu hook'lama\nJava.perform(function () {\n    var MainActivity = Java.use(\"com.example.seethesharpflag.MainActivity\");\n    MainActivity.checkFlag.implementation = function (flagInput) {\n        console.log(\"checkFlag called with: \" + flagInput);\n        var result = this.checkFlag(flagInput);\n        console.log(\"checkFlag returned: \" + result);\n        return result;\n    };\n});<\/pre>\n<p><\/code><\/p>\n<h4>Metod \u00c7a\u011fr\u0131lar\u0131n\u0131n ve Arg\u00fcmanlar\u0131n Takibi<\/h4>\n<p>Frida'n\u0131n <code>Java.use()<\/code> ve <code>.implementation<\/code> \u00f6zellikleri sayesinde, istedi\u011fimiz Java s\u0131n\u0131flar\u0131n\u0131 ve metodlar\u0131n\u0131 hedefleyebiliriz. Bu, \u00f6zellikle \u015fifreleme\/de\u015fifreleme i\u015flemleri, string kar\u015f\u0131la\u015ft\u0131rmalar\u0131 veya veritaban\u0131 sorgular\u0131 gibi kritik noktalarda \u00e7ok de\u011ferlidir. Metod arg\u00fcmanlar\u0131n\u0131 ve d\u00f6n\u00fc\u015f de\u011ferlerini loglayarak, uygulaman\u0131n i\u00e7 i\u015fleyi\u015fi hakk\u0131nda derinlemesine bilgi edinebiliriz. Bu sayede, bayra\u011f\u0131n nas\u0131l do\u011frulanmas\u0131 gerekti\u011fini veya hangi de\u011ferlerin kritik oldu\u011funu anlayabiliriz.<\/p>\n<h3>Kritik Fonksiyonlar\u0131n Anla\u015f\u0131lmas\u0131<\/h3>\n<p>Statik ve dinamik analizlerden elde etti\u011fimiz bilgilerle, uygulaman\u0131n bayra\u011f\u0131 kontrol eden veya i\u015fleyen kritik fonksiyonlar\u0131n\u0131 daha yak\u0131ndan incelemeye ba\u015flar\u0131z.<\/p>\n<h4>\u015eifreleme\/Dekriptleme Mekanizmalar\u0131<\/h4>\n<p>Bir\u00e7ok mobil challenge'da bayrak veya kritik veriler \u015fifrelenmi\u015f olarak saklan\u0131r. Uygulama i\u00e7erisinde \u015fifreleme algoritmalar\u0131n\u0131 (AES, RSA vb.) ve anahtarlar\u0131 arar\u0131z. E\u011fer anahtar kodun i\u00e7inde sabit kodlanm\u0131\u015fsa, bu do\u011frudan bir zafiyet olabilir. Frida ile \u015fifreleme\/de\u015fifreleme metodlar\u0131n\u0131 hook'layarak, i\u015flenen a\u00e7\u0131k metin veya \u015fifreli metinleri ve kullan\u0131lan anahtarlar\u0131 yakalayabiliriz.<\/p>\n<pre><code class=\"language-javascript\">\/\/ \u00d6rnek: Bir \u015fifreleme metodunu hook'lama\nJava.perform(function () {\n    var Cipher = Java.use(\"javax.crypto.Cipher\");\n    Cipher.doFinal.overload('[B').implementation = function (input) {\n        console.log(\"Cipher.doFinal input: \" + Java.array('byte', input));\n        var result = this.doFinal(input);\n        console.log(\"Cipher.doFinal output: \" + Java.array('byte', result));\n        return result;\n    };\n});<\/pre>\n<p><\/code><\/p>\n<h4>Native K\u00fct\u00fcphanelerin \u0130ncelenmesi (JNI, C\/C++)<\/h4>\n<p>Baz\u0131 uygulamalar, performans veya g\u00fcvenlik nedeniyle kritik mant\u0131klar\u0131 C\/C++ gibi native kodda yazar ve Java Native Interface (JNI) arac\u0131l\u0131\u011f\u0131yla Java katman\u0131ndan \u00e7a\u011f\u0131r\u0131r. Native kod, tersine m\u00fchendisli\u011fi daha zor hale getirse de, Ghidra veya IDA Pro gibi ara\u00e7larla analiz edilebilir. Frida, native fonksiyonlar\u0131 da hook'layabilir, bu da native katmandaki i\u015fleyi\u015fi anlamam\u0131za yard\u0131mc\u0131 olur. <code>System.loadLibrary()<\/code> \u00e7a\u011fr\u0131lar\u0131, native k\u00fct\u00fcphanelerin varl\u0131\u011f\u0131n\u0131 i\u015faret eder.<\/p>\n<h4>Veri Depolama Y\u00f6ntemleri<\/h4>\n<p>Uygulamalar, verileri \u00e7e\u015fitli \u015fekillerde depolayabilir: SharedPreferences, SQLite veritabanlar\u0131, dahili\/harici depolama veya a\u011f \u00fczerinden. Bayra\u011f\u0131n veya ona yol a\u00e7an ipu\u00e7lar\u0131n\u0131n bu depolama alanlar\u0131nda saklan\u0131p saklanmad\u0131\u011f\u0131n\u0131 kontrol ederiz. <code>adb shell<\/code> ile cihaz\u0131n dosya sistemine eri\u015ferek bu alanlar\u0131 manuel olarak inceleyebiliriz.<\/p>\n<table class=\"table\">\n<thead>\n<tr>\n<th>Depolama Y\u00f6ntemi<\/th>\n<th>\u0130nceleme Yolu<\/th>\n<th>Potansiyel \u0130\u00e7erik<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>SharedPreferences<\/td>\n<td><code>\/data\/data\/<paket_ad\u0131>\/shared_prefs\/<\/code><\/td>\n<td>Ayarlar, k\u00fc\u00e7\u00fck veriler, bazen bayrak par\u00e7alar\u0131<\/td>\n<\/tr>\n<tr>\n<td>SQLite Veritaban\u0131<\/td>\n<td><code>\/data\/data\/<paket_ad\u0131>\/databases\/<\/code><\/td>\n<td>Yap\u0131sal veriler, kullan\u0131c\u0131 bilgileri, loglar<\/td>\n<\/tr>\n<tr>\n<td>Dahili Depolama<\/td>\n<td><code>\/data\/data\/<paket_ad\u0131>\/files\/<\/code><\/td>\n<td>Uygulama taraf\u0131ndan olu\u015fturulan dosyalar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Zafiyetin Tespiti ve \u0130stismar<\/h3>\n<p>Toplad\u0131\u011f\u0131m\u0131z t\u00fcm bilgilerle, uygulaman\u0131n bayra\u011f\u0131 koruma mekanizmas\u0131ndaki zafiyeti veya bypass edilebilir bir noktay\u0131 tespit etmeye \u00e7al\u0131\u015f\u0131r\u0131z. \"SeeTheSharpFlag\" gibi challenge'lar genellikle basit ama g\u00f6zden ka\u00e7abilecek bir mant\u0131k hatas\u0131 veya zay\u0131f bir g\u00fcvenlik kontrol\u00fc i\u00e7erir.<\/p>\n<h4>G\u00fcvenlik Kontrollerinin Bypass Edilmesi<\/h4>\n<p>Uygulama, genellikle bayra\u011f\u0131 g\u00f6stermeden \u00f6nce bir dizi kontrol yapar (\u00f6rne\u011fin, do\u011fru bir giri\u015f, belirli bir durumun sa\u011flanmas\u0131). Bu kontrolleri statik analizle tespit ettikten sonra, dinamik analizde Frida kullanarak bypass etmeye \u00e7al\u0131\u015f\u0131r\u0131z. \u00d6rne\u011fin, bir <code>if (isCorrectFlag(input))<\/code> kontrol\u00fcnde, <code>isCorrectFlag<\/code> metodunun d\u00f6n\u00fc\u015f de\u011ferini her zaman <code>true<\/code> olarak de\u011fi\u015ftirebiliriz.<\/p>\n<pre><code class=\"language-javascript\">\/\/ \u00d6rnek: Bir do\u011frulama metodunu bypass etme\nJava.perform(function () {\n    var FlagValidator = Java.use(\"com.example.seethesharpflag.FlagValidator\");\n    FlagValidator.isCorrect.implementation = function (input) {\n        console.log(\"isCorrect called with: \" + input);\n        \/\/ Orijinal metodu \u00e7a\u011f\u0131rmadan do\u011frudan true d\u00f6nd\u00fcr\n        return true; \n    };\n});<\/pre>\n<p><\/code><\/p>\n<h4>Kod Enjeksiyonu ve Manip\u00fclasyonu<\/h4>\n<p>Frida ile yaln\u0131zca mevcut metodlar\u0131 hook'lamakla kalmay\u0131p, uygulaman\u0131n \u00e7al\u0131\u015fma zaman\u0131nda yeni kod enjekte edebilir veya mevcut kodun davran\u0131\u015f\u0131n\u0131 tamamen de\u011fi\u015ftirebiliriz. Bu, \u00f6zellikle karma\u015f\u0131k mant\u0131klar\u0131 a\u015fmak veya gizli fonksiyonlar\u0131 tetiklemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. \u00d6rne\u011fin, bir uygulaman\u0131n dahili bir metodunu d\u0131\u015far\u0131dan \u00e7a\u011f\u0131rarak, normalde eri\u015filemeyen bir i\u015flemi tetikleyebiliriz.<\/p>\n<h4>Bayrak Kontrol Mekanizmas\u0131n\u0131n A\u015f\u0131lmas\u0131<\/h4>\n<p>\"SeeTheSharpFlag\" challenge'\u0131nda, bayrak genellikle uygulaman\u0131n bir yerinde gizlenmi\u015f ve belirli bir ko\u015ful sa\u011fland\u0131\u011f\u0131nda ortaya \u00e7\u0131kan bir stringdir. Bu ko\u015ful, bir matematiksel i\u015flem, bir string kar\u015f\u0131la\u015ft\u0131rmas\u0131 veya bir \u015fifre \u00e7\u00f6zme i\u015flemi olabilir. Amac\u0131m\u0131z, bu ko\u015fulu ya do\u011frudan sa\u011flamak ya da kontrol mekanizmas\u0131n\u0131 atlayarak bayra\u011fa ula\u015fmakt\u0131r. Genellikle, uygulaman\u0131n bir metodunun i\u00e7indeki bir string yap\u0131s\u0131 veya bir metot \u00e7a\u011fr\u0131s\u0131n\u0131n d\u00f6n\u00fc\u015f de\u011feri bayra\u011f\u0131 i\u00e7erir. Frida ile bu metodlar\u0131 izleyerek veya manip\u00fcle ederek bayra\u011f\u0131 elde ederiz.<\/p>\n<h3>Bayra\u011f\u0131n Elde Edilmesi<\/h3>\n<p>T\u00fcm bu analizler sonucunda, bayra\u011f\u0131n nerede oldu\u011funu ve nas\u0131l elde edilece\u011fini belirlemi\u015f oluruz. Bu genellikle, bir Frida scripti arac\u0131l\u0131\u011f\u0131yla bir metodun d\u00f6n\u00fc\u015f de\u011ferini yakalamak veya bir depolama alan\u0131ndan okumak \u015feklinde ger\u00e7ekle\u015fir.<\/p>\n<h4>Elde Edilen Bilgilerin Birle\u015ftirilmesi<\/h4>\n<p>Statik analizden elde etti\u011fimiz s\u0131n\u0131f ve metod isimleri ile dinamik analizde g\u00f6zlemledi\u011fimiz \u00e7al\u0131\u015fma zaman\u0131 davran\u0131\u015flar\u0131n\u0131 birle\u015ftirerek, bayra\u011f\u0131 bar\u0131nd\u0131ran veya \u00fcreten nihai noktay\u0131 tespit ederiz. \u00d6rne\u011fin, statik analizde <code>getSecretFlag()<\/code> ad\u0131nda bir metod g\u00f6rd\u00fcysek, dinamik analizde bu metodu hook'layarak d\u00f6n\u00fc\u015f de\u011ferini yakalamaya \u00e7al\u0131\u015f\u0131r\u0131z.<\/p>\n<h4>Bayra\u011f\u0131n Format\u0131 ve Do\u011frulanmas\u0131<\/h4>\n<p>Hack The Box challenge'lar\u0131nda bayraklar genellikle belirli bir formatta (\u00f6rn. <code>HTB{...}<\/code>) olur. Elde etti\u011fimiz stringin bu formata uygun olup olmad\u0131\u011f\u0131n\u0131 kontrol ederiz. E\u011fer de\u011filse, elde etti\u011fimiz bilginin bayra\u011f\u0131n bir par\u00e7as\u0131 m\u0131 yoksa \u015fifrelenmi\u015f hali mi oldu\u011funu anlamaya \u00e7al\u0131\u015f\u0131r\u0131z. Bayra\u011f\u0131 do\u011fru formatta elde ettikten sonra, Hack The Box platformuna g\u00f6ndererek challenge'\u0131 tamamlar\u0131z.<\/p>\n<h4>\u00c7\u00f6z\u00fcm Ad\u0131mlar\u0131n\u0131n \u00d6zeti<\/h4>\n<ol>\n<li>APK'y\u0131 kur ve temel i\u015flevselli\u011fi anla.<\/li>\n<li>APK'y\u0131 dekompile et (apktool, dex2jar, JD-GUI).<\/li>\n<li>Kaynak kodda \"flag\", \"key\" gibi anahtar kelimeleri ara.<\/li>\n<li>Frida'y\u0131 kur ve uygulamaya enjekte et.<\/li>\n<li>Kritik metodlar\u0131 (\u00f6rne\u011fin, bayrak kontrol\u00fc yapan metodlar) hook'la.<\/li>\n<li>Metod \u00e7a\u011fr\u0131lar\u0131n\u0131, arg\u00fcmanlar\u0131 ve d\u00f6n\u00fc\u015f de\u011ferlerini izle.<\/li>\n<li>Gerekirse g\u00fcvenlik kontrollerini bypass et veya kodu manip\u00fcle et.<\/li>\n<li>Bayra\u011f\u0131 i\u00e7eren stringi yakala.<\/li>\n<\/ol>\n<h3>Al\u0131nan Dersler ve \u00d6neriler<\/h3>\n<p>\"SeeTheSharpFlag\" gibi mobil challenge'lar, siber g\u00fcvenlik alan\u0131nda \u00e7al\u0131\u015fan veya bu alana ilgi duyan herkes i\u00e7in de\u011ferli dersler sunar.<\/p>\n<h4>Mobil Uygulama G\u00fcvenli\u011fi \u0130pu\u00e7lar\u0131<\/h4>\n<ul>\n<li><strong>Asla Hassas Verileri Sabit Kodlama:<\/strong> \u015eifreleme anahtarlar\u0131, API anahtarlar\u0131 veya bayraklar do\u011frudan kaynak kodda veya uygulama varl\u0131klar\u0131nda sabit kodlanmamal\u0131d\u0131r.<\/li>\n<li><strong>G\u00fc\u00e7l\u00fc \u015eifreleme Kullan\u0131m\u0131:<\/strong> Hassas veriler her zaman g\u00fc\u00e7l\u00fc ve g\u00fcncel \u015fifreleme algoritmalar\u0131yla korunmal\u0131, anahtarlar g\u00fcvenli bir \u015fekilde y\u00f6netilmelidir.<\/li>\n<li><strong>Kod Kar\u0131\u015ft\u0131rma (Obfuscation) Kullan\u0131m\u0131:<\/strong> Tersine m\u00fchendisli\u011fi zorla\u015ft\u0131rmak i\u00e7in ProGuard gibi ara\u00e7lar kullan\u0131lmal\u0131d\u0131r, ancak bunun tam bir g\u00fcvenlik \u00e7\u00f6z\u00fcm\u00fc olmad\u0131\u011f\u0131 unutulmamal\u0131d\u0131r.<\/li>\n<li><strong>JNI ve Native Kodun Ak\u0131ll\u0131ca Kullan\u0131m\u0131:<\/strong> Kritik mant\u0131klar native kodda yaz\u0131labilir, ancak bu da analizden muaf de\u011fildir ve dikkatli bir \u015fekilde uygulanmal\u0131d\u0131r.<\/li>\n<li><strong>G\u00fcvenli Veri Depolama:<\/strong> Veriler, Android'in sa\u011flad\u0131\u011f\u0131 g\u00fcvenli depolama mekanizmalar\u0131 (\u00f6rne\u011fin Keystore) kullan\u0131larak saklanmal\u0131d\u0131r.<\/li>\n<\/ul>\n<h4>Geli\u015ftiriciler \u0130\u00e7in \u00d6neriler<\/h4>\n<p>Mobil uygulama geli\u015ftiricileri, g\u00fcvenlik testlerini geli\u015ftirme s\u00fcrecinin erken a\u015famalar\u0131nda entegre etmelidir. Statik uygulama g\u00fcvenlik testi (SAST) ve dinamik uygulama g\u00fcvenlik testi (DAST) ara\u00e7lar\u0131 kullanmak, bilinen zafiyetleri tespit etmeye yard\u0131mc\u0131 olabilir. Ayr\u0131ca, g\u00fcvenlik bilincini art\u0131rmak ve g\u00fcvenli kodlama pratiklerini benimsemek, daha sa\u011flam uygulamalar geli\u015ftirmek i\u00e7in elzemdir.<\/p>\n<h4>Penetrasyon Testi Perspektifinden Bak\u0131\u015f<\/h4>\n<p>Mobil uygulama penetrasyon testlerinde, \"SeeTheSharpFlag\" challenge'\u0131nda kullan\u0131lan teknikler (statik ve dinamik analiz, Frida ile enjeksiyon, dekompilasyon) s\u0131kl\u0131kla uygulan\u0131r. Bu challenge, ger\u00e7ek d\u00fcnya senaryolar\u0131nda kar\u015f\u0131la\u015f\u0131lacak mobil uygulama zafiyetlerini tespit etme ve istismar etme becerilerini geli\u015ftirmek i\u00e7in harika bir pratik sa\u011flam\u0131\u015ft\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>\"SeeTheSharpFlag\" Hack The Box mobil challenge'\u0131, Android uygulama tersine m\u00fchendisli\u011fi ve dinamik analizin temel prensiplerini uygulamal\u0131 olarak \u00f6\u011frenmek i\u00e7in m\u00fckemmel bir f\u0131rsat sundu. Statik analizle kodun genel yap\u0131s\u0131n\u0131 anlamak, dinamik analizle (\u00f6zellikle Frida kullanarak) \u00e7al\u0131\u015fma zaman\u0131 davran\u0131\u015f\u0131n\u0131 manip\u00fcle etmek ve son olarak bayra\u011f\u0131 elde etmek, mobil g\u00fcvenlik analizinin tipik ad\u0131mlar\u0131n\u0131 yans\u0131tmaktad\u0131r. Bu t\u00fcr challenge'lar, hem teorik bilgiyi peki\u015ftirmek hem de pratik becerileri geli\u015ftirmek ad\u0131na vazge\u00e7ilmezdir. Umar\u0131z bu detayl\u0131 yaz\u0131l\u0131m, mobil uygulama g\u00fcvenli\u011fi d\u00fcnyas\u0131na ad\u0131m atmak isteyenlere yol g\u00f6sterici olmu\u015ftur.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<dl>\n<dt>Bu challenge'\u0131n temel zorlu\u011fu neydi?<\/dt>\n<dd>Temel zorluk, uygulaman\u0131n bayra\u011f\u0131 do\u011frulama mant\u0131\u011f\u0131n\u0131 statik ve dinamik analiz y\u00f6ntemleriyle \u00e7\u00f6zmek, ard\u0131ndan bu mant\u0131\u011f\u0131 a\u015farak bayra\u011fa ula\u015fmakt\u0131. Genellikle bu t\u00fcr challenge'lar, basit ama iyi gizlenmi\u015f bir mant\u0131k hatas\u0131 i\u00e7erir.<\/dd>\n<dt>Hangi ara\u00e7lar bu challenge'\u0131 \u00e7\u00f6zmek i\u00e7in kritikti?<\/dt>\n<dd><code>apktool<\/code> (APK'y\u0131 a\u00e7mak i\u00e7in), <code>dex2jar<\/code> (DEX'i JAR'a d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in), <code>JD-GUI<\/code> veya <code>Luyten<\/code> (Java kodunu dekompile etmek i\u00e7in) ve \u00f6zellikle <code>Frida<\/code> (dinamik analiz ve runtime manip\u00fclasyon i\u00e7in) bu challenge'\u0131n \u00e7\u00f6z\u00fcm\u00fcnde kritik rol oynam\u0131\u015ft\u0131r. Ayr\u0131ca <code>adb<\/code> komutlar\u0131 da cihaz etkile\u015fimi i\u00e7in \u00f6nemlidir.<\/dd>\n<dt>Mobil uygulama g\u00fcvenli\u011fi i\u00e7in en \u00f6nemli ipucu nedir?<\/dt>\n<dd>En \u00f6nemli ipucu, hassas verileri ve kritik mant\u0131\u011f\u0131 asla istemci taraf\u0131nda (uygulaman\u0131n kendisinde) g\u00fcvenli\u011fe almamakt\u0131r. M\u00fcmk\u00fcn oldu\u011funca sunucu taraf\u0131nda i\u015flemek ve istemci taraf\u0131nda sadece sunucudan gelen verileri g\u00fcvenli bir \u015fekilde g\u00f6r\u00fcnt\u00fclemek\/i\u015flemek gerekir. Ayr\u0131ca, kod kar\u0131\u015ft\u0131rma (obfuscation) ve root tespiti gibi ek g\u00fcvenlik \u00f6nlemleri de al\u0131nabilir, ancak bunlar tam bir \u00e7\u00f6z\u00fcm de\u011fildir.<\/dd>\n<dt>Bu t\u00fcr challenge'lar siber g\u00fcvenlik kariyerine nas\u0131l katk\u0131 sa\u011flar?<\/dt>\n<dd>Bu t\u00fcr challenge'lar, mobil uygulama penetrasyon testi, tersine m\u00fchendislik ve zafiyet analizi gibi alanlarda pratik deneyim kazand\u0131r\u0131r. Problem \u00e7\u00f6zme yetene\u011fini geli\u015ftirir, farkl\u0131 ara\u00e7lar\u0131 kullanma becerisini art\u0131r\u0131r ve ger\u00e7ek d\u00fcnya g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 anlama konusunda de\u011ferli i\u00e7g\u00f6r\u00fcler sunar.<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"Her siber g\u00fcvenlik challenge&#8217;\u0131nda oldu\u011fu gibi, &#8220;SeeTheSharpFlag&#8221; ile de ilk ad\u0131m uygulamay\u0131 tan\u0131mak ve temel i\u015flevselli\u011fini anlamakt\u0131r. Bu a\u015fama, d&#8230;","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-39364","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>SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi - 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\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi\" \/>\n<meta property=\"og:description\" content=\"Her siber g\u00fcvenlik challenge&#039;\u0131nda oldu\u011fu gibi, &quot;SeeTheSharpFlag&quot; ile de ilk ad\u0131m uygulamay\u0131 tan\u0131mak ve temel i\u015flevselli\u011fini anlamakt\u0131r. Bu a\u015fama, d...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-19T16:02:00+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=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi\",\"datePublished\":\"2026-02-19T16:02:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\"},\"wordCount\":2566,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\",\"name\":\"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-19T16:02:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi\"}]},{\"@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":"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi - 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\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/","og_locale":"tr_TR","og_type":"article","og_title":"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi","og_description":"Her siber g\u00fcvenlik challenge'\u0131nda oldu\u011fu gibi, \"SeeTheSharpFlag\" ile de ilk ad\u0131m uygulamay\u0131 tan\u0131mak ve temel i\u015flevselli\u011fini anlamakt\u0131r. Bu a\u015fama, d...","og_url":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-19T16:02:00+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi","datePublished":"2026-02-19T16:02:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/"},"wordCount":2566,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/","url":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/","name":"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-19T16:02:00+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/seethesharpflag-hack-the-box-mobil-uygulama-zorlugunun-derinlemesine-analizi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SeeTheSharpFlag: Hack The Box Mobil Uygulama Zorlu\u011funun Derinlemesine Analizi"}]},{"@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\/39364","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=39364"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39364\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}