Посібник VBReFormer Online
Посібник користувача VBReFormer Online: перетягнути виконуваний файл VB6 у браузер, дослідити його відновлений код, завантажити проєкт, який знову відкривається в IDE.
Оновлено 20.09.202611 розділів
Студія у вашому браузері. Ви перетягуєте виконуваний файл Visual Basic 5 або 6, досліджуєте його відновлений код і йдете з архівом, який IDE VB6 знову відкриває. Нічого встановлювати, на будь-якій системі — включно з macOS, Linux і версіями Windows, застарими для настільного застосунку.
1. Відкрити студію
Щоб почати, нічого не треба встановлювати, налаштовувати чи створювати обліковий запис: відкрийте адресу студії в сучасному браузері — і ви на місці.
- Будь-яка система — студія залежить лише від браузера. Це єдиний спосіб користуватися VBReFormer з Mac, комп'ютера з Linux або Windows, старішої за 10.
- Одинадцять мов — вебстудія подається одинадцятьма мовами, майже вчетверо більше, ніж настільний застосунок. Перемикач у заголовку.
- Світла або темна тема — студія наслідує налаштування вашої системи, і ви можете задати її примусово (Світла / Темна).
Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية
2. Перетягнути бінарник
- Позначте декларацію. Студія просить вас заявити, що ви власник програми або маєте право аналізувати її код. Це умова використання, а не формальність.
- Перетягніть файл. Перетягніть його у призначену ділянку або огляньте свої файли. Прийнятні
формати:
.exe,.dll,.ocx. Максимальний розмір: 64 МБ — обмеження показано на екрані, а не виявляється після невдалого завантаження. - Дайте аналізу відбутися. Студія називає кожен етап, з лічильником: Отримання файлу → Аналіз двійкового файлу → Декомпіляція → Опис символів → Граф викликів → Потік керування.
Тривалість залежить від розміру та природи бінарника. Для орієнтиру: виконуваний файл на 9,35 МБ проходить від відкриття до записаного проєкту приблизно за дванадцять секунд.
Після завершення аналізу студія також каже вам, якої природи те, що вона знайшла: нативний код, P-code або невизначена природа.
3. Що стається з вашим файлом
Файл аналізується, а потім стирається разом із вашим сеансом. Нічого не зберігається.
Так написано на сторінці завантаження, і так це працює насправді: ваш бінарник обробляється протягом вашого робочого сеансу і зникає разом із ним. Він не архівується, не індексується, не використовується повторно.
Що це також означає. Ваша робота не переживає сеанс. Якщо ви закриєте вкладку або сеанс спливе, бінарник доведеться перетягнути знову. Завантажте свій архів, перш ніж піти. Перезапуск сервісу теж від'єднує поточні сеанси — без ризику для вашого оригінального файлу, який лежить на вашій машині, але ви втратите поточне дослідження.
Якщо конфіденційність вашого бінарника є договірним питанням, знайте, що редакція Desktop обробляє локально все, що стосується читання файлу — формат, байти, дизасемблювання, ресурси — і надсилає до сервісу лише те, що стосується відновлення.
4. Чотири способи увійти в бінарник
Ліва панель пропонує чотири входи, і вони відповідають на чотири різні запитання.
| вкладка | запитання, на яке вона відповідає |
|---|---|
| Проєкт | «Як організовано цю програму?» — дерево форм, класів, модулів та їхніх процедур, таким, як його бачив VB6. |
| Символи | «Де визначено це?» — повний перелік, з видом і контейнером кожного символу. Він відрізняє прочитані назви від синтезованих, що одразу каже вам, на що можна покладатися. |
| Пошук | «Де з'являється цей текст?» — у відновленому коді, як і в розділах конструктора. |
| Ресурси | «Що є, крім коду?» — піктограми, курсори, растрові зображення, таблиці рядків, відомості про версію, з їхнім типом, розміром і вмістом. Подається без ліцензії: ресурс читається, а не відновлюється. |
У дереві кожен член має видимість такою, як її оголошує бінарник — (Public), (Private),
(Friend). Член, видимість якого не вдалося прочитати, не має жодної позначки: ми не пишемо того,
чого не знаємо.
Перейменування
Вебстудія дозволяє перейменовувати символи, і перейменування глобальне: місця виклику в інших модулях ідуть за ним. Це центральний жест роботи з бінарником — декомпілятор повертає вам логіку, ви повертаєте йому назви.
5. Подання
Сім подань, і студія сама каже під кожним, що воно показує і чи потребує ліцензії.
| подання | що показує | ліцензія |
|---|---|---|
| Джерело | відновлений код VB6 | попередній перегляд без ліцензії |
| IR | те, що бачить декомпілятор, перш ніж відбудувати потік | попередній перегляд без ліцензії |
| Асемблер | машинний код x86, розв'язані символи | подається повністю |
| P-code | опкоди віртуальної машини VB6 | подається повністю |
| Конструктор | розділ конструктора форми | подається повністю |
| Проєкт | відновлений .vbp |
подається повністю |
| Структура | структури формату такими, як їх прочитано | подається повністю |
Лінія, яка розділяє. Те, що читається у вашому файлі, безкоштовне; те, що відновлюється, продається. Дизасемблювання, структура, конструктор і
.vbpвзяті з таблиць, наявних у вашому виконуваному файлі. Вихідний код VB6 натомість не існує ніде — його треба відновити, і саме ця робота є продуктом.
Під кодом студія також показує те, про що сигналізує декомпілятор для поточної процедури: діагностику, тобто те, чого він не зміг зробити, і чому. Це рефлекс, який варто мати, щойно результат дивує.
6. Що компіляція зберігає, а що викидає
Цей розділ пояснює, чому ваші форми повертаються дуже читабельними, а модулі .bas — з технічними
назвами. Правило просте:
Те, що Visual Basic потребує під час виконання, він записав у файл: VBReFormer це знаходить. Те, що йому більше не було потрібно після компіляції, він викинув — і ніхто не може це відновити.
Що виживає: назви форм, класів і модулів · назви елементів керування · обробники подій · публічні члени класів · властивості інтерфейсу · виклики runtime VB (635 функцій) · API Win32 (15 680 сигнатур) · структура коду · рядки.
Чого немає у файлі: коментарі · назви локальних змінних · назви параметрів · іменовані константи,
замінені їхнім значенням · назви процедур у модулях .bas · початкові відступи.
Приклад, який можна перевірити
Наведений уривок взято з SETUP1.EXE, майстра встановлення, що постачається з Visual Basic 6 — його вихідний код розповсюджує Microsoft. Отже, порівняння може повторити кожен, хто має VB6.
Оригінальний код, 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:
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
Ідентична логіка, рядок за рядком. Right, Trim, Len, RTrim$ названі; передавання ByRef
виведено. Натомість назву процедури та назву параметра втрачено, а константи з'являються як їхнє
значення — їх замінив компілятор, а не VBReFormer.
Маркери
VBReFormer ніколи не вгадує: значення, яке не вдається встановити, позначається, а не вигадується.
| маркер | значення | що робити |
|---|---|---|
proc_42C506 |
процедура, позначена своєю адресою | перейменувати — назва поширюється |
var_18, arg_8 |
локальна змінна або параметр | прочитати її використання, потім перейменувати |
? |
невстановлене значення | переглянути подання Асемблер у тому самому місці |
Файл, що містить
?, буде відхилено IDE VB6. Маркер існує, щоб ви вирішили, а не щоб його перекомпілювали як є. Правдоподібне й хибне значення є найгіршим результатом, який може видати декомпілятор.
7. Графи
Два графи, і вони розповідають не одну й ту саму історію.
- Виклики — хто що викликає: архітектура програми. Фільтри Хто викликає, Кого викликано або Обидва, і параметр, щоб приховати ізольовані вузли.
- Потік — де проходить виконання: блоки, вхід, заголовки циклів, повернення циклів і блоки, позначені НЕДОСЯЖНИЙ.
П'ять способів прочитати блок
Виберіть блок графа і оберіть, що ви хочете в ньому побачити: Форма, IR, VB6, Асемблер або P-code. Це та сама частина програми на п'яти рівнях читання.
Чесність відображення. Студія показує, скільки блоків прив'язано до рядків лістингу, і скільки без доведеної адреси — їхні інструкції тоді потрапляють до попереднього відрізка. Отже, ви знаєте, яка частина поділу є певною.
Графи потребують ліцензії: хто що викликає і де проходить виконання — це архітектура програми. Дизасемблювання та структура лишаються відкритими без неї.
8. Попередній перегляд і ліцензія
Без ліцензії подання Джерело вам не відмовляють: воно показується частково прихованим. Ви бачите структуру, знайдені назви та справжню якість відновлення — на вашому власному бінарнику — перш ніж заплатити будь-що.
Це свідомий вибір: відвідувач, який нічого не бачить, не може судити. А якщо підписка спливає, ви бачите, що б ви відновили, замість зачинених дверей.
Одне робоче місце за раз
Ліцензія VBReFormer відкриває одне робоче місце за раз — і браузер рахується як робоче місце. Якщо ваша працює деінде, студія пропонує перенести її сюди з вашого облікового запису або додати робоче місце. Це м'яка відмова: ви заплатили, вам нічого не бракує.
9. Завантажити ваш вихідний код
Панель доставки створює архів .zip, що містить .vbp та його файли — .bas, .cls, .frm —
записані в ANSI, як їх очікує IDE. Панель повідомляє кількість файлів і розмір перед
завантаженням.
Прочитайте нотатки, перш ніж відкривати проєкт
Студія показує «Що не вдалося відбудувати», з причиною для кожного запису. Деякі відомості — зовнішні посилання, параметри компіляції, режим запуску — не містяться в жодній структурі бінарника: їх не стерто, їх там ніколи не було. Тож про них повідомляється, а не вигадується.
В IDE, якщо бракує посилання, додайте його через Project ▸ References. Можливі маркери ? треба
обробити вручну.
Далі панель пропонує проаналізувати інший двійковий файл: сеанс починається з нуля, а попередній файл стирається.
10. Online чи Desktop?
Обидві редакції поділяють той самий рушій і видають той самий код. Вони не служать тому самому використанню.
| Online | Desktop | |
|---|---|---|
| Встановлення | жодного | MSI, Windows 10+ |
| Системи | усі | Windows 10 і 11 |
| Мови інтерфейсу | 11 | 3 |
| Дерево, символи, пошук, перейменування | ✔ | ✔ |
| Сім подань | ✔ | ✔ |
| Графи викликів і потоку | ✔ | ✔ |
| Експорт проєкту | ✔ (zip) | ✔ (тека) |
| Анотоване шістнадцяткове подання | ✘ | ✔ |
| Ресурси: перелік і вміст | ✔ | ✔ |
| Ресурси: видобування у файл | ✘ | ✔ |
| Намальований конструктор, експорт зображення | ✘ (розділ лише текстом) | ✔ |
| Бінарні патчі | ✘ | ✔ |
| Перехресні посилання | ✘ | ✔ |
| Object Browser, API Browser | ✘ | ✔ |
| Закладки, параметри відображення | ✘ | ✔ |
| Робота переживає сеанс | ✘ | ✔ |
| Оплата | кредити | підписка |
Коротко — Online, щоб відкрити бінарник, зрозуміти, що він робить, і піти з вихідним кодом. Desktop, щоб працювати з бінарником довго: байти, ресурси, перехресні посилання, патчі, і робота, яка не зникає, коли закриваєш вкладку.
11. Часті запитання
Чи зберігається мій бінарник? Ні. Він аналізується, а потім стирається разом із вашим сеансом. Див. розділ 3.
Мій файл більший за 64 МБ. Це обмеження студії, оголошене перед завантаженням. Для більшого бінарника редакція Desktop не має цього обмеження на завантаження.
Де ресурси бінарника? На вкладці Ресурси, ліворуч — без ліцензії. Там ви бачите кожен запис з його типом і розміром, а його вміст — коли відкриваєте: зображення малюється, текст показується, а решта показується байтами, а не приховується. Видобування у файл натомість властиве редакції Desktop, як і шістнадцяткове подання.
Чому код обривається посеред процедури? Це попередній перегляд: без ліцензії безкоштовна редакція показує структуру, назви та повне дизасемблювання, але відновлене тіло потребує ліцензії.
Я закрив вкладку і все втратив. Робота не переживає сеанс. Завантажте архів, перш ніж піти; бінарник же й досі на вашій машині.
Чи перекомпілюється експортований код як є? Часто: на стенді зі 149 проєктів 121 перекомпілюється без правок. Решта потребують додати посилання або обробити кілька маркерів.
Мій виконуваний файл стиснено (packer). Його треба спершу розпакувати, інакше структури VB6 не видно у файлі.
Чи це законно? Це залежить від вашої юрисдикції та ваших прав на бінарник — у цьому сенс декларації, яку позначають під час завантаження. Передбачене використання — відновлення вашого власного коду або коду, на який ви маєте права чи дозвіл.
Див. також
Посібник VBReFormer DesktopСпробувати без покупки