دليل VBReFormer Online
دليل مستخدم VBReFormer Online: أفلِت ملفًا تنفيذيًا من VB6 في متصفحك، واستكشف كوده المُعاد بناؤه، ونزِّل مشروعًا يمكن فتحه من جديد في IDE.
حُدِّث في 20/9/202611 فصول
الاستوديو في متصفحك. تُفلِت ملفًا تنفيذيًا من Visual Basic 5 أو 6، وتستكشف كوده المُعاد بناؤه، وتنصرف بأرشيف يفتحه VB6 IDE من جديد. لا شيء يُثبَّت، وعلى أي نظام — بما في ذلك macOS وLinux وإصدارات Windows الأقدم من أن يعمل عليها تطبيق سطح المكتب.
ملاحظة حول الترجمة. واجهة الاستوديو متاحة بالعربية. يذكر هذا الدليل أسماء التبويبات والعروض والأزرار بالعربية كما تظهر في الاستوديو.
1. فتح الاستوديو
لا شيء يُثبَّت، ولا شيء يُضبط، ولا حساب يُنشأ للبدء: افتح عنوان الاستوديو في متصفح حديث، وها أنت هناك.
- أي نظام — لا يعتمد الاستوديو إلا على المتصفح. وهو السبيل الوحيد لاستخدام VBReFormer من جهاز Mac أو جهاز Linux أو Windows أقدم من 10.
- إحدى عشرة لغة — يُقدَّم الاستوديو عبر الإنترنت بإحدى عشرة لغة، أي نحو أربعة أضعاف ما يقدّمه تطبيق سطح المكتب. والمحدِّد في الترويسة.
- سمة فاتحة أو داكنة — يتبع الاستوديو إعداد نظامك، ويمكنك تجاوزه.
Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية
2. إفلات ملف ثنائي
- ضع علامة على الإقرار. يطلب منك الاستوديو أن تُقِرّ بأنك مالك البرنامج، أو أنك تملك الحق في تحليل كوده. إنه شرط استخدام، لا إجراء شكلي.
- أفلِت الملف. اسحبه إلى منطقة الإفلات، أو تصفَّح ملفاتك. الصيغ المقبولة:
.exeو.dllو.ocx. الحجم الأقصى: 64 MB — ويُعرض الحد على الشاشة بدلًا من اكتشافه بعد رفع فاشل. - دع التحليل يعمل. يسمّي الاستوديو كل مرحلة في حينها، مع عدّاد: جارٍ استقبال الملف → جارٍ تحليل الملف الثنائي → جارٍ التفكيك → جارٍ حصر الرموز → مخطَّط الاستدعاءات → مسار التنفيذ.
تتوقف المدة على حجم الملف الثنائي وطبيعته. وللاستئناس، ينتقل ملف تنفيذي بحجم 9.35 MB من الفتح إلى المشروع المكتوب في نحو اثنتي عشرة ثانية.
وبعد انتهاء التحليل، يخبرك الاستوديو أيضًا بنوع الملف الثنائي الذي وجده: شفرة أصلية، أو P-code، أو طبيعة غير محدَّدة.
3. ماذا يحدث لملفك
يُحلَّل الملف، ثم يُمحى مع جلستك. لا يُحتفَظ بشيء.
هذا مكتوب على صفحة الإفلات، وهو ما تفعله الخدمة فعلًا: يُعالَج ملفك الثنائي طوال مدة جلسة عملك، ويختفي معها. لا يُؤرشَف، ولا يُفهرَس، ولا يُعاد استخدامه.
ما يعنيه ذلك أيضًا. عملك لا يبقى بعد الجلسة هو الآخر. فإن أغلقت التبويب أو انتهت صلاحية الجلسة، عليك إفلات الملف الثنائي من جديد. نزِّل أرشيفك قبل أن تغادر. كما أن إعادة تشغيل الخدمة تقطع الجلسات الجارية — لا خطر على ملفك الأصلي، فهو على جهازك، لكنك ستفقد الاستكشاف الجاري.
إن كانت سرية ملفك الثنائي مسألة تعاقدية، فاعلم أن إصدار Desktop يعالج محليًا كل ما يُعدّ قراءة للملف — الصيغة، والبايتات، وفك التجميع، والموارد — ولا يرسل إلى الخدمة إلا ما يُعدّ إعادة بناء.
4. أربعة مداخل إلى ملف ثنائي
تقدّم اللوحة الجانبية أربع نقاط دخول، وهي تجيب عن أربعة أسئلة مختلفة.
| التبويب | السؤال الذي يجيب عنه |
|---|---|
| المشروع | «كيف يُنظَّم هذا البرنامج؟» — شجرة النماذج والفئات والوحدات وإجراءاتها، كما رآها VB6. |
| الرموز | «أين يُعرَّف هذا؟» — الحصر الكامل، مع نوع كل رمز وحاويته. وهو يميّز الأسماء المقروءة من الملف الثنائي من الأسماء التي اضطر إلى تركيبها، وهذا يخبرك فورًا بما يمكنك الاعتماد عليه. |
| البحث | «أين يظهر هذا النص؟» — في الكود المُعاد بناؤه وكذلك في أقسام المصمِّم. |
| الموارد | «ما الموجود هناك غير الكود؟» — الأيقونات، والمؤشرات، والصور النقطية، وجداول السلاسل النصية، ومعلومات الإصدار، مع نوعها وحجمها ومحتواها. تُقدَّم بلا ترخيص: فالمورد يُقرأ، لا يُعاد بناؤه. |
في الشجرة، يحمل كل عضو مستوى الظهور الذي يعلنه الملف الثنائي — Public وPrivate وFriend. أما العضو الذي تعذَّرت قراءة مستوى ظهوره فلا يحمل أي علامة على الإطلاق: فنحن لا نكتب ما لا نعرفه.
إعادة التسمية
يتيح لك الاستوديو عبر الإنترنت إعادة تسمية الرموز، وإعادة التسمية شاملة: فمواضع الاستدعاء في الوحدات الأخرى تتبعها. هذه هي الحركة المحورية عند العمل على ملف ثنائي — يعيد إليك مُفكِّك الشفرة المنطق، وتعيد إليه أنت الأسماء.
5. العروض
سبعة عروض، والاستوديو نفسه يبيّن، تحت كل منها، ما يعرضه وما إذا كان يتطلب ترخيصًا.
| العرض | ما يعرضه | الترخيص |
|---|---|---|
| المصدر | كود VB6 المُعاد بناؤه | معاينة بلا ترخيص |
| IR | ما يراه مُفكِّك الشفرة قبل أن يعيد بناء مسار التنفيذ | معاينة بلا ترخيص |
| التجميع | شفرة الآلة x86، مع الرموز المحلولة | يُقدَّم كاملًا |
| P-code | أوامر الآلة الافتراضية لـ VB6 | يُقدَّم كاملًا |
| المصمِّم | قسم المصمِّم الخاص بالنموذج | يُقدَّم كاملًا |
| المشروع | ملف .vbp المُعاد بناؤه |
يُقدَّم كاملًا |
| البنية | بنى الصيغة كما قُرئت | يُقدَّم كاملًا |
الخط الفاصل. ما يُقرأ من ملفك مجاني؛ وما يُعاد بناؤه يُباع. ففك التجميع، والبنية، وقسم المصمِّم، وملف
.vbpمأخوذة من جداول موجودة في ملفك التنفيذي نفسه. أما مصدر VB6 فلا وجود له في أي مكان — يجب إعادة بنائه، وذلك العمل هو المنتج.
تحت الكود، يعرض الاستوديو أيضًا ما يشير إليه المُفكِّك بخصوص الإجراء الحالي: التشخيصات، أي ما تعذَّر عليه فعله ولماذا. وهذا ما يجب اللجوء إليه كلما فاجأتك نتيجة ما.
6. ما تحتفظ به الترجمة البرمجية، وما تطرحه
يشرح هذا الفصل لماذا تخرج نماذجك مقروءة جدًا بينما تخرج وحدات .bas بأسماء تقنية. القاعدة بسيطة:
كل ما يحتاج إليه Visual Basic في وقت التشغيل، كتبه في الملف: وVBReFormer يجده من جديد. وكل ما لم يعد يحتاج إليه بعد الترجمة البرمجية، طرحه — ولا أحد يستطيع استعادته.
ما يبقى: أسماء النماذج والفئات والوحدات · أسماء عناصر التحكم · معالجات الأحداث · الأعضاء العامة للفئات · خصائص الواجهة · استدعاءات بيئة تشغيل VB (635 دالة) · واجهة Win32 API (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 |
متغير محلي أو معامل | اقرأ كيف يُستخدم، ثم أعد تسميته |
? |
قيمة لم تُثبَت | انظر إلى عرض التجميع في الموضع نفسه |
الملف الذي يحتوي على
?سيرفضه VB6 IDE. فالعلامة موجودة لتقرر أنت، لا لتُعاد ترجمتها كما هي. فالقيمة المعقولة الخاطئة هي أسوأ ما يمكن أن ينتجه مُفكِّك الشفرة.
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) | ✔ (مجلد) |
| الموارد: الحصر والمحتوى | ✔ | ✔ |
| الموارد: الاستخراج إلى ملف | ✘ | ✔ |
| العرض السداسي العشري المشروح | ✘ | ✔ |
| المصمِّم المرسوم، وتصدير الصورة | ✘ (القسم النصي فقط) | ✔ |
| الترقيع الثنائي | ✘ | ✔ |
| المراجع المتقاطعة | ✘ | ✔ |
| مستعرض الكائنات، ومستعرض Win32 API | ✘ | ✔ |
| الإشارات المرجعية، وخيارات العرض | ✘ | ✔ |
| بقاء العمل بعد الجلسة | ✘ | ✔ |
| الفوترة | أرصدة | اشتراك |
باختصار — Online لفتح ملف ثنائي وفهم ما يفعله والانصراف بالمصادر. وDesktop للعمل على ملف ثنائي لمدة طويلة: البايتات، والموارد، والمراجع المتقاطعة، والترقيعات، وعمل لا يتلاشى عند إغلاق التبويب.
11. الأسئلة الشائعة
هل يُحتفَظ بملفي الثنائي؟ لا. يُحلَّل، ثم يُمحى مع جلستك. انظر الفصل 3.
ملفي أكبر من 64 MB. هذا هو حد الاستوديو، ويُبيَّن قبل أن تُفلِت الملف. وللملف الثنائي الأكبر، لا يفرض إصدار Desktop أي قيد رفع من هذا النوع.
أين موارد الملف الثنائي؟ في تبويب الموارد في اللوحة الجانبية — بلا ترخيص. ترى كل مُدخل بنوعه وحجمه، ومحتواه عند فتحه: تُرسَم الصور، ويُعرض النص، وأي شيء آخر يُعرض على هيئة بايتات بدلًا من إخفائه. أما الاستخراج إلى ملف فخاص بإصدار Desktop، شأنه شأن العرض السداسي العشري.
لماذا يتوقف الكود في منتصف إجراء ما؟ هذه هي المعاينة: من دون ترخيص، يعرض الإصدار المجاني البنية والأسماء وفك التجميع كاملًا، أما المتن المُعاد بناؤه فيتطلب ترخيصًا.
أغلقت التبويب وفقدت كل شيء. العمل لا يبقى بعد الجلسة. نزِّل الأرشيف قبل أن تغادر؛ والملف الثنائي نفسه ما يزال على جهازك.
هل يُعاد ترجمة الكود المُصدَّر كما هو؟ غالبًا: على منصة اختبار من 149 مشروعًا، أُعيدت ترجمة 121 من دون أي تعديل. أما البقية فتحتاج إلى إضافة مرجع مفقود أو معالجة بضع علامات.
ملفي التنفيذي مضغوط بمُحزِّم. يجب فك ضغطه أولًا، وإلا فلن تكون بنى VB6 مرئية في الملف.
هل هذا قانوني؟ يتوقف ذلك على ولايتك القضائية وعلى حقوقك في الملف الثنائي — وهذا ما يدور حوله الإقرار عند الإفلات. فالاستخدام المقصود هو استعادة كودك أنت، أو كود تملك حقوقه أو مصرَّح لك بتحليله.
انظر أيضًا
دليل VBReFormer Desktopجرّب دون شراء