{"id":45587,"date":"2026-11-07T21:11:42","date_gmt":"2026-11-07T18:11:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/"},"modified":"2026-11-07T21:12:17","modified_gmt":"2026-11-07T18:12:17","slug":"osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/","title":{"rendered":"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma"},"content":{"rendered":"<h2>osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma<\/h2>\n<p>Yapay zeka asistanlar\u0131yla yap\u0131lan kodlama oturumlar\u0131, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kritik \u00f6neme sahiptir. Bu de\u011ferli Claude Code ve Codex oturumlar\u0131 disk \u00fczerinde nas\u0131l depolan\u0131r ve bir felaket durumunda osFoundry gibi ara\u00e7larla Python kullanarak nas\u0131l yeniden yap\u0131land\u0131r\u0131l\u0131r? Bu makale, kay\u0131p gibi g\u00f6r\u00fcnen kodlama ge\u00e7mi\u015finizi geri getirmenin teknik detaylar\u0131n\u0131 a\u00e7\u0131kl\u0131yor ve dijital miras\u0131n\u0131z\u0131 koruman\u0131n yollar\u0131n\u0131 g\u00f6steriyor.<\/p>\n<h3>Giri\u015f: Kay\u0131p Kodlama Oturumlar\u0131 Kabusu ve \u00c7\u00f6z\u00fcm\u00fc<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, yapay zeka (YZ) destekli kodlama ara\u00e7lar\u0131, geli\u015ftiricilerin verimlili\u011fini ve yarat\u0131c\u0131l\u0131\u011f\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rm\u0131\u015ft\u0131r. Anthropic&#8217;in Claude Code&#8217;u veya OpenAI&#8217;nin Codex&#8217;i gibi platformlar, karma\u015f\u0131k problemlerin \u00e7\u00f6z\u00fcm\u00fcnde, yeni kod par\u00e7ac\u0131klar\u0131n\u0131n olu\u015fturulmas\u0131nda ve mevcut kodlar\u0131n iyile\u015ftirilmesinde paha bi\u00e7ilmez yard\u0131mc\u0131lar haline gelmi\u015ftir. Bu ara\u00e7larla yap\u0131lan her etkile\u015fim, bir problem \u00e7\u00f6zme s\u00fcrecinin, bir fikir f\u0131rt\u0131nas\u0131n\u0131n veya bir \u00f6\u011frenme an\u0131n\u0131n dijital kayd\u0131d\u0131r. Ancak, bilgisayar \u00e7\u00f6kmeleri, yanl\u0131\u015fl\u0131kla silmeler, disk bozulmalar\u0131 veya yaz\u0131l\u0131m hatalar\u0131 gibi beklenmedik durumlar, bu de\u011ferli kodlama oturumlar\u0131n\u0131n kal\u0131c\u0131 olarak kaybolmas\u0131na neden olabilir. B\u00f6yle bir senaryo, sadece zaman kayb\u0131na yol a\u00e7makla kalmaz, ayn\u0131 zamanda projelerin aksamas\u0131na ve \u00f6nemli verilerin yitirilmesine de sebep olabilir. \u0130\u015fte tam bu noktada, kay\u0131p verileri disk \u00fczerinden bulma ve yeniden yap\u0131land\u0131rma yetene\u011fi, geli\u015ftiriciler i\u00e7in hayati bir \u00f6nem ta\u015f\u0131r.<\/p>\n<p>Bu makalede, dijital adli bili\u015fim (digital forensics) ve veri kurtarma alan\u0131nda kullan\u0131lan g\u00fc\u00e7l\u00fc bir \u00e7er\u00e7eve olan osFoundry&#8217;nin, yapay zeka destekli kodlama oturumlar\u0131n\u0131 diskten nas\u0131l tespit edip kurtard\u0131\u011f\u0131n\u0131 derinlemesine inceleyece\u011fiz. \u00d6zellikle, Python programlama dilinin bu s\u00fcre\u00e7teki merkezi rol\u00fcn\u00fc ve veri ayr\u0131\u015ft\u0131rma (parsing), analiz ve yeniden yap\u0131land\u0131rma algoritmalar\u0131n\u0131n nas\u0131l geli\u015ftirilebilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Amac\u0131m\u0131z, okuyuculara, kaybolan Claude Code ve Codex oturumlar\u0131n\u0131n diskte nas\u0131l iz b\u0131rakt\u0131\u011f\u0131n\u0131, bu izlerin osFoundry taraf\u0131ndan nas\u0131l yorumland\u0131\u011f\u0131n\u0131 ve son olarak, Python ile bu da\u011f\u0131n\u0131k par\u00e7ac\u0131klar\u0131n anlaml\u0131 bir b\u00fct\u00fcn haline nas\u0131l getirilebilece\u011fini \u00f6\u011fretmektir. Bu sayede, hem geli\u015ftiriciler hem de adli bili\u015fim uzmanlar\u0131, dijital varl\u0131klar\u0131n\u0131 koruma ve kay\u0131p verileri geri getirme konusunda daha donan\u0131ml\u0131 hale gelecektir. Bu teknikler, sadece bir felaket an\u0131nda de\u011fil, ayn\u0131 zamanda sistemlerin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve verilerin nerede sakland\u0131\u011f\u0131n\u0131 anlamak i\u00e7in de \u00f6nemli bir bak\u0131\u015f a\u00e7\u0131s\u0131 sunacakt\u0131r.<\/p>\n<h3>Claude Code ve Codex Oturumlar\u0131 Disk \u00dczerinde Nas\u0131l Depolan\u0131r?<\/h3>\n<p>Yapay zeka destekli kodlama asistanlar\u0131 olan Claude Code ve Codex gibi ara\u00e7lar, kullan\u0131c\u0131 etkile\u015fimlerini ve \u00fcretilen kodlar\u0131 genellikle yerel disk \u00fczerinde \u00e7e\u015fitli formatlarda depolarlar. Bu depolama y\u00f6ntemleri, uygulaman\u0131n mimarisine, i\u015fletim sistemine ve veri g\u00fcvenli\u011fi politikalar\u0131na g\u00f6re de\u011fi\u015fiklik g\u00f6sterebilir. Ancak genel olarak, bu t\u00fcr uygulamalar, kullan\u0131c\u0131lar\u0131n ge\u00e7mi\u015f oturumlar\u0131na kolayca eri\u015febilmesini sa\u011flamak, \u00e7evrimd\u0131\u015f\u0131 \u00e7al\u0131\u015fma yetene\u011fi sunmak veya performans optimizasyonu yapmak amac\u0131yla belirli verileri yerel olarak saklar. Bu veriler, kurtarma operasyonlar\u0131 i\u00e7in kritik \u00f6neme sahip &#8220;dijital izler&#8221; b\u0131rak\u0131r.<\/p>\n<p>Tipik olarak, bu oturum verileri a\u015fa\u011f\u0131daki formatlarda ve konumlarda bulunabilir:<\/p>\n<ul>\n<li><strong>JSON veya YAML Dosyalar\u0131:<\/strong> En yayg\u0131n depolama formatlar\u0131ndan biridir. Oturumun ba\u015flang\u0131\u00e7 ve biti\u015f zaman\u0131, kullan\u0131c\u0131 sorgular\u0131, YZ yan\u0131tlar\u0131, kod par\u00e7ac\u0131klar\u0131, hata mesajlar\u0131 ve di\u011fer ilgili meta veriler (metadata) genellikle bu yap\u0131land\u0131r\u0131lm\u0131\u015f metin dosyalar\u0131nda saklan\u0131r. JSON&#8217;un okunabilirli\u011fi ve ayr\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131n kolayl\u0131\u011f\u0131, onu bu t\u00fcr uygulamalar i\u00e7in ideal bir se\u00e7im yapar. \u00d6rne\u011fin, bir oturum dosyas\u0131, bir dizi mesaj nesnesi i\u00e7erebilir; her nesne, bir kullan\u0131c\u0131 girdisi veya bir YZ \u00e7\u0131kt\u0131s\u0131 olabilir.<\/li>\n<li><strong>SQLite Veritabanlar\u0131:<\/strong> Daha karma\u015f\u0131k uygulamalar, oturum ge\u00e7mi\u015fini ve ilgili verileri y\u00f6netmek i\u00e7in hafif ve g\u00f6m\u00fcl\u00fc bir veritaban\u0131 olan SQLite&#8217;\u0131 tercih edebilir. SQLite veritabanlar\u0131, tek bir dosya i\u00e7inde birden fazla tablo bar\u0131nd\u0131rabilir ve bu tablolar, oturum bilgilerini, kullan\u0131c\u0131 profillerini, kod k\u00fct\u00fcphanelerini ve di\u011fer yap\u0131land\u0131r\u0131lm\u0131\u015f verileri depolamak i\u00e7in kullan\u0131labilir. Bu durumda, veri kurtarma, veritaban\u0131 dosyas\u0131n\u0131 bulmay\u0131 ve SQL sorgular\u0131 ile ilgili bilgileri \u00e7\u0131karmay\u0131 gerektirir.<\/li>\n<li><strong>D\u00fcz Metin G\u00fcnl\u00fckleri (Plain Text Logs):<\/strong> Baz\u0131 durumlarda, uygulamalar t\u00fcm etkile\u015fimleri veya belirli olaylar\u0131 basit metin dosyalar\u0131 olarak g\u00fcnl\u00fc\u011fe kaydedebilir. Bu g\u00fcnl\u00fckler genellikle zaman damgal\u0131 (timestamped) giri\u015fler i\u00e7erir ve bir oturumun kronolojik ak\u0131\u015f\u0131n\u0131 sunabilir. D\u00fcz metin g\u00fcnl\u00fckleri, yap\u0131land\u0131r\u0131lm\u0131\u015f formatlar kadar zengin bilgi i\u00e7ermese de, anahtar kelime aramalar\u0131yla de\u011ferli par\u00e7ac\u0131klar bulunmas\u0131na olanak tan\u0131r.<\/li>\n<li><strong>Ge\u00e7ici Dosyalar ve \u00d6nbellek (Cache) Verileri:<\/strong> Uygulamalar, performans art\u0131\u015f\u0131 veya h\u0131zl\u0131 eri\u015fim i\u00e7in ge\u00e7ici dosyalar veya \u00f6nbellekler olu\u015fturabilir. Bu dosyalar, genellikle oturumun anl\u0131k durumunu veya yak\u0131n zamanda eri\u015filen verileri bar\u0131nd\u0131r\u0131r. Her ne kadar kal\u0131c\u0131 depolama i\u00e7in tasarlanmam\u0131\u015f olsalar da, sistem \u00e7\u00f6kmelerinden sonra diskte kalabilir ve kurtar\u0131labilir veriler i\u00e7erebilirler.<\/li>\n<\/ul>\n<p>Bu dosyalar\u0131n depoland\u0131\u011f\u0131 tipik konumlar, i\u015fletim sistemine g\u00f6re de\u011fi\u015fir:<\/p>\n<ul>\n<li><strong>Windows:<\/strong> Genellikle <code>%APPDATA%<\/code> (<code>C:\\Users\\<Kullan\u0131c\u0131Ad\u0131>\\AppData\\Roaming<\/code>), <code>%LOCALAPPDATA%<\/code> (<code>C:\\Users\\<Kullan\u0131c\u0131Ad\u0131>\\AppData\\Local<\/code>) veya program\u0131n kendi kurulum dizini i\u00e7inde bulunurlar.<\/li>\n<li><strong>macOS:<\/strong> <code>~\/Library\/Application Support\/<\/code>, <code>~\/Library\/Caches\/<\/code> veya <code>~\/Documents\/<\/code> dizinlerinde yer alabilirler.<\/li>\n<li><strong>Linux:<\/strong> <code>~\/.config\/<\/code>, <code>~\/.local\/share\/<\/code> veya <code>\/var\/log\/<\/code> gibi dizinlerde saklanabilirler.<\/li>\n<\/ul>\n<p>Bu dosyalardaki meta veriler, oturumun benzersiz kimliklerini (session IDs), kullan\u0131lan YZ modelini, oturum s\u00fcresini ve hatta kullan\u0131c\u0131 taraf\u0131ndan belirlenen etiketleri i\u00e7erebilir. Bu bilgiler, kurtar\u0131lan verilerin ba\u011flam\u0131n\u0131 anlamak ve farkl\u0131 oturumlar\u0131 birbirinden ay\u0131rmak i\u00e7in \u00e7ok \u00f6nemlidir. G\u00fcvenlik a\u00e7\u0131s\u0131ndan, baz\u0131 hassas veriler \u015fifrelenmi\u015f veya hashlenmi\u015f (karma\u015f\u0131k) olabilir, bu da kurtarma s\u00fcrecini zorla\u015ft\u0131rabilir ancak imkans\u0131z k\u0131lmaz. Sonu\u00e7 olarak, bu oturum verileri disk \u00fczerinde da\u011f\u0131n\u0131k ve bazen gizlenmi\u015f bir \u015fekilde bulunsa da, do\u011fru ara\u00e7lar ve tekniklerle eri\u015filebilir ve yeniden yap\u0131land\u0131r\u0131labilir durumdad\u0131r.<\/p>\n<h3>osFoundry Mimarisi: Disk Taramadan Veri Kurtarmaya<\/h3>\n<p>osFoundry, dijital adli bili\u015fim (digital forensics) ve veri kurtarma (data recovery) alan\u0131nda kullan\u0131lan, a\u00e7\u0131k kaynakl\u0131 ve mod\u00fcler bir \u00e7er\u00e7evedir. Temel amac\u0131, \u00e7e\u015fitli i\u015fletim sistemleri ve dosya sistemleri \u00fczerinden kay\u0131p veya gizlenmi\u015f verileri tespit etmek, \u00e7\u0131karmak ve analiz etmektir. Bir felaket senaryosunda veya adli bir incelemede, osFoundry gibi ara\u00e7lar, disk \u00fczerindeki en k\u00fc\u00e7\u00fck dijital izleri bile bulmak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu izler, silinmi\u015f dosyalar, ge\u00e7ici dosyalar, bo\u015f alanlardaki (slack space) veri kal\u0131nt\u0131lar\u0131 veya dosya sistemi meta verileri olabilir. osFoundry&#8217;nin g\u00fcc\u00fc, esnek mimarisinden ve belirli veri t\u00fcrleri i\u00e7in \u00f6zelle\u015ftirilebilen mod\u00fcl (plugin) yap\u0131s\u0131ndan gelir. Bu mod\u00fcller, Python gibi y\u00fcksek seviyeli dillerde yaz\u0131larak, belirli dosya formatlar\u0131n\u0131 veya veri yap\u0131lar\u0131n\u0131 ayr\u0131\u015ft\u0131rmak (parse etmek) \u00fczere optimize edilebilir.<\/p>\n<p>osFoundry&#8217;nin \u00e7al\u0131\u015fma prensibi genellikle a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li><strong>Disk \u0130maj\u0131 Alma (Disk Imaging):<\/strong> Veri kurtarma veya adli analiz s\u00fcrecinin ilk ve en kritik ad\u0131m\u0131, incelenecek diskin bit-bit kopyas\u0131n\u0131 (disk image) olu\u015fturmakt\u0131r. Bu, orijinal verilere zarar vermeden g\u00fcvenli bir ortamda \u00e7al\u0131\u015fmay\u0131 sa\u011flar. osFoundry, bu imajlar \u00fczerinde do\u011frudan \u00e7al\u0131\u015fabilir.<\/li>\n<li><strong>Dosya Sistemi Taramas\u0131 (File System Scan):<\/strong> osFoundry, \u00f6ncelikle dosya sistemi yap\u0131s\u0131n\u0131 (\u00f6rne\u011fin, NTFS, FAT32, ext4) analiz eder. Bu sayede, mevcut dosyalar\u0131, dizinleri ve silinmi\u015f dosyalar\u0131n izlerini tespit edebilir. Bu a\u015famada, dosya adlar\u0131, boyutlar\u0131, olu\u015fturulma ve de\u011fi\u015ftirilme tarihleri gibi meta veriler toplan\u0131r.<\/li>\n<li><strong>\u0130mza Analizi (Signature Analysis):<\/strong> osFoundry, belirli dosya t\u00fcrlerini (\u00f6rne\u011fin, JPEG, PDF, ZIP veya bizim durumumuzda JSON, SQLite) bulmak i\u00e7in dosya ba\u015fl\u0131klar\u0131 ve sonlar\u0131ndaki (header and footer) benzersiz bayt dizilerini (byte sequences) arar. Bu teknik, dosya sistemi taraf\u0131ndan art\u0131k referans verilmeyen silinmi\u015f veya bozulmu\u015f dosyalar\u0131 &#8220;oymak&#8221; (file carving) i\u00e7in kullan\u0131l\u0131r. Claude Code veya Codex oturum dosyalar\u0131 belirli bir yap\u0131ya sahipse, osFoundry bu yap\u0131sal imzalar\u0131 kullanarak onlar\u0131 diskteki bo\u015f alanlardan bile \u00e7\u0131karabilir.<\/li>\n<li><strong>Anahtar Kelime Aramas\u0131 (Keyword Searching):<\/strong> Disk imaj\u0131 \u00fczerinde belirli anahtar kelimeler, dizeler veya d\u00fczenli ifadeler (regular expressions) aranabilir. \u00d6rne\u011fin, &#8220;Claude Code session&#8221;, &#8220;Codex response&#8221;, &#8220;user input&#8221; veya belirli bir kod par\u00e7ac\u0131\u011f\u0131 gibi terimler, ilgili oturum verilerini bulmaya yard\u0131mc\u0131 olabilir. Bu, \u00f6zellikle yap\u0131land\u0131r\u0131lmam\u0131\u015f veya k\u0131smen bozulmu\u015f veriler i\u00e7in etkilidir.<\/li>\n<li><strong>Mod\u00fcler Geni\u015fletilebilirlik (Modular Extensibility):<\/strong> osFoundry&#8217;nin en g\u00fc\u00e7l\u00fc yanlar\u0131ndan biri, Python gibi dillerle yaz\u0131lm\u0131\u015f \u00f6zel mod\u00fcller arac\u0131l\u0131\u011f\u0131yla geni\u015fletilebilmesidir. Bir mod\u00fcl, belirli bir uygulama taraf\u0131ndan kullan\u0131lan dosya format\u0131n\u0131 (\u00f6rne\u011fin, Claude veya Codex&#8217;in \u00f6zel JSON yap\u0131s\u0131) ayr\u0131\u015ft\u0131rmak, veritabanlar\u0131ndan bilgi \u00e7\u0131karmak veya karma\u015f\u0131k veri yap\u0131lar\u0131n\u0131 yeniden birle\u015ftirmek i\u00e7in tasarlanabilir. Bu mod\u00fcller, osFoundry&#8217;nin genel tarama motorundan ald\u0131\u011f\u0131 ham veriyi i\u015fleyerek anlaml\u0131 oturum verilerine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/li>\n<\/ol>\n<p>Python&#8217;\u0131n osFoundry i\u00e7inde bu kadar merkezi bir rol oynamas\u0131n\u0131n birka\u00e7 nedeni vard\u0131r: Python, g\u00fc\u00e7l\u00fc dosya sistemi etkile\u015fim yetenekleri, zengin k\u00fct\u00fcphane ekosistemi (JSON, SQLite, regex vb. i\u00e7in), okunabilirli\u011fi ve h\u0131zl\u0131 prototipleme (rapid prototyping) yetene\u011fi sayesinde adli bili\u015fim ara\u00e7lar\u0131 geli\u015ftirmek i\u00e7in ideal bir dildir. osFoundry, diskten elde etti\u011fi ham bayt ak\u0131\u015flar\u0131n\u0131 Python mod\u00fcllerine ileterek, bu mod\u00fcllerin \u00f6zelle\u015ftirilmi\u015f ayr\u0131\u015ft\u0131rma ve yeniden yap\u0131land\u0131rma mant\u0131\u011f\u0131n\u0131 uygulamas\u0131na olanak tan\u0131r. Bu sayede, osFoundry, genel bir veri kurtarma arac\u0131 olman\u0131n \u00f6tesine ge\u00e7erek, belirli uygulamalar\u0131n karma\u015f\u0131k veri yap\u0131lar\u0131n\u0131 bile anlayabilen ve yorumlayabilen g\u00fc\u00e7l\u00fc bir platforma d\u00f6n\u00fc\u015f\u00fcr.<\/p>\n<h3>Python ile Disk Alan\u0131nda \u0130z Arama: Temel Teknikler<\/h3>\n<p>osFoundry gibi bir \u00e7er\u00e7eve i\u00e7erisinde Python kullanarak disk \u00fczerinde belirli dosya ve veri izlerini aramak, veri kurtarma ve adli bili\u015fimin temel ta\u015flar\u0131ndan biridir. Python&#8217;\u0131n sundu\u011fu zengin standart k\u00fct\u00fcphaneler ve \u00fc\u00e7\u00fcnc\u00fc taraf mod\u00fcller, bu t\u00fcr g\u00f6revleri olduk\u00e7a kolay ve verimli hale getirir. Bu b\u00f6l\u00fcmde, Python ile disk alan\u0131nda Claude Code ve Codex oturumlar\u0131na ait potansiyel dosyalar\u0131 bulmak i\u00e7in kullan\u0131labilecek temel teknikleri ve kod \u00f6rneklerini inceleyece\u011fiz. Amac\u0131m\u0131z, disk imaj\u0131 \u00fczerinde belirli kal\u0131plar\u0131 (patterns) veya dosya imzalar\u0131n\u0131 (file signatures) arayarak ilgili verileri tespit etmektir.<\/p>\n<p>\u0130lk ad\u0131m, dosya sistemi \u00fczerinde potansiyel depolama konumlar\u0131n\u0131 taramakt\u0131r. Daha \u00f6nce de belirtildi\u011fi gibi, bu genellikle i\u015fletim sistemine \u00f6zg\u00fc uygulama veri dizinleridir. Python&#8217;\u0131n <code>os<\/code> ve <code>pathlib<\/code> mod\u00fclleri, dosya sistemiyle etkile\u015fim kurmak i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar.<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport os\nfrom pathlib import Path\n\ndef find_potential_session_files(base_path, extensions=None, keywords=None):\n    \"\"\"\n    Belirtilen temel yolda, belirli uzant\u0131lara ve\/veya anahtar kelimelere sahip dosyalar\u0131 arar.\n    \"\"\"\n    if extensions is None:\n        extensions = ['.json', '.sqlite', '.log', '.txt'] # Varsay\u0131lan uzant\u0131lar\n    if keywords is None:\n        keywords = ['claude', 'codex', 'session', 'chat', 'history'] # Varsay\u0131lan anahtar kelimeler\n\n    found_files = []\n    \n    print(f\"'{base_path}' dizini alt\u0131nda potansiyel oturum dosyalar\u0131 aran\u0131yor...\")\n\n    for root, dirs, files in os.walk(base_path):\n        for file in files:\n            file_path = Path(root) \/ file\n            \n            # Uzant\u0131 kontrol\u00fc\n            if file_path.suffix.lower() in extensions:\n                found_files.append(str(file_path))\n                continue # Uzant\u0131 e\u015fle\u015ftiyse anahtar kelimeye bakmaya gerek yok\n            \n            # Dosya ad\u0131nda anahtar kelime kontrol\u00fc\n            if any(keyword in file.lower() for keyword in keywords):\n                if str(file_path) not in found_files: # Zaten eklenmediyse\n                    found_files.append(str(file_path))\n                    continue\n            \n            # Dosya i\u00e7eri\u011finde anahtar kelime kontrol\u00fc (b\u00fcy\u00fck dosyalar i\u00e7in dikkatli olunmal\u0131)\n            # Bu k\u0131s\u0131m performans a\u00e7\u0131s\u0131ndan pahal\u0131 olabilir, dikkatli kullan\u0131lmal\u0131d\u0131r.\n            try:\n                if file_path.stat().st_size < 10 * 1024 * 1024: # Sadece 10MB'tan k\u00fc\u00e7\u00fck dosyalar\u0131 oku\n                    with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:\n                        content = f.read(4096) # \u0130lk 4KB'\u0131 oku\n                        if any(keyword in content.lower() for keyword in keywords):\n                            if str(file_path) not in found_files:\n                                found_files.append(str(file_path))\n            except Exception as e:\n                # Dosya okuma hatas\u0131 (izinler vb.)\n                pass \n                \n    return found_files\n\n# Kullan\u0131m \u00f6rne\u011fi (Windows i\u00e7in)\n# appdata_path = os.getenv('LOCALAPPDATA') \n# if appdata_path:\n#     potential_files = find_potential_session_files(appdata_path)\n#     print(\"\\nBulunan potansiyel oturum dosyalar\u0131:\")\n#     for f in potential_files:\n#         print(f)\n\n# Linux\/macOS i\u00e7in \u00f6rnek\n# home_dir = Path.home()\n# config_dir = home_dir \/ \".config\"\n# if config_dir.exists():\n#     potential_files_linux = find_potential_session_files(config_dir)\n#     print(\"\\nBulunan potansiyel oturum dosyalar\u0131 (Linux\/macOS):\")\n#     for f in potential_files_linux:\n#         print(f)\n<\/code><\/pre>\n<\/div>\n<p>Yukar\u0131daki kod par\u00e7ac\u0131\u011f\u0131, <code>os.walk<\/code> fonksiyonunu kullanarak belirtilen bir dizin alt\u0131ndaki t\u00fcm alt dizinleri ve dosyalar\u0131 dola\u015f\u0131r. Her dosya i\u00e7in, uzant\u0131s\u0131n\u0131 kontrol eder ve dosya ad\u0131nda veya i\u00e7eri\u011finde belirli anahtar kelimelerin olup olmad\u0131\u011f\u0131n\u0131 arar. \u0130\u00e7erik aramas\u0131, \u00f6zellikle b\u00fcy\u00fck dosyalar i\u00e7in performans sorunlar\u0131na yol a\u00e7abilece\u011fi i\u00e7in, burada sadece ilk birka\u00e7 kilobayt okunarak bir optimizasyon yap\u0131lm\u0131\u015ft\u0131r. Ger\u00e7ek bir osFoundry mod\u00fcl\u00fcnde, bu arama \u00e7ok daha derinlemesine ve d\u00fc\u015f\u00fck seviyeli disk okuma i\u015flemleriyle (\u00f6rne\u011fin, <code>dd<\/code> komutuyla al\u0131nan disk imajlar\u0131 \u00fczerinde) yap\u0131labilir.<\/p>\n<p><strong>Daha spesifik arama i\u00e7in:<\/strong><\/p>\n<p>Bazen, belirli uygulamalar\u0131n veri dosyalar\u0131, standart uzant\u0131lar yerine benzersiz adland\u0131rma kurallar\u0131 veya dosya i\u00e7i imzalar kullan\u0131r. \u00d6rne\u011fin, bir uygulaman\u0131n t\u00fcm oturum dosyalar\u0131n\u0131 <code>session_YYYYMMDD_HHMMSS.json<\/code> format\u0131nda kaydetti\u011fini varsayal\u0131m. Bu durumda, <code>glob<\/code> mod\u00fcl\u00fc veya d\u00fczenli ifadeler (regular expressions) daha etkili olabilir.<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport glob\nimport re\n\ndef find_specific_session_patterns(base_path, pattern=\"session_*.json\"):\n    \"\"\"\n    Belirli bir dosya ad\u0131 kal\u0131b\u0131na uyan oturum dosyalar\u0131n\u0131 arar.\n    \"\"\"\n    search_path = Path(base_path) \/ pattern\n    return [str(p) for p in glob.glob(str(search_path))]\n\ndef find_with_regex(base_path, regex_pattern):\n    \"\"\"\n    Dosya ad\u0131nda veya i\u00e7eri\u011finde d\u00fczenli ifade kal\u0131b\u0131 arar.\n    \"\"\"\n    found_files = []\n    compiled_regex = re.compile(regex_pattern, re.IGNORECASE)\n    \n    for root, dirs, files in os.walk(base_path):\n        for file in files:\n            if compiled_regex.search(file):\n                found_files.append(str(Path(root) \/ file))\n                continue\n            # \u0130\u00e7erik aramas\u0131 i\u00e7in de kullan\u0131labilir, ancak yine performans uyar\u0131s\u0131 ge\u00e7erli.\n            # ...\n    return found_files\n\n# Kullan\u0131m \u00f6rne\u011fi\n# appdata_path = os.getenv('LOCALAPPDATA')\n# if appdata_path:\n#     specific_json_files = find_specific_session_patterns(appdata_path, \"ClaudeSession_*.json\")\n#     print(\"\\n\u00d6zel JSON kal\u0131b\u0131na uyan dosyalar:\")\n#     for f in specific_json_files:\n#         print(f)\n\n#     regex_files = find_with_regex(appdata_path, r\"^(claude|codex)_.*\\.db$\") # Claude veya Codex ile ba\u015flayan .db dosyalar\u0131\n#     print(\"\\nRegex ile bulunan dosyalar:\")\n#     for f in regex_files:\n#         print(f)\n<\/code><\/pre>\n<\/div>\n<p>Bu temel teknikler, osFoundry'nin disk tarama motorunun nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na dair bir fikir vermektedir. Ger\u00e7ek bir osFoundry mod\u00fcl\u00fc, bu Python kodunu kullanarak, disk imajlar\u0131ndan elde edilen ham veriyi i\u015fleyerek Claude Code ve Codex oturumlar\u0131na ait dijital izleri titizlikle arayabilir. Bu izler bulundu\u011funda, bir sonraki ad\u0131m, bu verileri ayr\u0131\u015ft\u0131rmak ve anlaml\u0131 bir \u015fekilde yeniden yap\u0131land\u0131rmakt\u0131r.<\/p>\n<h3>Claude ve Codex Oturum Verilerini Ayr\u0131\u015ft\u0131rma ve Yeniden Yap\u0131land\u0131rma<\/h3>\n<p>Disk \u00fczerinde potansiyel Claude Code veya Codex oturum dosyalar\u0131 tespit edildi\u011finde, bir sonraki kritik ad\u0131m bu dosyalar\u0131n i\u00e7eri\u011fini ayr\u0131\u015ft\u0131rmak (parsing) ve anlaml\u0131 bir formata yeniden yap\u0131land\u0131rmakt\u0131r. Bu s\u00fcre\u00e7, ham veriden kullan\u0131c\u0131 sorgular\u0131n\u0131, YZ yan\u0131tlar\u0131n\u0131, kod par\u00e7ac\u0131klar\u0131n\u0131 ve ilgili meta verileri \u00e7\u0131karmay\u0131 i\u00e7erir. Python, JSON, SQLite ve metin i\u015fleme i\u00e7in zengin k\u00fct\u00fcphaneleri sayesinde bu g\u00f6rev i\u00e7in m\u00fckemmel bir ara\u00e7t\u0131r.<\/p>\n<p><strong>JSON Dosyalar\u0131n\u0131 Ayr\u0131\u015ft\u0131rma:<\/strong><\/p>\n<p>E\u011fer oturum verileri JSON format\u0131nda depolanm\u0131\u015fsa, Python'\u0131n standart <code>json<\/code> k\u00fct\u00fcphanesi bu verileri kolayca bir Python s\u00f6zl\u00fc\u011f\u00fcne veya listesine d\u00f6n\u00fc\u015ft\u00fcrebilir. Bu, veriye programatik olarak eri\u015fmeyi ve i\u015flemeyi sa\u011flar.<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport json\n\ndef parse_json_session(file_path):\n    \"\"\"\n    JSON format\u0131ndaki bir oturum dosyas\u0131n\u0131 ayr\u0131\u015ft\u0131r\u0131r ve i\u00e7eri\u011fini d\u00f6nd\u00fcr\u00fcr.\n    \"\"\"\n    try:\n        with open(file_path, 'r', encoding='utf-8') as f:\n            session_data = json.load(f)\n            return session_data\n    except json.JSONDecodeError as e:\n        print(f\"Hata: '{file_path}' bir JSON dosyas\u0131 de\u011fil veya bozuk: {e}\")\n        return None\n    except FileNotFoundError:\n        print(f\"Hata: '{file_path}' bulunamad\u0131.\")\n        return None\n    except Exception as e:\n        print(f\"Beklenmeyen hata olu\u015ftu: {e}\")\n        return None\n\ndef reconstruct_claude_codex_session(session_data):\n    \"\"\"\n    Ayr\u0131\u015ft\u0131r\u0131lm\u0131\u015f JSON verisinden Claude\/Codex oturumunu yeniden yap\u0131land\u0131r\u0131r.\n    Varsay\u0131lan bir oturum yap\u0131s\u0131 varsay\u0131l\u0131r (\u00f6rn. mesaj listesi).\n    \"\"\"\n    if not session_data or not isinstance(session_data, dict):\n        print(\"Ge\u00e7ersiz oturum verisi.\")\n        return\n\n    print(f\"\\n--- Oturum ID: {session_data.get('session_id', 'Bilinmiyor')} ---\")\n    print(f\"--- Ba\u015flang\u0131\u00e7: {session_data.get('start_time', 'Bilinmiyor')} ---\")\n    \n    messages = session_data.get('messages', [])\n    for msg in messages:\n        role = msg.get('role', 'Bilinmiyor') # 'user' veya 'assistant'\n        content = msg.get('content', '')\n        timestamp = msg.get('timestamp', 'Bilinmiyor')\n\n        print(f\"\\n[{timestamp}] {role.upper()}:\")\n        if role == 'assistant' and 'code' in msg:\n            print(\"<pre><code class=\"language-python\">&quot;)\n            print(msg[&#039;code&#039;])\n            print(&quot;<\/code><\/pre>\n<p>\")<br \/>\n        else:<br \/>\n            print(content)<br \/>\n    print(\"\\n-------------------------------------------------\")<\/p>\n<p># \u00d6rnek kullan\u0131m (varsay\u0131msal bir oturum dosyas\u0131)<br \/>\n# session_file_path = \"path\/to\/your\/ClaudeSession_20231027_103000.json\"<br \/>\n# session_content = parse_json_session(session_file_path)<br \/>\n# if session_content:<br \/>\n#     reconstruct_claude_codex_session(session_content)<br \/>\n<\/code>\n<\/div>\n<p>Bu \u00f6rnekte, <code>parse_json_session<\/code> fonksiyonu bir JSON dosyas\u0131n\u0131 okur ve Python nesnesine d\u00f6n\u00fc\u015ft\u00fcr\u00fcrken, <code>reconstruct_claude_codex_session<\/code> fonksiyonu bu nesneyi alarak oturumun kronolojik ak\u0131\u015f\u0131n\u0131 insan taraf\u0131ndan okunabilir bir formatta yeniden olu\u015fturur. Burada, her mesaj\u0131n bir rol\u00fc (kullan\u0131c\u0131 veya asistan) ve i\u00e7eri\u011fi oldu\u011fu varsay\u0131lm\u0131\u015ft\u0131r. YZ'den gelen yan\u0131tlar kod i\u00e7eriyorsa, bu kod par\u00e7ac\u0131klar\u0131n\u0131 \u00f6zel olarak vurgulayabiliriz.<\/p>\n<p><strong>SQLite Veritabanlar\u0131n\u0131 Ayr\u0131\u015ft\u0131rma:<\/strong><\/p>\n<p>E\u011fer oturum verileri bir SQLite veritaban\u0131nda saklan\u0131yorsa, Python'\u0131n standart <code>sqlite3<\/code> k\u00fct\u00fcphanesi bu veritaban\u0131na ba\u011flanmak ve SQL sorgular\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport sqlite3\n\ndef parse_sqlite_session(db_path):\n    \"\"\"\n    SQLite veritaban\u0131ndan oturum verilerini \u00e7eker.\n    \"\"\"\n    try:\n        conn = sqlite3.connect(db_path)\n        cursor = conn.cursor()\n\n        # Oturumlar tablosu (varsay\u0131msal)\n        cursor.execute(\"SELECT id, start_time, end_time FROM sessions ORDER BY start_time\")\n        sessions = cursor.fetchall()\n\n        reconstructed_sessions = []\n        for session_id, start_time, end_time in sessions:\n            print(f\"\\n--- Oturum ID: {session_id}, Ba\u015flang\u0131\u00e7: {start_time}, Biti\u015f: {end_time} ---\")\n            \n            # Mesajlar tablosu (varsay\u0131msal)\n            cursor.execute(\"SELECT role, content, timestamp FROM messages WHERE session_id = ? ORDER BY timestamp\", (session_id,))\n            messages = cursor.fetchall()\n\n            current_session_messages = []\n            for role, content, timestamp in messages:\n                print(f\"[{timestamp}] {role.upper()}:\")\n                print(content)\n                current_session_messages.append({'role': role, 'content': content, 'timestamp': timestamp})\n            reconstructed_sessions.append({\n                'session_id': session_id,\n                'start_time': start_time,\n                'end_time': end_time,\n                'messages': current_session_messages\n            })\n            print(\"-------------------------------------------------\")\n        \n        conn.close()\n        return reconstructed_sessions\n\n    except sqlite3.Error as e:\n        print(f\"SQLite hatas\u0131 olu\u015ftu: {e}\")\n        return None\n    except FileNotFoundError:\n        print(f\"Hata: '{db_path}' bulunamad\u0131.\")\n        return None\n\n# \u00d6rnek kullan\u0131m\n# db_file_path = \"path\/to\/your\/ClaudeCodexHistory.db\"\n# parsed_data = parse_sqlite_session(db_file_path)\n# if parsed_data:\n#     print(f\"\\nToplam {len(parsed_data)} oturum kurtar\u0131ld\u0131.\")\n<\/code><\/pre>\n<\/div>\n<p>Bu SQLite \u00f6rne\u011fi, veritaban\u0131ndaki <code>sessions<\/code> ve <code>messages<\/code> adl\u0131 varsay\u0131msal tablolar\u0131 sorgulayarak oturumlar\u0131 ve ilgili mesajlar\u0131 \u00e7eker. Her iki \u00f6rnekte de, veri ayr\u0131\u015ft\u0131rma ve yeniden yap\u0131land\u0131rma s\u00fcrecinde hata y\u00f6netimi (try-except bloklar\u0131) kritik \u00f6neme sahiptir, zira kurtar\u0131lan dosyalar bozuk veya eksik olabilir.<\/p>\n<p><strong>Par\u00e7alanm\u0131\u015f Verileri Birle\u015ftirme:<\/strong><\/p>\n<p>Disk \u00fczerinde tam bir dosya bulamama durumunda, osFoundry ve Python, par\u00e7alanm\u0131\u015f veya k\u0131smi verileri birle\u015ftirmeye \u00e7al\u0131\u015fabilir. Bu, dosya oyma (file carving) teknikleriyle bulunan bayt dizilerini analiz etmeyi ve bilinen oturum yap\u0131lar\u0131na uyan par\u00e7ac\u0131klar\u0131 bir araya getirmeyi i\u00e7erir. D\u00fczenli ifadeler (<code>re<\/code> mod\u00fcl\u00fc) veya \u00f6zel ayr\u0131\u015ft\u0131rma algoritmalar\u0131, bu par\u00e7alanm\u0131\u015f veriler i\u00e7indeki \"oturumu ba\u015flatan\" veya \"oturumu bitiren\" belirte\u00e7leri (markers) arayarak, mant\u0131ksal bir ak\u0131\u015f olu\u015fturmaya \u00e7al\u0131\u015fabilir. Bu, daha karma\u015f\u0131k bir s\u00fcre\u00e7 olup, genellikle sezgisel (heuristic) yakla\u015f\u0131mlar ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fc (data integrity) kontrolleri gerektirir. Bu t\u00fcr durumlarda, kurtar\u0131lan verilerin %100 do\u011frulu\u011fu garanti edilemez, ancak yine de \u00f6nemli bilgiler elde edilebilir.<\/p>\n<p>\u00d6zetle, Python, Claude ve Codex oturum verilerini diskten ayr\u0131\u015ft\u0131rmak ve yeniden yap\u0131land\u0131rmak i\u00e7in esnek ve g\u00fc\u00e7l\u00fc bir ara\u00e7 seti sunar. Do\u011fru k\u00fct\u00fcphaneler ve mant\u0131kla, kay\u0131p gibi g\u00f6r\u00fcnen kodlama ge\u00e7mi\u015finizi geri getirmek m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Vaka Analizleri<\/h3>\n<p>osFoundry'nin Python ile entegrasyonunun Claude Code ve Codex oturumlar\u0131n\u0131 kurtarmadaki etkinli\u011fini daha iyi anlamak i\u00e7in, birka\u00e7 ger\u00e7ek d\u00fcnya senaryosunu inceleyelim. Bu vaka analizleri, farkl\u0131 veri kayb\u0131 durumlar\u0131nda bu tekniklerin nas\u0131l uygulanabilece\u011fini g\u00f6stermektedir.<\/p>\n<h4>Vaka Analizi 1: Yanl\u0131\u015fl\u0131kla Silinen Bir Oturumun Kurtar\u0131lmas\u0131<\/h4>\n<p><strong>Senaryo:<\/strong> Bir yaz\u0131l\u0131m geli\u015ftiricisi, \u00fczerinde uzun s\u00fcre \u00e7al\u0131\u015ft\u0131\u011f\u0131 ve Claude Code ile etkile\u015fim kurarak karma\u015f\u0131k bir algoritmay\u0131 optimize etti\u011fi bir kodlama oturumunu yanl\u0131\u015fl\u0131kla sildi. Bu oturum, yerel diskteki uygulaman\u0131n \u00f6nbellek dizininde bir JSON dosyas\u0131 olarak saklan\u0131yordu. Geli\u015ftirici, silme i\u015fleminin hemen ard\u0131ndan diski kullanmay\u0131 b\u0131rakt\u0131.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> osFoundry, diskin bir imaj\u0131n\u0131 ald\u0131ktan sonra, dosya sistemi tablosunda (MFT veya inode tablosu) silinmi\u015f dosyan\u0131n izlerini aramaya ba\u015flad\u0131. JSON dosyalar\u0131n\u0131n bilinen imzalar\u0131n\u0131 (<code>{<\/code> karakteriyle ba\u015flayan ve <code>}<\/code> ile biten yap\u0131lar) kullanarak, osFoundry'nin Python mod\u00fcl\u00fc disk \u00fczerindeki bo\u015f alanlarda (slack space) veya silinmi\u015f dosya giri\u015flerinin i\u015faret etti\u011fi sekt\u00f6rlerde bu JSON verilerini arad\u0131. Silinen dosya yeni verilerle \u00fczerine yaz\u0131lmad\u0131\u011f\u0131 i\u00e7in, osFoundry, dosyan\u0131n tamam\u0131n\u0131 veya b\u00fcy\u00fck bir k\u0131sm\u0131n\u0131 bulmay\u0131 ba\u015fard\u0131. Python'daki <code>json<\/code> k\u00fct\u00fcphanesi kullan\u0131larak, bulunan JSON verileri ayr\u0131\u015ft\u0131r\u0131ld\u0131 ve geli\u015ftiricinin t\u00fcm sorgular\u0131 ile Claude'un detayl\u0131 kod \u00f6nerileri ve a\u00e7\u0131klamalar\u0131 ba\u015far\u0131yla yeniden yap\u0131land\u0131r\u0131ld\u0131. Bu sayede, geli\u015ftirici saatler s\u00fcren \u00e7al\u0131\u015fmas\u0131n\u0131 geri kazand\u0131 ve projesine devam edebildi.<\/p>\n<h4>Vaka Analizi 2: Disk Bozulmas\u0131 Sonras\u0131 Veri \u00c7\u0131karma<\/h4>\n<p><strong>Senaryo:<\/strong> Bir donan\u0131m ar\u0131zas\u0131 nedeniyle geli\u015ftiricinin diz\u00fcst\u00fc bilgisayar\u0131n\u0131n sabit diski k\u0131smen bozuldu. \u0130\u015fletim sistemi ba\u015flat\u0131lam\u0131yordu ve dosya sisteminin baz\u0131 b\u00f6l\u00fcmleri eri\u015filemez hale geldi. Geli\u015ftirici, Codex ile yapt\u0131\u011f\u0131 \u00f6nemli bir kod inceleme oturumunun verilerini kurtarmak istiyordu.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> osFoundry, bozuk diskin sekt\u00f6r sekt\u00f6r bir imaj\u0131n\u0131 olu\u015fturdu. Dosya sistemi bozuldu\u011fu i\u00e7in, osFoundry do\u011frudan dosya sistemi yap\u0131s\u0131n\u0131 kullanamad\u0131. Bunun yerine, \"file carving\" (dosya oyma) ad\u0131 verilen bir teknik devreye girdi. osFoundry'nin Python mod\u00fcl\u00fc, ham disk imaj\u0131 \u00fczerinde belirli bayt kal\u0131plar\u0131n\u0131 (\u00f6rne\u011fin, SQLite veritaban\u0131 ba\u015fl\u0131\u011f\u0131 <code>SQLite format 3<\/code> veya belirli bir Codex oturumunun JSON yap\u0131s\u0131n\u0131n ba\u015flang\u0131\u00e7 belirte\u00e7leri) arayarak potansiyel oturum dosyalar\u0131n\u0131 tespit etti. Bozuklu\u011fun boyutuna ba\u011fl\u0131 olarak, baz\u0131 dosyalar par\u00e7al\u0131 olarak kurtar\u0131ld\u0131. Python'daki <code>sqlite3<\/code> k\u00fct\u00fcphanesi veya <code>json<\/code> k\u00fct\u00fcphanesi, kurtar\u0131lan par\u00e7alar\u0131 ayr\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015ft\u0131. Verilerin bir k\u0131sm\u0131 bozuk olsa da, Python'\u0131n esnek hata i\u015fleme mekanizmalar\u0131 sayesinde, kurtar\u0131lan par\u00e7alardan en az\u0131ndan anahtar kod \u00f6nerileri ve \u00f6nemli diyaloglar \u00e7\u0131kar\u0131labildi. Bu, geli\u015ftiricinin kritik bilgileri yeniden olu\u015fturmas\u0131na olanak tan\u0131d\u0131 ve projenin tamamen durmas\u0131n\u0131 engelledi.<\/p>\n<h4>Vaka Analizi 3: Adli Bili\u015fimde YZ Oturumlar\u0131n\u0131n \u0130ncelenmesi<\/h4>\n<p><strong>Senaryo:<\/strong> Bir \u015firket, fikri m\u00fclkiyet h\u0131rs\u0131zl\u0131\u011f\u0131 \u015f\u00fcphesiyle bir \u00e7al\u0131\u015fan\u0131n bilgisayar\u0131n\u0131 adli olarak incelemek istedi. \u00c7al\u0131\u015fan\u0131n, \u015firket s\u0131rlar\u0131n\u0131 s\u0131zd\u0131rmak i\u00e7in yapay zeka asistanlar\u0131n\u0131 (Claude veya Codex) kullan\u0131p kullanmad\u0131\u011f\u0131n\u0131 veya bu asistanlarla hassas bilgilere eri\u015fip eri\u015fmedi\u011fini belirlemek gerekiyordu.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> osFoundry, \u00e7al\u0131\u015fan\u0131n bilgisayar\u0131n\u0131n adli bir kopyas\u0131n\u0131 (forensic image) ald\u0131. osFoundry'nin adli bili\u015fim mod\u00fcl\u00fc, Python kullan\u0131larak, YZ asistanlar\u0131n\u0131n depolama dizinlerini, ge\u00e7ici dosyalar\u0131n\u0131 ve hatta silinmi\u015f dosya kal\u0131nt\u0131lar\u0131n\u0131 hedefleyecek \u015fekilde yap\u0131land\u0131r\u0131ld\u0131. Mod\u00fcl, Claude ve Codex oturum dosyalar\u0131n\u0131 (JSON, SQLite veya log dosyalar\u0131) tespit etmek i\u00e7in anahtar kelime aramalar\u0131 (\u00f6rne\u011fin, \u015firket ad\u0131, proje kodlar\u0131, hassas terimler) ve imza analizi kulland\u0131. Python, ayr\u0131\u015ft\u0131r\u0131lan oturum verilerini analiz ederek, \u00e7al\u0131\u015fan\u0131n hangi sorgular\u0131 sordu\u011funu, YZ'nin hangi bilgileri yan\u0131tlad\u0131\u011f\u0131n\u0131 ve bu etkile\u015fimlerin hassas bilgileri i\u00e7erip i\u00e7ermedi\u011fini belirledi. \u00d6rne\u011fin, Python, belirli kod par\u00e7ac\u0131klar\u0131n\u0131 veya metin dizilerini otomatik olarak i\u015faretleyerek, adli analistlerin h\u0131zla ilgili verilere odaklanmas\u0131n\u0131 sa\u011flad\u0131. Bu analiz, \u00e7al\u0131\u015fan\u0131n YZ asistanlar\u0131yla yapt\u0131\u011f\u0131 etkile\u015fimlerin \u015firket politikalar\u0131na uygun olup olmad\u0131\u011f\u0131n\u0131 netle\u015ftirmeye yard\u0131mc\u0131 oldu ve davan\u0131n \u00e7\u00f6z\u00fcm\u00fcnde \u00f6nemli kan\u0131tlar sa\u011flad\u0131.<\/p>\n<p>Bu vaka analizleri, osFoundry ve Python'\u0131n, \u00e7e\u015fitli veri kayb\u0131 ve adli bili\u015fim senaryolar\u0131nda Claude Code ve Codex oturumlar\u0131n\u0131 kurtarma ve analiz etme konusunda ne kadar g\u00fc\u00e7l\u00fc ve esnek bir kombinasyon sundu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Her senaryoda, Python'\u0131n \u00f6zelle\u015ftirilebilirli\u011fi ve zengin k\u00fct\u00fcphaneleri, karma\u015f\u0131k veri yap\u0131lar\u0131n\u0131 i\u015flemek ve anlaml\u0131 sonu\u00e7lar \u00fcretmek i\u00e7in kilit rol oynam\u0131\u015ft\u0131r.<\/p>\n<h3>\u0130leri D\u00fczey Teknikler ve Optimizasyonlar<\/h3>\n<p>Claude Code ve Codex oturumlar\u0131n\u0131 diskten kurtarma s\u00fcreci, temel dosya aramas\u0131 ve ayr\u0131\u015ft\u0131rman\u0131n \u00f6tesine ge\u00e7erek daha ileri d\u00fczey teknikler ve performans optimizasyonlar\u0131 gerektirebilir. \u00d6zellikle b\u00fcy\u00fck disk imajlar\u0131 \u00fczerinde \u00e7al\u0131\u015f\u0131rken veya par\u00e7alanm\u0131\u015f, bozuk verilerle u\u011fra\u015f\u0131rken bu teknikler hayati \u00f6nem ta\u015f\u0131r. osFoundry \u00e7er\u00e7evesi i\u00e7erisinde Python mod\u00fclleri geli\u015ftirirken bu optimizasyonlar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmak, kurtarma ba\u015far\u0131s\u0131n\u0131 ve verimlili\u011fini art\u0131r\u0131r.<\/p>\n<h4>Performans Optimizasyonu:<\/h4>\n<ul>\n<li><strong>Tamponlama (Buffering) ve Blok Okuma:<\/strong> B\u00fcy\u00fck disk imajlar\u0131n\u0131 okurken, t\u00fcm veriyi belle\u011fe y\u00fcklemek yerine, veriyi k\u00fc\u00e7\u00fck bloklar halinde okumak (\u00f6rne\u011fin, 4KB, 64KB veya 1MB'l\u0131k par\u00e7alar halinde) bellek t\u00fcketimini azalt\u0131r ve performans\u0131 art\u0131r\u0131r. Python'da, dosya nesneleri genellikle dahili tamponlama kullan\u0131r, ancak d\u00fc\u015f\u00fck seviyeli disk okumalar\u0131 i\u00e7in bu stratejiyi manuel olarak y\u00f6netmek gerekebilir.<\/li>\n<li><strong>\u00c7oklu \u0130\u015f Par\u00e7ac\u0131\u011f\u0131 (Multi-threading) veya \u00c7oklu \u0130\u015flem (Multi-processing):<\/strong> \u00d6zellikle anahtar kelime aramas\u0131 veya imza analizi gibi yo\u011fun CPU gerektiren i\u015flemlerde, Python'\u0131n <code>threading<\/code> veya <code>multiprocessing<\/code> mod\u00fclleri kullan\u0131larak i\u015flemler paralelle\u015ftirilebilir. Birden fazla \u00e7ekirdek \u00fczerinde ayn\u0131 anda arama yapmak, tarama s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131salt\u0131r. Ancak, disk I\/O (giri\u015f\/\u00e7\u0131k\u0131\u015f) yo\u011fun i\u015flemler i\u00e7in \u00e7oklu i\u015f par\u00e7ac\u0131\u011f\u0131 yerine \u00e7oklu i\u015flem daha uygun olabilir, \u00e7\u00fcnk\u00fc Python'\u0131n Global Interpreter Lock (GIL) k\u0131s\u0131tlamas\u0131, ayn\u0131 anda yaln\u0131zca bir i\u015f par\u00e7ac\u0131\u011f\u0131n\u0131n Python bayt kodunu y\u00fcr\u00fctmesine izin verir.<\/li>\n<li><strong>Dizin Yap\u0131s\u0131n\u0131 Atlamak:<\/strong> E\u011fer ama\u00e7 sadece silinmi\u015f veya par\u00e7alanm\u0131\u015f verileri kurtarmaksa, dosya sistemi dizin yap\u0131s\u0131n\u0131 tamamen atlay\u0131p do\u011frudan disk sekt\u00f6rlerini taramak daha verimli olabilir. Bu, \"file carving\" (dosya oyma) tekniklerinin temelini olu\u015fturur ve Python ile ham disk imaj\u0131 \u00fczerinde bayt d\u00fczeyinde i\u015flemler yapmay\u0131 gerektirir.<\/li>\n<\/ul>\n<h4>Heuristik (Sezgisel) Yakla\u015f\u0131mlar:<\/h4>\n<p>Veriler bozuk veya eksik oldu\u011funda, kesin kurallara dayal\u0131 ayr\u0131\u015ft\u0131rma yetersiz kalabilir. Bu durumda, sezgisel yakla\u015f\u0131mlar devreye girer:<\/p>\n<ul>\n<li><strong>Desen Tan\u0131ma (Pattern Recognition):<\/strong> Makine \u00f6\u011frenimi algoritmalar\u0131 veya geli\u015fmi\u015f d\u00fczenli ifadeler kullan\u0131larak, k\u0131smen bozuk JSON veya metin dosyalar\u0131 i\u00e7indeki olas\u0131 oturum verileri desenleri aranabilir. \u00d6rne\u011fin, bir YZ yan\u0131t\u0131n\u0131n tipik ba\u015flang\u0131\u00e7 ve biti\u015f kal\u0131plar\u0131n\u0131 \u00f6\u011frenerek, eksik veriler aras\u0131nda bile anlaml\u0131 par\u00e7ac\u0131klar bulunabilir.<\/li>\n<li><strong>Ba\u011flam Tabanl\u0131 Kurtarma:<\/strong> Bir oturumun i\u00e7eri\u011fi, genellikle belirli anahtar kelimeler, programlama dili yap\u0131lar\u0131 veya YZ asistan\u0131n\u0131n tipik yan\u0131t formatlar\u0131 gibi ba\u011flamsal ipu\u00e7lar\u0131 i\u00e7erir. Bu ipu\u00e7lar\u0131, par\u00e7alanm\u0131\u015f verilerin hangi oturuma ait olabilece\u011fini tahmin etmek i\u00e7in kullan\u0131labilir. \u00d6rne\u011fin, Python kodu i\u00e7eren bir metin blo\u011fu, bir Claude Code veya Codex oturumuna ait olma olas\u0131l\u0131\u011f\u0131 y\u00fcksek olabilir.<\/li>\n<\/ul>\n<h4>Veri B\u00fct\u00fcnl\u00fc\u011f\u00fc (Integrity) Do\u011frulama:<\/h4>\n<p>Kurtar\u0131lan verilerin g\u00fcvenilirli\u011fini sa\u011flamak i\u00e7in b\u00fct\u00fcnl\u00fck do\u011frulama mekanizmalar\u0131 eklemek \u00f6nemlidir:<\/p>\n<ul>\n<li><strong>Hash Kontrolleri:<\/strong> E\u011fer orijinal dosyalar\u0131n hash de\u011ferleri (MD5, SHA256) biliniyorsa, kurtar\u0131lan verilerin hash de\u011ferleri ile kar\u015f\u0131la\u015ft\u0131r\u0131larak b\u00fct\u00fcnl\u00fckleri do\u011frulanabilir. Bu, verilerin kurtarma s\u0131ras\u0131nda bozulup bozulmad\u0131\u011f\u0131n\u0131 kontrol etmenin kesin bir yoludur.<\/li>\n<li><strong>Yap\u0131sal Do\u011frulama:<\/strong> JSON veya XML gibi yap\u0131land\u0131r\u0131lm\u0131\u015f veriler i\u00e7in, ayr\u0131\u015ft\u0131rma sonras\u0131 \u015fema do\u011frulama (schema validation) yap\u0131labilir. Bu, kurtar\u0131lan verilerin beklenen formata uygun olup olmad\u0131\u011f\u0131n\u0131 kontrol eder ve anlams\u0131z veya hatal\u0131 verilerin elenmesine yard\u0131mc\u0131 olur. Python'da <code>jsonschema<\/code> gibi k\u00fct\u00fcphaneler bu ama\u00e7la kullan\u0131labilir.<\/li>\n<\/ul>\n<h4>Disk \u0130majlar\u0131 \u00dczerinde \u00c7al\u0131\u015fma:<\/h4>\n<p>Ger\u00e7ek d\u00fcnya senaryolar\u0131nda, osFoundry do\u011frudan fiziksel disk \u00fczerinde de\u011fil, diskin bit-bit kopyas\u0131 olan adli imajlar (\u00f6rne\u011fin, E01, RAW formatlar\u0131) \u00fczerinde \u00e7al\u0131\u015f\u0131r. Python mod\u00fclleri, bu imaj dosyalar\u0131n\u0131 okuyabilmeli ve sanal bir dosya sistemi gibi i\u015flemelidir. <code>pytsk3<\/code> gibi k\u00fct\u00fcphaneler, Python'\u0131n The Sleuth Kit (TSK) ile etkile\u015fim kurmas\u0131n\u0131 sa\u011flayarak, disk imajlar\u0131 \u00fczerindeki dosya sistemlerini analiz etme ve silinmi\u015f dosyalara eri\u015fme yetene\u011fi sunar. Bu, \u00f6zellikle bozuk veya silinmi\u015f verileri kurtar\u0131rken temel dosya sistemi API'lerinin \u00f6tesine ge\u00e7mek i\u00e7in kritik bir yetenektir.<\/p>\n<p>Bu ileri d\u00fczey teknikler ve optimizasyonlar, osFoundry'nin veri kurtarma yeteneklerini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Python'\u0131n esnekli\u011fi ve zengin ekosistemi sayesinde, bu karma\u015f\u0131k stratejiler osFoundry mod\u00fcllerine kolayca entegre edilebilir, b\u00f6ylece daha zorlu veri kayb\u0131 senaryolar\u0131nda bile y\u00fcksek ba\u015far\u0131 oranlar\u0131 elde edilebilir.<\/p>\n<h3>Sonu\u00e7: Dijital Miras\u0131n\u0131z\u0131 Korumak<\/h3>\n<p>Yapay zeka asistanlar\u0131yla yap\u0131lan kodlama oturumlar\u0131, modern geli\u015ftirme s\u00fcre\u00e7lerinin ayr\u0131lmaz bir par\u00e7as\u0131 haline gelmi\u015ftir. Claude Code ve Codex gibi ara\u00e7lar, geli\u015ftiricilere zaman kazand\u0131r\u0131rken, ayn\u0131 zamanda de\u011ferli bir bilgi birikimi ve problem \u00e7\u00f6zme ge\u00e7mi\u015fi olu\u015fturur. Bu oturumlar\u0131n kaybolmas\u0131, sadece anl\u0131k bir aksakl\u0131k de\u011fil, ayn\u0131 zamanda \u00f6nemli bir dijital miras\u0131n yitirilmesi anlam\u0131na gelebilir. Bu makalede ele ald\u0131\u011f\u0131m\u0131z gibi, osFoundry ve Python'\u0131n birle\u015fimi, bu t\u00fcr de\u011ferli oturum verilerini disk \u00fczerinden tespit etme, ayr\u0131\u015ft\u0131rma ve yeniden yap\u0131land\u0131rma konusunda g\u00fc\u00e7l\u00fc ve esnek bir \u00e7\u00f6z\u00fcm sunmaktad\u0131r.<\/p>\n<p>\u00d6ncelikle, yapay zeka ara\u00e7lar\u0131n\u0131n oturum verilerini diskte JSON, SQLite veya d\u00fcz metin dosyalar\u0131 gibi \u00e7e\u015fitli formatlarda nas\u0131l depolad\u0131\u011f\u0131n\u0131 anlad\u0131k. Ard\u0131ndan, osFoundry'nin mod\u00fcler mimarisinin, disk taramas\u0131, imza analizi ve anahtar kelime aramas\u0131 gibi tekniklerle bu izleri nas\u0131l buldu\u011funu inceledik. Python'\u0131n bu s\u00fcre\u00e7teki merkezi rol\u00fcn\u00fc, dosya sistemi etkile\u015fiminden (<code>os<\/code>, <code>pathlib<\/code>), veri ayr\u0131\u015ft\u0131rmaya (<code>json<\/code>, <code>sqlite3<\/code>) ve hatta par\u00e7alanm\u0131\u015f verileri birle\u015ftirmeye kadar uzanan yetenekleriyle detayland\u0131rd\u0131k. Ger\u00e7ek d\u00fcnya senaryolar\u0131 ve vaka analizleri, yanl\u0131\u015fl\u0131kla silinen dosyalardan disk bozulmalar\u0131na ve adli bili\u015fim incelemelerine kadar \u00e7e\u015fitli durumlarda bu tekniklerin pratik uygulamalar\u0131n\u0131 g\u00f6zler \u00f6n\u00fcne serdi. Son olarak, performans optimizasyonlar\u0131, sezgisel yakla\u015f\u0131mlar ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fc do\u011frulama gibi ileri d\u00fczey tekniklerin, kurtarma s\u00fcrecini daha da g\u00fc\u00e7lendirdi\u011fini vurgulad\u0131k.<\/p>\n<p>Geli\u015ftiriciler i\u00e7in bu bilgiler, sadece bir felaket an\u0131nda kay\u0131p verileri kurtarmakla kalmay\u0131p, ayn\u0131 zamanda sistemlerinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, verilerinin nerede sakland\u0131\u011f\u0131n\u0131 ve dijital g\u00fcvenliklerinin ne kadar \u00f6nemli oldu\u011funu anlamalar\u0131na da yard\u0131mc\u0131 olacakt\u0131r. D\u00fczenli yedekleme al\u0131\u015fkanl\u0131klar\u0131 geli\u015ftirmek ve osFoundry gibi ara\u00e7lar\u0131n yeteneklerini bilmek, dijital varl\u0131klar\u0131n\u0131z\u0131 koruman\u0131n ve olas\u0131 veri kayb\u0131 risklerini en aza indirmenin anahtar\u0131d\u0131r. Dijital d\u00fcnyada veri, alt\u0131n de\u011ferindedir ve onu koruma yetene\u011fi, modern profesyoneller i\u00e7in vazge\u00e7ilmez bir beceridir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>S1: osFoundry sadece Claude ve Codex i\u00e7in mi ge\u00e7erli?<\/h4>\n<p>Hay\u0131r, osFoundry genel ama\u00e7l\u0131 bir dijital adli bili\u015fim ve veri kurtarma \u00e7er\u00e7evesidir. Python mod\u00fclleri arac\u0131l\u0131\u011f\u0131yla geni\u015fletilebilir yap\u0131s\u0131 sayesinde, sadece Claude Code ve Codex de\u011fil, Slack, Microsoft Teams, WhatsApp, taray\u0131c\u0131 ge\u00e7mi\u015fleri veya di\u011fer \u00f6zel uygulama verileri gibi \u00e7ok \u00e7e\u015fitli veri t\u00fcrlerini de kurtarmak ve analiz etmek i\u00e7in \u00f6zelle\u015ftirilebilir.<\/p>\n<h4>S2: Bu teknikleri kendi bilgisayar\u0131mda deneyebilir miyim?<\/h4>\n<p>Evet, teorik olarak bu teknikleri kendi bilgisayar\u0131n\u0131zda deneyebilirsiniz. Ancak, \u00f6zellikle d\u00fc\u015f\u00fck seviyeli disk okuma i\u015flemleri veya silinmi\u015f verilerle u\u011fra\u015f\u0131rken dikkatli olman\u0131z gerekir. Yanl\u0131\u015f i\u015flemler, verilerin kal\u0131c\u0131 olarak kaybolmas\u0131na neden olabilir. Denemeler i\u00e7in sanal makineler (virtual machines) veya bir diskin adli imaj\u0131 \u00fczerinde \u00e7al\u0131\u015fmak, g\u00fcvenli bir yakla\u015f\u0131md\u0131r. Ayr\u0131ca, ba\u015fkalar\u0131na ait veriler \u00fczerinde bu t\u00fcr i\u015flemleri yapmak yasa d\u0131\u015f\u0131 olabilir, bu nedenle her zaman yasalara ve etik kurallara uyun.<\/p>\n<h4>S3: Kurtar\u0131lan verilerin do\u011frulu\u011fu nas\u0131l garanti edilir?<\/h4>\n<p>Kurtar\u0131lan verilerin do\u011frulu\u011fu, veri kayb\u0131n\u0131n derecesine, disk \u00fczerindeki bozulmaya ve kullan\u0131lan kurtarma tekniklerinin hassasiyetine ba\u011fl\u0131d\u0131r. Tamamen silinmemi\u015f veya \u00fczerine yaz\u0131lmam\u0131\u015f dosyalar genellikle y\u00fcksek do\u011frulukla kurtar\u0131labilir. Ancak par\u00e7alanm\u0131\u015f veya k\u0131smen bozulmu\u015f verilerde, b\u00fct\u00fcnl\u00fck do\u011frulama (hash kontrol\u00fc, \u015fema do\u011frulama) ve sezgisel yakla\u015f\u0131mlar kullan\u0131l\u0131r. Bu durumlarda, verilerin bir k\u0131sm\u0131 do\u011fru olmayabilir veya eksik olabilir. En iyi garanti, verilerin kurtar\u0131ld\u0131ktan sonra manuel olarak incelenmesi ve do\u011frulanmas\u0131d\u0131r.<\/p;>\n<h4>S4: Veri kurtarma i\u015flemi ne kadar s\u00fcrer?<\/h4>\n<p>Veri kurtarma s\u00fcresi, incelenecek diskin boyutuna, veri kayb\u0131n\u0131n derecesine, bilgisayar\u0131n performans\u0131na ve uygulanan tekniklere g\u00f6re b\u00fcy\u00fck \u00f6l\u00e7\u00fcde de\u011fi\u015fir. K\u00fc\u00e7\u00fck bir diskteki basit bir dosya kurtarma birka\u00e7 dakika s\u00fcrebilirken, terabaytlarca veriye sahip bozuk bir diskin kapsaml\u0131 adli analizi g\u00fcnler veya haftalar alabilir. osFoundry'nin Python mod\u00fcllerindeki performans optimizasyonlar\u0131 (\u00e7oklu i\u015flem, tamponlama) bu s\u00fcreyi k\u0131saltmaya yard\u0131mc\u0131 olabilir.<\/p>\n<h4>S5: Hangi Python k\u00fct\u00fcphaneleri bu s\u00fcre\u00e7te en \u00e7ok i\u015fe yarar?<\/h4>\n<p>Bu s\u00fcre\u00e7te en \u00e7ok i\u015fe yarayan Python k\u00fct\u00fcphaneleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>os<\/code> ve <code>pathlib<\/code>: Dosya sistemi etkile\u015fimi, dizin taramalar\u0131 ve yol manip\u00fclasyonu i\u00e7in.<\/li>\n<li><code>json<\/code>: JSON format\u0131ndaki verileri ayr\u0131\u015ft\u0131rmak ve i\u015flemek i\u00e7in.<\/li>\n<li><code>sqlite3<\/code>: SQLite veritabanlar\u0131na ba\u011flanmak ve SQL sorgular\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in.<\/li>\n<li><code>re<\/code> (D\u00fczenli \u0130fadeler): Metin i\u00e7inde belirli desenleri aramak ve e\u015fle\u015ftirmek i\u00e7in.<\/li>\n<li><code>glob<\/code>: Belirli dosya ad\u0131 kal\u0131plar\u0131na uyan dosyalar\u0131 bulmak i\u00e7in.<\/li>\n<li><code>pytsk3<\/code> (\u00fc\u00e7\u00fcnc\u00fc taraf): Disk imajlar\u0131 \u00fczerindeki dosya sistemlerini analiz etmek ve d\u00fc\u015f\u00fck seviyeli verilere eri\u015fmek i\u00e7in adli bili\u015fim alan\u0131nda kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<p>#osFoundry #Python #VeriKurtarma #ClaudeCode #Codex #YapayZeka #AdliBili\u015fim #DiskAnalizi<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/recover-ai-coding-sessions-from-disk\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/recover-ai-coding-sessions-from-disk<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Yapay zeka asistanlar\u0131yla yap\u0131lan kodlama oturumlar\u0131, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kritik \u00f6neme sahiptir.","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":[1403],"tags":[],"class_list":{"0":"post-45587","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","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>osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma - 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\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma\" \/>\n<meta property=\"og:description\" content=\"Yapay zeka asistanlar\u0131yla yap\u0131lan kodlama oturumlar\u0131, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kritik \u00f6neme sahiptir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-07T18:11:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-07T18:12:17+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=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma\",\"datePublished\":\"2026-11-07T18:11:42+00:00\",\"dateModified\":\"2026-11-07T18:12:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\"},\"wordCount\":5014,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\",\"name\":\"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-11-07T18:11:42+00:00\",\"dateModified\":\"2026-11-07T18:12:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma\"}]},{\"@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":"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma - 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\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/","og_locale":"tr_TR","og_type":"article","og_title":"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma","og_description":"Yapay zeka asistanlar\u0131yla yap\u0131lan kodlama oturumlar\u0131, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde kritik \u00f6neme sahiptir.","og_url":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-11-07T18:11:42+00:00","article_modified_time":"2026-11-07T18:12:17+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma","datePublished":"2026-11-07T18:11:42+00:00","dateModified":"2026-11-07T18:12:17+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/"},"wordCount":5014,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/","url":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/","name":"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-11-07T18:11:42+00:00","dateModified":"2026-11-07T18:12:17+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/osfoundry-ile-diskten-claude-ve-codex-oturumlarini-python-ile-kurtarma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"osFoundry ile Diskten Claude ve Codex Oturumlar\u0131n\u0131 Python ile Kurtarma"}]},{"@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\/45587","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=45587"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/45587\/revisions"}],"predecessor-version":[{"id":45588,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/45587\/revisions\/45588"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=45587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=45587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=45587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}