Bir VB6 uygulamasının kaynak kodunu kaybettiniz. İşte kurtarılabilecekler.
Bozulan disk, ayrılan geliştirici, çok eski bir sürümün yedeği: geriye yalnızca derlenmiş program kaldı. Bir VB6 decompiler’ı ondan sanılandan çok daha fazlasını çıkarır, ama her şeyi değil. Bu sayfa, siz hiçbir şey kurmadan önce neyin kurtarılıp neyin kurtarılamayacağını söyler.
Bu durumlardan birinde misiniz?
Disk bozuldu
Geliştirme bilgisayarı gitti, ama EXE hâlâ kullanıcılarınızda çalışıyor.
Geliştirici ayrıldı
Projeyi yanında götürdü ya da nerede sakladığını kimse bilmiyor.
Yüklenici ortadan kayboldu
Uygulamayı yazan şirket artık yok ve kaynak kod hiç teslim edilmedi.
Yedek çok eski
Bulunan kaynak kod, üretimde çalışan sürümle artık uyuşmuyor.
Neye ihtiyacınız var
Derlenmiş dosya: Visual Basic 5 veya 6 ile üretilmiş bir .exe, .dll, .ocx veya .scr. Başka bir şey gerekmez. P-Code'a mı yoksa yerel koda mı derlendiğini bilmeniz gerekmez: VBReFormer bunu algılar ve ikisini de işler.
- P-Code kaynak koda dönüştürme, VB5 ve VB6
- Yerel x86 kodunu kaynak koda dönüştürme, VB5 ve VB6
- UPX ile paketlenmiş ikili dosyalar: çalıştırılmadan açılır
- Ardından ASPack, MPRESS ve PECompact Yakında
Geri gelenler
Formlar ve denetimler, resimler dahil tüm özellikleriyle: eksiksiz, her durumda.
Kaynaklar, dizeler, kitaplık ve üçüncü taraf denetim başvuruları, proje yapısı: IDE’de yeniden açılan bir .vbp.
Yordamların kodu: koşullar, döngüler, çağrılar, atamalar, denetim erişimleri; P-Code ve yerel kod fark etmeksizin okunabilir Visual Basic olarak yeniden oluşturulur. Kapsam sayfası bunun neye karşılık geldiğini program program ölçer.
%80
projeler VB6'da düzeltmesiz yeniden derleniyor
1.158 / 1.164
tanımlı P-Code komutu Visual Basic'e çevrildi
%100
formlar ve özellikleri her durumda geri geliyor
Bizde de başkasında da asla geri gelmeyenler: derleyicinin saklamadığı yerel değişken adları ve yorumlar. Kurtarılan kod okunur ve yeniden derlenir; özgün koda kelimesi kelimesine uymaz.
SETUP1.EXE
Herkes doğrulayabilir: SETUP1.EXE
Kaynak kodu VB6 ile birlikte gelen bir Microsoft programı: herkes karşılaştırabilir.
136 → 227
dışa aktarılan yordam, 1. nesilden V7'ye
22 / 24
rastgele seçilip kaynağıyla karşılaştırılan yordam: V7 daha sadık
Proje geri geldikten sonra
Yeniden sıradan bir proje olur: özgün IDE'de açar, okur ve bakımını yaparsınız.
- Bir hatayı düzeltmek ya da bir iş kuralını değiştirmek, sonra yeniden derlemek
- Standard'a dahil x86 ve P-Code disassembler'larıyla makine kodunu okumak
- Professional'daki çağrı grafiği ve çapraz referanslarla programı baştan sona izlemek
- Artık kimsenin tamamını bilmediği bir uygulamayı belgelemek
Nasıl ilerlenir, önce ücretsiz
- 1
İkili dosyayı ücretsiz sürümde açın veya kurulum gerektirmeyen çevrimiçi stüdyoya bırakın. Proje yapısını, eksiksiz formları ve tersine derlenen kodun bir önizlemesini görürsünüz.
- 2
Kanıta göre karar verin: önizleme, motorun bir örnekten değil, sizin ikili dosyanızdan yeniden oluşturduğunu gösterir. Gördükleriniz lisansa değiyorsa alın; değmiyorsa hiçbir şey harcamamış olursunuz.
- 3
Lisansla projenin tamamını dışa aktarın ve Visual Basic 6'da yeniden açın: projelerin yaklaşık %80'i hiçbir düzeltme gerekmeden yeniden derlenir. İkili dosyanın belirlemeye izin vermediği bir değer, aramayla bulunabilen bir VBRF_ValeurInconnue() çağrısına dönüşür.
Ayrıntılı makale: P-Code ile yerel kodu ayırt etmek ve nereden başlamalı
Ne kadar tutar
Denemek ücretsizdir. Yalnızca kendi ikili dosyanızda gördüğünüz sonuç buna değerse ödersiniz.
Ücretsiz sürüm
Eksiksiz formlar, proje yapısı ve kod önizlemesi
0 €
Standard
Kaynak kodunuzu geri alın
79 € kullanıcı başına
Professional
Standard artı analiz araçları
229 € kullanıcı başına
Sık sorulan sorular
P-Code ile yerel kod (Native Code) arasındaki fark nedir?
VB6 ya P-Code’a (sanal makine tarafından çalıştırılan sözde kod) ya da yerel koda (Native Code; x86 makine komutları, varsayılan ayar) derler. 2. nesilden (VBReFormer 7) itibaren aynı motor her ikisini de okunabilir Visual Basic’e tersine derler: tanımlı 1.164 P-Code komutundan 1.158’i çevrilir; bu ölçüm kapsam sayfasında yayımlanmıştır. Önceki nesil yalnızca yerel kodu yeniden oluşturuyordu.
Çalıştırılabilir bir dosyadan neler kurtarılır, neler kalıcı olarak kaybolur?
Visual Basic'in çalışma zamanında ihtiyaç duyduğu her şey dosyada bulunur ve geri gelir: form, sınıf, modül ve denetim adları, olay işleyicileri, genel sınıf üyeleri, arayüz özellikleri, çalışma zamanı çağrıları, API bildirimleri. Derleyicinin attığı şeyler hiçbir araçla kurtarılamaz: yorumlar, yerel değişken ve parametre adları, değeriyle değiştirilmiş adlandırılmış sabitler ve .bas modüllerindeki yordam adları. Ortalama olarak kaynak kodun %90'ı kurtarılır; eksik olan kısım, dosyada bulunmayan bu öğelerden ibarettir.
Tersine derlenen kod Visual Basic 6 IDE'sinde yeniden derlenebiliyor mu?
Evet: pratikte projelerin yaklaşık %80'i düzeltme gerektirmeden yeniden derleniyor. Dışa aktarım, IDE'nin istediği başlıkları (VERSION, Attribute VB_Name) yazar; bunlar olmadan VB6 dosyayı reddeder. Belirlenemeyen bir değer asla uydurulmaz: VB6'nın kabul ettiği ve aramayla bulunabilen bir VBRF_ValeurInconnue() çağrısına dönüşür. İkili dosyada olmayan şey, dışa aktarım notlarında adlandırılır ve gerekçelendirilir.
Tersine derleme benim ikili dosyamda çalışmazsa ne olur?
Ücretsiz sürüm tam da bunun içindir: herhangi bir satın alma öncesinde, SİZİN dosyanız üzerinde nelerin çıkarılabileceğini – formlar, kaynaklar, proje yapısı – gösterir. Her zaman önce denemenizi öneririz. Lisanslar anında teslim edilen dijital içerik olduğundan satışlar kesindir; teknik bir sorunla karşılaşırsanız destek ekibimiz bir çözüm için sizinle birlikte çalışır.
Dosyam saklanıyor mu?
İkili dosyanız saklanmaz: analiz edilir, ardından oturumla birlikte silinir
Bir programı tersine derlemek yasal mı?
Evet, yazılımın haklarına sahipseniz – tipik durum, kendi kayıp kaynak kodunuzu yeniden oluşturmaktır – veya birlikte çalışabilirliğin yasal çerçevesi içinde. Analiz edilen program üzerinde gerekli haklara sahip olmanız gerekir.
VBReFormer .NET, VB.NET veya C# kodunu tersine derler mi?
Hayır. VBReFormer, Visual Basic 5 ve 6 ile çalışır: .exe, .dll, .ocx ve .scr. Bir .NET derlemesi (assembly) için .NET decompiler gerekir; blogda birkaçını karşılaştırıyoruz.
Bunu sizin yerinize biz yapalım mı?
Projeyi ikili dosyanızdan kurtarıyor, IDE’de yeniden açıyor ve bulunanların raporuyla birlikte bakıma hazır olarak teslim ediyoruz. Herhangi bir tekliften önce ikili dosyanın ücretsiz değerlendirmesi.
Ücretsiz değerlendirme isteyin
