Panduan VBReFormer Online
Panduan pengguna VBReFormer Online: letakkan file executable VB6 di peramban, jelajahi kode hasil rekonstruksinya, unduh proyek yang dapat dibuka di IDE.
Diperbarui pada 20/09/202611 bab
Studio di peramban Anda. Anda meletakkan file executable Visual Basic 5 atau 6, menjelajahi kode hasil rekonstruksinya, dan pulang membawa arsip yang dapat dibuka kembali oleh IDE VB6. Tidak ada yang perlu diinstal, di sistem apa pun – termasuk macOS, Linux, dan versi-versi Windows yang terlalu lama untuk aplikasi desktop.
Catatan tentang terjemahan. Antarmuka studio online tidak tersedia dalam bahasa Indonesia. Dalam panduan ini, nama tab, tampilan, dan tombol dikutip dalam bahasa Inggris sebagaimana tampil di studio, dan padanan bahasa Indonesianya diberikan dalam tanda kurung pada kemunculan pertama.
1. Membuka studio
Tidak ada yang perlu diinstal, tidak ada yang perlu dikonfigurasi, dan tidak ada akun yang perlu dibuat untuk memulai: buka alamat studio di peramban terbaru, dan Anda sudah sampai.
- Sistem apa pun – studio hanya bergantung pada peramban. Inilah satu-satunya cara menggunakan VBReFormer dari Mac, komputer Linux, atau Windows yang lebih lama dari 10.
- Sebelas bahasa – studio web disajikan dalam sebelas bahasa, hampir empat kali lipat aplikasi desktop. Pemilihnya ada di header.
- Tema terang atau gelap – studio mengikuti pengaturan sistem Anda, dan Anda dapat mengubahnya sendiri.
Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية
2. Meletakkan file biner
- Centang pernyataan. Studio meminta Anda menyatakan bahwa Anda adalah pemilik program tersebut, atau bahwa Anda berhak menganalisis kodenya. Ini adalah syarat penggunaan, bukan formalitas.
- Letakkan file. Seret ke zona peletakan, atau telusuri file Anda. Format yang diterima:
.exe,.dll,.ocx. Ukuran maksimum: 64 MB – batasnya ditampilkan di layar, bukan baru diketahui setelah unggahan gagal. - Biarkan analisis berjalan. Studio menyebutkan setiap tahap selagi berjalan, dengan penghitung: Receiving the file (Menerima file) → Analysing the binary (Menganalisis file biner) → Decompiling (Mendekompilasi) → Inventorying symbols (Menginventarisasi simbol) → Call graph (Graf panggilan) → Control flow (Alur kontrol).
Waktunya bergantung pada ukuran dan sifat file biner. Sebagai gambaran, file executable sebesar 9,35 MB berjalan dari pembukaan hingga proyek tertulis dalam waktu sekitar dua belas detik.
Setelah analisis selesai, studio juga memberi tahu Anda jenis file biner apa yang ditemukannya: kode native, P-code, atau jenis yang tidak dapat ditentukan.
3. Apa yang terjadi pada file Anda
File dianalisis, lalu dihapus bersama sesi Anda. Tidak ada yang disimpan.
Itu tertulis di halaman peletakan file, dan memang begitulah layanan ini berperilaku: file biner Anda diproses selama sesi kerja Anda berlangsung, dan hilang bersamanya. File tidak diarsipkan, tidak diindeks, tidak digunakan kembali.
Apa yang juga tersirat dari hal ini. Pekerjaan Anda pun tidak bertahan setelah sesi berakhir. Jika Anda menutup tab atau sesi kedaluwarsa, Anda harus meletakkan file biner lagi. Unduh arsip Anda sebelum pergi. Memulai ulang layanan juga memutus sesi yang sedang berlangsung – tidak ada risiko bagi file asli Anda, yang berada di komputer Anda sendiri, tetapi Anda akan kehilangan penjelajahan yang sedang berjalan.
Jika kerahasiaan file biner Anda merupakan urusan kontraktual, perhatikan bahwa edisi Desktop menangani secara lokal semua yang tergolong membaca file – format, byte, disassembly (pembongkaran kode), sumber daya – dan hanya mengirim ke layanan apa yang tergolong rekonstruksi.
4. Empat jalan masuk ke file biner
Panel sebelah kiri menawarkan empat titik masuk, dan keempatnya menjawab empat pertanyaan yang berbeda.
| tab | pertanyaan yang dijawabnya |
|---|---|
| Project (Proyek) | “Bagaimana program ini disusun?” – pohon form, kelas, modul, beserta prosedurnya, sebagaimana VB6 melihatnya. |
| Symbols (Simbol) | “Di mana ini didefinisikan?” – inventaris lengkap, dengan jenis dan wadah setiap simbol. Tab ini membedakan nama yang dibaca dari file biner dengan nama yang terpaksa disintesisnya, yang seketika memberi tahu Anda apa yang dapat diandalkan. |
| Search (Cari) | “Di mana teks ini muncul?” – dalam kode hasil rekonstruksi maupun dalam bagian desainer. |
| Resources (Sumber daya) | “Apa yang ada di dalamnya selain kode?” – ikon, kursor, bitmap, tabel string, informasi versi, dengan jenis, ukuran, dan isinya. Disediakan tanpa lisensi: sumber daya dibaca, bukan direkonstruksi. |
Di dalam pohon, setiap anggota membawa visibilitas yang dideklarasikan file biner – Public,
Private, Friend. Anggota yang visibilitasnya tidak dapat dibaca tidak membawa tanda apa pun:
kami tidak menuliskan apa yang tidak kami ketahui.
Mengganti nama
Studio web memungkinkan Anda mengganti nama simbol, dan penggantian nama bersifat global: titik-titik pemanggilan di modul lain ikut berubah. Inilah tindakan utama saat bekerja pada file biner – dekompiler mengembalikan logikanya kepada Anda, Anda mengembalikan nama-namanya.
5. Tampilan
Tujuh tampilan, dan studio sendiri menyatakan, di bawah masing-masing, apa yang ditampilkannya dan apakah memerlukan lisensi.
| tampilan | apa yang ditampilkan | lisensi |
|---|---|---|
| Source (Sumber) | kode VB6 hasil rekonstruksi | pratinjau tanpa lisensi |
| IR | apa yang dilihat dekompiler sebelum membangun ulang alur kontrol | pratinjau tanpa lisensi |
| Assembly (Bahasa rakitan) | kode mesin x86, dengan simbol yang telah diselesaikan | disediakan secara penuh |
| P-code | opcode mesin virtual VB6 | disediakan secara penuh |
| Designer (Desainer) | bagian desainer form | disediakan secara penuh |
| Project | .vbp hasil rekonstruksi |
disediakan secara penuh |
| Structure (Struktur) | struktur format sebagaimana dibaca | disediakan secara penuh |
Garis pemisahnya. Apa yang dibaca dari file Anda gratis; apa yang direkonstruksi dijual. Disassembly, struktur, bagian desainer, dan
.vbpdiambil dari tabel-tabel yang ada di file executable Anda sendiri. Kode sumber VB6 tidak ada di mana pun – ia harus dibangun ulang, dan pekerjaan itulah produknya.
Di bawah kode, studio juga menampilkan apa yang dilaporkan dekompiler untuk prosedur saat ini: diagnostik, yaitu apa yang tidak dapat dilakukannya dan mengapa. Itulah refleks yang harus dimiliki setiap kali suatu hasil mengejutkan Anda.
6. Apa yang disimpan kompilasi, dan apa yang dibuangnya
Bab ini menjelaskan mengapa form Anda keluar dengan sangat terbaca sementara modul .bas Anda
keluar dengan nama teknis. Aturannya sederhana:
Apa pun yang dibutuhkan Visual Basic pada waktu eksekusi, ditulisnya ke dalam file: VBReFormer menemukannya kembali. Apa pun yang tidak lagi dibutuhkannya setelah kompilasi, dibuangnya – dan tidak seorang pun dapat mengembalikannya.
Yang bertahan: nama form, kelas, dan modul · nama kontrol · event handler · anggota public kelas · properti antarmuka · pemanggilan ke runtime VB (635 fungsi) · API Win32 (15.680 signature) · struktur kode · string.
Yang tidak ada dalam file: komentar · nama variabel lokal · nama parameter · konstanta bernama,
yang diganti dengan nilainya · nama prosedur dalam modul .bas · indentasi asli.
Contoh yang dapat diverifikasi
Kutipan di bawah ini berasal dari SETUP1.EXE, wizard instalasi yang disertakan bersama Visual Basic 6 – yang kode sumbernya didistribusikan oleh Microsoft. Karena itu, siapa pun yang memiliki VB6 dapat mengulangi perbandingan ini.
Kode sumber asli, 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
Sebagaimana dihasilkan VBReFormer:
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
Logikanya identik, baris demi baris. Right, Trim, Len, dan RTrim$ bernama; pelewatan
ByRef disimpulkan dengan benar. Yang hilang adalah nama prosedur dan nama parameternya, dan
konstanta bernama muncul sebagai nilainya – kompilerlah yang menggantinya, bukan VBReFormer.
Membaca penanda
VBReFormer tidak pernah menebak: nilai yang tidak dapat dipastikan ditandai, bukan dikarang.
| penanda | arti | yang harus dilakukan |
|---|---|---|
proc_42C506 |
prosedur yang ditunjuk dengan alamatnya | ganti namanya – namanya ikut disebarkan |
var_18, arg_8 |
variabel lokal atau parameter | baca cara penggunaannya, lalu ganti namanya |
? |
nilai tidak dapat dipastikan | lihat tampilan Assembly di tempat yang sama |
File yang berisi
?akan ditolak oleh IDE VB6. Penanda itu ada agar Anda yang memutuskan, bukan untuk dikompilasi ulang apa adanya. Nilai yang tampak masuk akal tetapi salah adalah hal terburuk yang dapat dihasilkan sebuah dekompiler.
7. Graf
Dua graf, dan keduanya tidak menceritakan kisah yang sama.
- Calls (Panggilan) – siapa memanggil apa: arsitektur program. Filter untuk Callers (Pemanggil), Callees (Yang dipanggil), atau Both (Keduanya), dan opsi untuk menyembunyikan node yang terisolasi.
- Flow (Alur) – ke mana eksekusi berjalan: blok, titik masuk, kepala loop, sisi balik loop, dan blok yang ditandai UNREACHABLE (tidak terjangkau).
Lima cara membaca sebuah blok
Pilih sebuah blok di dalam graf, lalu pilih apa yang ingin Anda lihat di dalamnya: Shape (Bentuk), IR, VB6, Assembly, atau P-code. Potongan program yang sama, lima tingkat pembacaan.
Kejujuran dalam penyajian. Studio menyatakan berapa banyak blok yang tertambat pada baris listing, dan berapa banyak yang tidak memiliki alamat yang terbukti – instruksinya kemudian jatuh ke irisan sebelumnya. Dengan demikian Anda tahu bagian mana dari pengirisan itu yang pasti.
Graf memerlukan lisensi: siapa memanggil apa dan ke mana eksekusi berjalan adalah arsitektur program itu sendiri. Disassembly dan struktur tetap terbuka tanpa lisensi.
8. Pratinjau dan lisensi
Tanpa lisensi, tampilan Source tidak ditolak untuk Anda: tampilan ini ditampilkan dengan sebagian ditutupi. Anda melihat struktur, nama-nama yang berhasil dipulihkan, dan kualitas rekonstruksi yang sesungguhnya – pada file biner Anda sendiri – sebelum membayar apa pun.
Ini disengaja: pengunjung yang tidak melihat apa-apa tidak dapat menilai. Dan jika langganan berakhir, Anda melihat apa yang akan Anda dapatkan kembali, bukan pintu yang tertutup.
Satu stasiun kerja pada satu waktu
Satu lisensi VBReFormer membuka satu stasiun kerja pada satu waktu – dan sebuah peramban dihitung sebagai satu stasiun kerja. Jika lisensi Anda sedang bekerja di tempat lain, studio menawarkan untuk memindahkannya ke sini dari akun Anda, atau menambah satu kursi. Ini adalah penolakan yang lunak: Anda sudah membayar, tidak ada yang kurang.
9. Mengunduh kode sumber Anda
Panel penyerahan menghasilkan arsip .zip yang berisi .vbp beserta file-filenya – .bas,
.cls, .frm – yang ditulis dalam ANSI, sebagaimana diharapkan IDE. Panel menyatakan jumlah
file dan ukurannya sebelum Anda mengunduh.
Baca catatannya sebelum membuka proyek
Studio menampilkan apa yang tidak dapat direkonstruksi, dengan alasan untuk setiap entri. Beberapa informasi – referensi eksternal, opsi kompilasi, mode startup – tidak ada dalam struktur mana pun di file biner: bukan terhapus, melainkan memang tidak pernah ada di sana. Jadi informasi itu dilaporkan, bukan dikarang.
Di IDE, jika ada referensi yang hilang, tambahkan melalui Project ▸ References (Proyek ▸
Referensi). Penanda ? yang mungkin ada harus Anda tangani secara manual.
Panel kemudian menawarkan untuk menganalisis file biner lain: sesi dimulai dari awal, dan file sebelumnya dihapus.
10. Online atau Desktop?
Kedua edisi berbagi mesin yang sama dan menghasilkan kode yang sama. Keduanya tidak melayani tujuan yang sama.
| Online | Desktop | |
|---|---|---|
| Instalasi | tidak ada | MSI, Windows 10+ |
| Sistem | semua | Windows 10 dan 11 |
| Bahasa antarmuka | 11 | 3 |
| Pohon, simbol, pencarian, ganti nama | ✔ | ✔ |
| Tujuh tampilan | ✔ | ✔ |
| Graf panggilan dan alur | ✔ | ✔ |
| Ekspor proyek | ✔ (zip) | ✔ (folder) |
| Sumber daya: inventaris dan isi | ✔ | ✔ |
| Sumber daya: ekstraksi ke file | ✘ | ✔ |
| Tampilan heksadesimal beranotasi | ✘ | ✔ |
| Desainer yang digambar, ekspor gambar | ✘ (hanya bagian teks) | ✔ |
| Patch biner | ✘ | ✔ |
| Referensi silang | ✘ | ✔ |
| Peramban objek, peramban API Win32 | ✘ | ✔ |
| Bookmark, opsi render | ✘ | ✔ |
| Pekerjaan bertahan setelah sesi | ✘ | ✔ |
| Penagihan | kredit | langganan |
Singkatnya – Online untuk membuka file biner, memahami apa yang dilakukannya, dan pulang membawa kode sumber. Desktop untuk bekerja pada file biner dalam waktu lama: byte, sumber daya, referensi silang, patch, dan pekerjaan yang tidak lenyap saat Anda menutup tab.
11. Pertanyaan yang sering diajukan
Apakah file biner saya disimpan? Tidak. File dianalisis, lalu dihapus bersama sesi Anda. Lihat bab 3.
File saya lebih besar dari 64 MB. Itu adalah batas studio, yang dinyatakan sebelum Anda meletakkan file. Untuk file biner yang lebih besar, edisi Desktop tidak memiliki batasan unggahan semacam itu.
Di mana sumber daya file biner? Di tab Resources di sebelah kiri – tanpa lisensi. Anda melihat setiap entri dengan jenis dan ukurannya, serta isinya saat Anda membukanya: gambar digambar, teks ditampilkan, dan yang lainnya ditampilkan sebagai byte, bukan disembunyikan. Ekstraksi ke file khusus untuk edisi Desktop, demikian pula tampilan heksadesimal.
Mengapa kodenya berhenti di tengah prosedur? Itu pratinjaunya: tanpa lisensi, edisi gratis menampilkan struktur, nama-nama, dan disassembly lengkap, tetapi badan prosedur hasil rekonstruksi memerlukan lisensi.
Saya menutup tab dan kehilangan semuanya. Pekerjaan tidak bertahan setelah sesi berakhir. Unduh arsipnya sebelum pergi; file binernya sendiri masih ada di komputer Anda.
Apakah kode yang diekspor dapat dikompilasi ulang apa adanya? Sering kali: pada kumpulan uji 149 proyek, 121 di antaranya dikompilasi ulang tanpa penyuntingan. Sisanya memerlukan penambahan referensi yang hilang atau penanganan beberapa penanda.
File executable saya dikemas (packed). Kemasannya harus dibongkar (unpack) terlebih dahulu, jika tidak, struktur VB6 tidak terlihat dalam file.
Apakah ini legal? Itu bergantung pada yurisdiksi Anda dan pada hak Anda atas file biner tersebut – itulah yang dimaksud pernyataan saat meletakkan file. Penggunaan yang dimaksudkan adalah memulihkan kode Anda sendiri, atau kode yang haknya Anda miliki atau yang Anda berwenang untuk menganalisisnya.
Lihat juga
Panduan VBReFormer DesktopCoba tanpa membeli