20 puan yazan iolothebard 2025-02-28 | 9 yorum | WhatsApp'ta paylaş

Kaynak kodu değil, yalnızca kısmi bir ikili dosyadan (çalışma zamanı DLL'leri yoktu)
orijinal programın amacını çıkarıp Python ile yeniden yazdı…
İyi ya da kötü, bu kesinlikle “yapay” zeka.

Çeviri:

Yıllardır süren AI hayal kırıklıklarının ardından gerçekten büyük bir şok yaşadım. Bu, sıradan bir "AI harika" yazısı değil. Bugüne kadar ben de şüpheciydim.

Arka plan : Birçoğunuz gibi ben de kodlama desteği için ChatGPT ve diğer AI araçlarını denedim. Sonuç? Sürekli olarak beklentilerin altında kaldılar. Kendinden emin açıklamalarla süslenmiş yanlış kod üreten, cilalanmış birer arama motoruydular.

Meydan okuma : 2 yaşındaki torunum bugün beni ziyarete geldi. O anda aklıma 1997 yılında Visual Basic 4 ile yaptığım basit bir uygulama geldi. Ama 27 yıllık bir çalıştırılabilir dosyayı çalıştırmak mı? Eski DLL'ler ve uyumluluk katmanları olmadan? Evet, aynen öyle.

The Hail Mary : Meraktan gerçek EXE dosyasını Claude 3.7'ye yükledim ve basit bir soru sordum: "Bu dosyanın nasıl çalıştırılacağını söyleyebilir misiniz? Bu dosya Visual Basic 4 ile yapılmış gibi görünüyor. Python'a çevrilebilirse harika olur."

Beklediğim sonuç : "Eski bir dosya, güvenlik riski olabilir, falan filan..." türü sıradan bir cevap geleceğini düşündüm.

Gerçekte olan: Claude 3.7 beklediğim uyarılarla başladı, ama sonra işler ilginçleşti. Bir şekilde ikili dosyayı analiz etti ve belirli bileşenleri tanımladı:

  • "Form1"
  • "cntTimer"
  • "btnExit"
  • Hatta gömülü ses dosyalarını bile algıladı!

Ardından, şimdiye kadar başka hiçbir AI'ın yapmadığı bir şeyi yaptı. Pygame kullanarak eksiksiz bir Python dönüşümü yazdı:

  1. İşlevselliği kusursuz şekilde kopyaladı.
  2. Kurulum için net talimatlar verdi.
  3. Gerçekten ilk seferde çalıştı

Geçen süre: 5 dakikadan az. Abartmıyorum.

Space tuşuna ses atamak ve renkli yazı tipleri eklemek gibi düzenlemeler isteyince de anında kusursuz kod güncellemeleri verdi.

AI kullanmaya başladığımdan beri ilk kez gerçekten hayran kaldım. Bu sadece gösteriş amaçlı bir numara değildi; işimde zaman kazandıran pratik bir çözümdü.

Sonunda Claude'a etkilendiğimi söyledim ve bunu neden harika bulduğumu beceriksizce özetleyip... gönderdim; ardından Reddit gönderisini yeniden yazdı. Açıkçası "neredeyse" normal geliyor. (Bu kısmı ben yazdım).

<Aynı gün 5 saat sonra> güncelleme

Bu gönderi için bir güncelleme/özet (benim yazdığım) paylaştım. Bunun doğru yöntem olup olmadığından emin değilim ama internette en az bir kişi öyle dediğine göre demek ki doğrudur.

https://www.reddit.com/r/ClaudeAI/comments/1iz1i61/update_i_uploaded_a_27yearold_exe_file_to_claude/

<Güncelleme - 11 saat sonra>

Sanırım ben bir 'Reddit dedesiyim'. Komikmiş.

Birkaç şeyi netleştireyim:

- Evet, Claude EXE yüklemeye izin verdi.
- Derlenmiş EXE içinde tanınabilir birkaç string var ama çok fazla değil.
- Bu yazıyı ve başlığı Claude yazdı. Bunun ötesinde en iyi kısım tek seferde çalışmış olmasıydı.
- Şu anda 29 yaşında olan kızım, klavyeye vurduğunda wav dosyası çalıyor ve metin gösteriliyordu.

Yorumlarda sohbet bağlantısını göremeyenler olduğu için buraya da ekliyorum:

https://claude.ai/share/3eecebc5-ff9a-4363-a1e6-e5c245b81a16

<Güncelleme - 1 gün sonra>

Twitter/X'te yeniden paylaşılan bu yazı bir milyondan fazla görüntülenmeye ulaştı. Tam gönderi burada. Gönderiyi ve tüm yorumları, senaryoyu ve bu gönderiyi yazdığım bağlamın aynısıyla Claude'a yükledim. Özellikle eleştirileri özetlemesini istedim. Claude'un özetlediği noktalar şunlardı:

Geçerli teknik bağlam

Bazıları, VB4 çalıştırılabilir dosyalarının makine kodu yerine p-code olarak derlendiğini, bu yüzden tamamen derlenmiş çalıştırılabilir dosyalara göre daha kolay analiz edildiğini doğru şekilde belirtti. Bu gerçekten doğru bir nokta. .NET öncesi VB, yorumlanabilir bir bytecode biçimi sakladığı için tamamen derlenmiş ikili dosyalara kıyasla onlardan bilgi çıkarmak daha kolaydı.

Karmaşıklık konusundaki şüphecilik

Diğerleri, ortaya çıkan Python kodunun nispeten basit olduğunu belirtti (yaklaşık 100 satır). Bunun nedeni uygulamanın karmaşık bir yazılım değil, temel işlevlere sahip basit bir program olmasıydı. Etkileyici olan şey üretilen kodun karmaşıklığı değil, ikili dosyadan çalışan koda geçişin neredeyse hiç emek gerektirmemesiydi.

Süreçle ilgili yanlış anlama

Bazı eleştirmenler, benim Claude'un geleneksel anlamda çalıştırılabilir dosyayı "decompile" ettiğini iddia ettiğimi düşünmüş gibi görünüyor. Oysa gerçekte, konuşmada anlattığım gibi, görünür string'leri analiz edip işlevi çıkarsadı; bu hâlâ etkileyici, ama gerçek bir decompilation değil.

Genel AI şüpheciliği

Teknoloji sektöründe AI yeteneklerine karşı doğal bir şüphecilik var ve bazı yorumcular etkileyici demoları refleks olarak sahte, abartılı ya da "sadece pattern matching" diye küçümseyebiliyor. Bu, yapay zeka ilerlemelerine verilen tipik bir tepki biçimi. Bana göre en geçerli eleştiri, bu başarının bağlam içinde değerlendirilmesi gerektiği yönünde. Çünkü Claude rastgele derlenmiş kod üzerinde gerçek bir ikili analiz yapmadı; bunun yerine VB çalıştırılabilir dosyasındaki metin string'leri üzerinden akıllıca çıkarım yaptı.

9 yorum

 
ndrgrd 2025-03-04

Aslında sadece metin belgelerini okuyup analiz etmekten pek farkı yok ama..

 
kandk 2025-02-28

Vay, eski unutulmuş verileri de kurtarmak mümkün olabilir mi acaba haha
Eski DOS oyunlarının videolarını yükleyince içinden exe dosyası çıkması gibi..

 
hi098123 2025-02-28

Ana metindeki görüşte dendiği gibi, vb exe dosyalarında kod yazıldığı haliyle görülebilir; ancak bu bir c++ exe olsaydı ve assembly seviyesinde kalsaydı, muhtemelen bu hâlâ mümkün olmazdı.
Yapay zekanın güçlü yanlarından biri komutları anlayıp uygulayabilmesi; bu yüzden başka dillere migration işini de fark ettirmeden epey iyi yapıyor.

 
iolothebard 2025-02-28

Claude'un eğitildiği veriler arasında VB 4.0'ın p-code'u ile ilgili belgeler varmış gibi geliyor bana.

Eğer öyle değilse (yani önceden eğitilmiş böyle bir şey yoksa), yapay zeka açısından VB 4.0'ın p-code'u ile x86 (veya arm ya da…) makine kodu arasında ne fark var ki? Sonuçta ikisi de belli kuralları olan sayı dizileri sadece. Kısa bir örnekten deseni çıkardıysa, bu da başlı başına ürkütücü.

 
hi098123 2025-03-01

vb ya da Python gibi dillerde exe oluşturulduğunda makine koduna derlenmediği için, yalnızca exe dosyasıyla bile kaynak kodu fonksiyon ve değişken adları olduğu gibi çıkarabilirsiniz.
Bu tür kuralları öğrenip uygulayabilmesi... gelecekte geliştirici olarak ayakta kalmak pek kolay olmayacak gibi görünüyor.

 
kandk 2025-02-28

Ama sonuçta assembly'nin de bir spesifikasyonu var; spesifikasyonla birlikte verilirse onu da hızlıca çevirebilir gibi görünüyor.

 
hi098123 2025-03-01

Assembly’den okunabilir doğal dilde koda dönüşmesi, gereksiz şeyler ayıklandıktan sonra yeniden yaratımın (değişken adları, fonksiyon adları vb.) alanına girdiği için, iyi sonuç vermesinin biraz zaman alacağını düşünüyorum.

 
kandk 2025-03-01

Kolay da olabilir haha
Ben de yaklaşık 10 yıl önce benzer bir şeyle makale yazmıştım

 
unsure4000 2025-02-28

Vay canına, bu gerçekten biraz şaşırtıcı.