VBReFormer Desktop Kılavuzu
VBReFormer Desktop kullanıcı kılavuzu: kurulum, lisans etkinleştirme, yedi görünüm, ikili dosya analizi, IDE’de açılabilen VB6 projesi dışa aktarma.
20.09.2026 tarihinde güncellendi14 bölüm
Windows makinenize kurulan uygulama. Visual Basic 5 ve 6 çalıştırılabilir dosyalarınızı açar, kaynak kodlarını yeniden oluşturur ve size VB6 IDE’nin yeniden açabileceği bir proje verir – üstelik eksiksiz bir çalışma tezgâhıyla: baytlar, kaynaklar, tasarımcı, grafikler, çapraz başvurular ve ikili yamalar.
Çeviriye ilişkin not. Masaüstü uygulamasının arayüzü İngilizce, Fransızca ve İspanyolca olarak sunulur; Türkçe sürümü yoktur. Bu kılavuzda menü ve görünüm adları, uygulamada göründükleri biçimiyle İngilizce olarak alıntılanır ve ilk geçtikleri yerde parantez içinde Türkçe karşılıkları verilir.
1. Kurulum
VBReFormer Desktop, her arayüz dili için bir tane olmak üzere MSI yükleyici olarak dağıtılır. Paket kendi içinde bütündür: ihtiyaç duyduğu her şeyi barındırır; önceden kurulması gereken bir framework yoktur.
| gereksinim | |
|---|---|
| Sistem | Windows 10 sürüm 1607 veya üstü ya da Windows 11 |
| Mimari | x64 |
| Framework | yok – paket kendi içinde bütündür |
| Bağlantı | tersine derleme ve lisans doğrulaması için gereklidir |
| Arayüz dilleri | İngilizce, Fransızca, İspanyolca |
Windows XP, Vista, 7 ve 8 desteklenmez. Uygulama, en az Windows 10 gerektiren bir platforma dayanır. Makineniz daha eskiyse VBReFormer Online her tarayıcıda, her sistemde çalışır – bu durumda önerilen yol budur.
Motorun çalıştığı yer
Uygulama yereldir; ancak kodun yeniden oluşturulması sunucularımızda gerçekleşir. Sürümün adının anlamı budur – Desktop + Cloud. Dosyadan okunan her şey – biçim, baytlar, tersine çevirme (disassembly), kaynaklar – makinenizde hesaplanır; yeniden oluşturulan her şey hizmetten geçer.
Help ▸ About (Yardım ▸ Hakkında) kutusu size her an bağlı motorun sürümünü, sözleşmenin sürümünü ve capabilities served (sunulan yetenekler) listesini bildirir – bir özellik görünmediğinde yararlıdır: o listede yoksa, onu reddeden arayüz değildir.
2. Lisansınızı etkinleştirin
Lisans olmadan da uygulama açılır ve çalışır: bir ikili dosyayı keşfedebilir; tersine çevrilmiş kodun tamamını, baytları, kaynakları ve tasarımcıyı okuyabilirsiniz. Lisans ise şunların kilidini açar: VB6 kodunun yeniden oluşturulması ve projenin dışa aktarılması.
Aynı anda tek koltuk
Bir VBReFormer lisansı aynı anda tek bir iş istasyonu açar. Lisansı zaten başka bir yerde kullanıyorsanız uygulama bunu açıkça söyler ve iki çıkış yolu sunar: lisansı hesabınızdan bu makineye aktarmak ya da bir koltuk eklemek.
Bu yumuşak bir rettir: ödemenizi yaptınız, eksik bir şey yok. Mesaj, teknik bir hata döndürmek yerine bunu bu şekilde söyler.
VBReFormer Online’da açık bir tarayıcı da bir koltuk sayılır: web stüdyosu ile masaüstü uygulaması aynı lisansı tüketir.
3. Pencere
- Bir ikili dosya açın. File ▸ Open a VB6 binary (Dosya ▸ Bir VB6 ikili dosyası aç,
Ctrl+O). Kabul edilen biçimler.exe,.dll,.ocxve.scr’dir. Durum çubuğu süren analizi, ardından dosya adını ve derleme biçimini – yerel kod ya da P-code – gösterir. - PROJECT (Proje) panelinde gezinin. Solda ikili dosya, VB6’nın gördüğü biçimde sunulur: formlar, sınıflar, modüller ve bunların yordamları. Ağaç talep üzerine dolar – bir düğümü genişletmek onun alt öğelerini ister; önceden hiçbir şey hesaplanmaz, bu da büyük bir çalıştırılabilir dosyada bile açılışı hızlı tutar.
- Bir yordam seçin. O düğümün görünümleri sağda belirir. Bir düğüm için sunulan görünüm yoksa, boş bir panel yerine nedeni ekrana yazılır.
Alt paneller
| sekme | ne işe yarar |
|---|---|
| Output (Çıktı) | işlemlerin günlüğü. Arayüz dilini değiştirseniz bile her satırın yazıldığı dili korur – günlük bir kayıttır, bir gösterim değil. |
| Diagnostics (Tanılama) | motorun yapmayı reddettiği şey ve nedeni. Bir sonuç sizi şaşırttığı anda edinmeniz gereken refleks. |
| Analyser (Çözümleyici) | çapraz başvurular: bir yordamı çağıranlar, bir sembolün geçtiği yerler. Sonuç tıklanabilir. |
Üye görünürlüğü
Ağaçtaki her üye, görünürlüğünü ikili dosyanın bildirdiği biçimde taşır – (Public), (Private),
(Friend). Bunlar VB6 anahtar sözcükleridir: çevrilmezler. Görünürlüğü okunamayan bir üye hiçbir
işaret taşımaz: bilmediğimizi yazmayız.
4. Yedi görünüm
Görünümler üç aileye ayrılır ve bu ayrım size okuduğunuzun nereden geldiğini söyler. Anlaşılması gereken en yararlı şey budur.
“Code” ailesi – analizle yeniden oluşturulur
| görünüm | ne gösterir | ne zaman bakmalı |
|---|---|---|
| Visual Basic 6 | yeniden oluşturulmuş, yapılandırılmış kaynak | varsayılan olarak – aradığınız şey budur |
| IR | ara gösterim | motorun ne anladığını görmek için |
| Disassembly (Tersine çevirme) | x86 makine komutları | işlemcinin ne yürüttüğünü görmek için |
| P-code | VB6 sanal makinesinin opcode’ları | yalnızca P-code ikili dosyaları |
Bu listede aşağı inmek makineye doğru gitmektir. Bir satırdan kuşku duyduğunuzda: Visual Basic 6 niyeti söyler, Disassembly olguyu söyler.
“Project files” ailesi – çıkarım değil, okuma
Designer (.frm) (Tasarımcı), Project (.vbp) (Proje) ve Structure (Yapı). Buradaki hiçbir şey kod yeniden oluşturmadan geçmez: her şey ikili dosyadaki tablolardan okunmuştur ve okunamayan şey doldurulmak yerine açıkça yazılır. Ürünün en güvenilir ailesidir ve hiçbir çıkarıma bağlı olmayan tek ailedir.
“Resources” ailesi
Bkz. bölüm 9.
5. Derlemenin sakladıkları ve attıkları
Bu bölüm, kodunuzun bazı bölümlerinin neredeyse olduğu gibi, bazılarınınsa teknik adlarla geri gelmesinin nedenini açıklar. Kural basittir:
Visual Basic’in çalışma zamanında ihtiyaç duyduğu şeyi dosyaya yazmıştır: VBReFormer onu yeniden bulur. Derlemeden sonra artık ihtiyaç duymadığı şeyi atmıştır – ve onu hiç kimse geri getiremez.
Geriye kalanlar: form, sınıf ve modül adları · denetim adları · olay işleyicileri · sınıfların public üyeleri · her arayüz özelliği · VB çalışma zamanına yapılan çağrılar (635 işlev) · Win32 API (15.680 imza) · kodun yapısı · dizeler.
Dosyada olmayanlar: yorumlar · yerel değişken adları · parametre adları · değeriyle değiştirilen
adlandırılmış sabitler · .bas modüllerindeki yordam adları · özgün girinti · Option Explicit ve
Enum’lar.
Pratik sonuç. Formlarınız çok okunaklı biçimde geri gelir.
.basmodülleriniz doğru, ama teknik adlarla (proc_42C506) geri gelir. Rename (Yeniden adlandır) işlevi (F2) bunun için vardır ve yeni adı projedeki her çağrı noktasına yayar – bkz. bölüm 7.
Doğrulanabilir iki örnek
Aşağıdaki alıntılar, Visual Basic 6 ile birlikte gelen kurulum sihirbazı SETUP1.EXE’den alınmıştır. Microsoft kaynak kodunu aynı klasörde dağıtır – dolayısıyla karşılaştırmayı kendiniz yineleyebilirsiniz.
Bir .bas modülü yordamı
Özgün kaynak, COMMON.BAS:
Sub AddDirSep(strPathName As String)
If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _
Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then
strPathName = RTrim$(strPathName) & gstrSEP_DIR
End If
End Sub
VBReFormer’ın çıktısı:
Public Sub proc_42C506(ByRef arg_8 As String)
If ((Right(Trim(arg_8), Len("/")) <> "/") And (Right(Trim(arg_8), Len("\")) <> "\")) <> 0 Then
arg_8 = (RTrim$(arg_8) & "\")
End If
End Sub
Satır satır aynı mantık. Right, Trim, Len, RTrim$ adlandırılmıştır; ByRef geçişi doğru
çıkarılmıştır. Buna karşılık yordamın adı ile parametrenin adı kaybolmuştur ve sabitler değerleri
olarak görünür – onları değiştiren VBReFormer değil, derleyicidir.
Bir olay işleyicisi
Özgün kaynak, BEGIN.FRM:
Private Sub cmdExit_Click()
ExitSetup Me, gintRET_EXIT
End Sub
VBReFormer’ın çıktısı:
Private Sub cmdExit_Click()
Set var_18 = Me
basSetup1.proc_41CE2D var_18, var_1C
End Sub
Formun adı, düğmenin adı ve işleyicinin adı olduğu gibidir; Me tanınmıştır; çağrılan modül
adlandırılmıştır, bu da size nereye gideceğinizi söyler. Yalnızca bir .bas içinde yaşayan çağrılan
yordam adres adını korur.
İşaretler
VBReFormer asla tahmin etmez. Belirlenemeyen bir değer uydurulmak yerine işaretlenir – makul görünen ama yanlış bir değer, bir decompiler’ın üretebileceği en kötü sonuçtur.
| işaret | anlamı | ne yapmalı |
|---|---|---|
proc_42C506 |
adresiyle belirtilen yordam | yeniden adlandırın (F2) |
var_18, arg_8 |
yerel değişken ya da parametre | kullanımını okuyun, sonra yeniden adlandırın |
vtbl_3C |
çözümlenmemiş sanal tablo çağrısı | Object Browser çoğu zaman hangi kitaplık olduğunu söyler |
? |
belirlenemeyen değer | aynı yerde Disassembly görünümüne bakın |
?içeren bir dosya VB6 IDE tarafından reddedilir. İşaret, olduğu gibi yeniden derlenmek için değil, sizin karar vermeniz için oradadır.
6. Analiz araçları
Masaüstü sürümünün en çok farklılaştığı yer burasıdır: web stüdyosu okuma, tersine derleme ve dışa aktarmaya odaklanırken masaüstü sürümü eksiksiz bir çalışma tezgâhı sunar.
| araç | kısayol | size ne verir |
|---|---|---|
| Analyse references (Başvuruları çözümle) | Shift+F12 |
bir yordamı çağıranlar, bir sembolün geçtiği yerler – tıklanabilir sonuç ve kapsama oranı sayıya dökülür: analizin görmediği şey susturulmaz, sayılır |
| Symbol list (Sembol listesi) | Ctrl+Shift+S |
türe ve kapsama göre filtrelenebilen eksiksiz envanter – okunan adları sentezlenen adlardan ayırır |
| Call graph (Çağrı grafiği) | Ctrl+Shift+A |
kim neyi çağırıyor, üç ölçekte, çağıran / çağrılan filtreleriyle |
| Control-flow graph (Denetim akışı grafiği) | Ctrl+Shift+G |
bir yordamın biçimi: bloklar, döngüler, geri kenarlar, erişilemeyen bloklar |
| Object Browser (Nesne tarayıcısı) | Ctrl+Shift+B |
yanıt ikili dosyanın dışında olduğunda “bu nerede tanımlı?” |
| API Browser (API tarayıcısı) | Ctrl+Shift+P |
Win32 bildirimlerinin prototipleri, takma adları ve notları |
| Cited libraries (Başvurulan kitaplıklar) | Ctrl+K |
ikili dosyanın bağımlı olduğu şeyler |
| Find VB programs (VB programlarını bul) | Ctrl+L |
bir klasördeki VB çalıştırılabilir dosyalarını bulur |
| Find (Bul) | Ctrl+Shift+F |
sunulan görünümler genelinde metin araması |
| Bookmarks (Yer işaretleri) | Ctrl+F2 |
yerleri işaretleyin, onlara geri dönün (F8 / Shift+F8) |
| Back / forward navigation (Geri / ileri gezinme) | Alt+← Alt+→ |
bir tarayıcıdaki gibi |
Kapsama oranı neden sayıya dökülür. Yerel çağrı grafiği doğrudan çağrıları görür; sanal tablolar üzerinden yapılan çağrıları ve işlev işaretçilerini görmez. Kısmi bir listeyi eksiksizmiş gibi sunmak yerine VBReFormer atladığı şeyi sayarak gösterir. Böylece sonuca ne ölçüde güvenebileceğinizi bilirsiniz.
7. Yeniden adlandırma
Bir ikili dosya üzerinde çalışmanın temel hareketidir: decompiler size mantığı geri verir, siz ona
adları geri verirsiniz. Bir sembol üzerinde F2 ya da sembol listesinden.
Kutu, decompiler’ların genellikle gizlediği üç şeyi gösterir:
- geçerli adın kökeni – sizin verdiğiniz, decompiler tarafından çıkarılan ya da yeniden oluşturulan;
- decompiler’ın önerileri, her biri önceliği ve geldiği kaynakla birlikte;
- özgün ad, ona her zaman geri dönebilirsiniz.
Yeniden adlandırma geneldir. Bir yordamı bir kez yeniden adlandırın; diğer modüllerdeki çağrı noktaları da onu izler – henüz açmadıklarınız dahil.
Reddedilen bir yeniden adlandırma her zaman nedeniyle birlikte reddedilir. Sık görülen iki durum: motor bu belge için yeniden adlandırma yeteneğini bildirmiyordur ya da geçerli görünüm yalnızca sözcüksel parçalar taşıyordur – metni renklendirmeye yeter, bir varlığı belirtmeye yetmez. Her iki durumda da mesaj, hiçbir şey yapmamak yerine bunu söyler.
8. Baytlar ve ikili yamalar
Navigate ▸ Show bytes (Gezin ▸ Baytları göster, Ctrl+Shift+H) açıklamalı onaltılık görünümü
açar: yalnızca baytları göstermez, her alanın neyi temsil ettiğini söyler. Go to address (Adrese git,
Ctrl+G) sizi doğrudan oraya götürür.
Çalıştırılabilir dosyayı değiştirme
“Raw” (ham) kipi bayt yazmanıza ve değiştirilmiş bir çalıştırılabilir dosya üretmenize olanak tanır. Dört retle çerçevelenmiştir ve her biri bir şeyi korur:
| ret | neden |
|---|---|
| Analiz edilen dosya asla hedef değildir | motor onu asla yazmak için açmaz; arayüz bu güvenceyi bozmaz |
| Var olan bir dosyanın üzerine yazmak onaya bağlıdır | “bu geri alınamaz” |
| Authenticode imzası kaldırılır | onayınız önceden istenir; kendi sertifikanızla yeniden imzalayabilirsiniz |
| Reddedilen bir yama hiçbir şey yazmaz | yarım yazılmış dosya yoktur |
Web stüdyosu ikili yamaları ve onaltılık görünümü sunmaz: bunlar masaüstü sürümüne özgü iki işlevdir.
9. Kaynaklar ve tasarımcı
İkili dosyanın kaynakları
Simgeler, imleçler, bit eşlemler, dize tabloları, sürüm bilgileri: bir .res dosyasının taşıyacağı her
şey. Her giriş türünü, boyutunu ve onunla ne yapılabileceğini gösterir; çıkarma giriş giriş ya da toplu
olarak yapılabilir.
Ürünün nasıl çizeceğini bilmediği bir kaynak listede kalır ve bayt olarak gösterilir: asla gizlenmez. Dizinin girişleri izlenemediyse bir uyarı bunu söyler – böylece listenin, ikili dosyanın taşıdığından daha kısa olduğunu bilirsiniz.
Form tasarımcısı
Formun yüzeyi, ikili dosyadan okunan özelliklerden, doğru çizim sırasıyla, VB6’nın göstereceği biçimde
çizilir. Formun görüntüsü dışa aktarılabilir (Ctrl+I).
Özellikler salt okunurdur: VBReFormer bir formun yüzeyini okumayı bilir, onu derlenmiş çalıştırılabilir dosyaya yeniden yazmayı henüz bilmez. Bkz. bölüm 13.
10. Projeyi dışa aktarın
- Önce Diagnostics panelini denetleyin. Yapılamayan şeyleri söyler. Dışa aktarmadan önce okumak, sonradan bir öğenin neden eksik olduğunu aramaktan sizi kurtarır.
- File ▸ Export the VB6 project (Dosya ▸ VB6 projesini dışa aktar). Boş bir hedef klasör seçin.
- Dışa aktarma notlarını okuyun. VBReFormer kurtaramadığı şeyi ve nedenini yazar. Bazı bilgiler – dış başvurular, derleme seçenekleri, başlangıç kipi – ikili dosyanın hiçbir yapısında yoktur: silinmemiştir, hiç orada olmamıştır. Uydurulmak yerine işaretlenir.
.vbpdosyasını Visual Basic 6’da açın. IDE’nin gerektirdiği başlıklar (VERSION,Attribute VB_Name) yazılır. Bir başvuru eksikse Project ▸ References (Proje ▸ Başvurular) üzerinden ekleyin.
Sizi koruyan iki yazma reddi. VB6 dosyaları ANSI 1252 ile yazılır. VBReFormer, bu karakter kümesi makinede yoksa – başka bir kümeyle yazmak sessizce yanlış bir dosya üretirdi – ya da kodunuzdaki bir karakter bu kümede yoksa yazmayı reddeder; ikinci durumda hangi karakter olduğunu ve kod noktasını söyler.
11. Seçenekler
| ayar | ne yapar |
|---|---|
| Indentation width (Girinti genişliği) | yalnızca yeniden oluşturulan koda uygulanır: tersine çevrilmiş kod, IR, P-code, tasarımcı bloğu ve .vbp bu düzenleyici tarafından biçimlendirilmez. |
| Code page (designer) (Kod sayfası, tasarımcı) | tasarımcının başlıklarının ve metinlerinin okunduğu sayfa. Bir VB6 ikili dosyası kendi kod sayfasını hiçbir yerde bildirmez – 236 ikili dosya üzerinde ölçülmüştür. Bir formun etiketleri tutarsız karakterler olarak görünüyorsa değiştirilecek ayar budur. |
Group under With…End With (With…End With altında grupla) |
varsayılan olarak kapalı. Çıktı tam nitelenmiştir (Frame1.Caption), çünkü derleyici With bloklarını çözer ve onları yeniden kurmak bir tahmin olurdu. Harfiyen aktarım yerine okunabilirliği tercih ediyorsanız açın. |
| Syntax colouring (Sözdizimi renklendirme) | bir rol, bir renk – roller motordan gelir; motor her parçanın ne olduğunu söyler. #RRGGBB gösterimi; geçersiz bir palet yarım uygulanmaz. |
| Interface language (Arayüz dili) | İngilizce, Fransızca, İspanyolca – değişiklik anında etkilidir. |
Görüntüleme ayarları her görüntüleme isteğiyle birlikte gönderilir; asla oturum durumu olarak ayarlanmaz. Dolayısıyla girintiyi değiştirmek hiçbir şeyi yeniden analiz etmez.
12. Kısayollar
| kısayol | eylem |
|---|---|
Ctrl+O |
Bir VB6 ikili dosyası aç |
F2 |
İmlecin altındaki sembolü yeniden adlandır |
Shift+F12 |
Başvuruları çözümle |
Ctrl+Shift+F |
Projede bul |
Ctrl+G |
Adrese git |
Ctrl+Shift+H |
Baytları göster |
Ctrl+Shift+S |
Sembol listesi |
Ctrl+Shift+B |
Object Browser |
Ctrl+Shift+P |
API Browser |
Ctrl+Shift+G |
Denetim akışı grafiği |
Ctrl+Shift+A |
Çağrı grafiği |
Ctrl+K |
Başvurulan kitaplıklar |
Ctrl+L |
Bir klasördeki VB programları |
Ctrl+F2 |
Yer işaretini aç/kapat |
F8 / Shift+F8 |
Sonraki / önceki yer işareti |
Ctrl+Shift+F2 |
Yer işareti listesi |
Alt+← / Alt+→ |
Geri / ileri gezinme |
Ctrl+I |
Form görüntüsünü kaydet |
13. Bilinen sınırlar
Derlenmiş bir çalıştırılabilir dosyanın arayüzünü değiştirme
VBReFormer bir formun yüzeyini ve tüm özelliklerini okur – onları çalıştırılabilir dosyaya yeniden yazmayı henüz bilmez. Gömülü bir kaynağı değiştirmek ve yeniden derlemeden gizli bir özellik eklemek kullanılamaz. İkili yamalar – bir adrese bayt yazmak – kullanılabilir (bölüm 8).
UserControl .ctx kaynakları
Dışa aktarmada hiçbir .ctx dosyası yazılmaz. Projeniz kalıcı kaynaklara sahip UserControl’ler
içeriyorsa, o bölümün yeniden kurulması gerekir.
10’dan önceki Windows
VBReFormer Online kullanın: sistem ne olursa olsun bir tarayıcı yeterlidir.
Hiçbir decompiler’ın aşamadığı şey
Yorumlar, yerel değişken adları, adlandırılmış sabitler: bunlar dosyada değildir. Bkz. bölüm 5.
14. Sık sorulan sorular
Bir menü işlevi yanıt vermiyor. Neden? Help ▸ About’u açın ve capabilities served listesine bakın. İşlev orada yoksa, reddeden arayüz değildir: motor bu belge için onu sunmuyordur. Uygulamanın mesajları da bunu açıkça söyler.
Dışa aktarılan kod olduğu gibi yeniden derlenir mi? Çoğu zaman: 149 projelik bir test kümesinde 121’i dokunulmadan yeniden derlenir. Diğerleri bir başvurunun eklenmesini ya da birkaç işaretin ele alınmasını gerektirir.
Formumun etiketleri okunmuyor. Bu kod sayfasıdır. Bir VB6 ikili dosyası tasarımcı metinlerinin sayfasını hiçbir yerde bildirmez – Seçenekler’de ayarlayın (bölüm 11).
Formlarım neden modüllerimden daha okunaklı? Çünkü VB6 çalışmak için denetimlerin ve olayların adlarını saklar, oysa modül yordamlarını düz adreslere çözer. Bkz. bölüm 5.
Çalıştırılabilir dosyam paketlenmiş. Bu bir sorun mu? Evet: önce paketinin açılması gerekir, aksi halde VB6 yapıları dosyada görünmez.
Bir .ocx ya da ActiveX .dll tersine derlenebilir mi?
Evet; COM bunların adlandırılmasını gerektirdiğinden public üyelerin envanteri orada genellikle daha
zengindir.
İkili dosyam bir yere gönderiliyor mu? Biçimin, baytların, tersine çevrilmiş kodun ve kaynakların okunması makinenizde işlenir. Kodun yeniden oluşturulması sunucularımızda gerçekleşir – Desktop + Cloud sürümünün anlamı budur.
Yasal mı? Bu, bulunduğunuz yargı alanına ve ikili dosya üzerindeki haklarınıza bağlıdır. Amaçlanan kullanım kendi kodunuzu ya da haklarını veya iznini elinizde bulundurduğunuz kodu kurtarmaktır.
Ayrıca bakınız
VBReFormer Online KılavuzuSatın almadan deneyin