PEiD الخطوة الأولى في الهندسة العكسية (فك ضغط البرامج)
كتب بتاريخ: Mar 27th, 2008 | بواسطة: عبدالمهيمن

في موضوع سابق كتبته في المدونة الـ Reverse Engineering وأدواتها Ultimate Crackers Kit v3.2 وضحت فيه مفهوم الهندسة العكسية بالاضافة لمجموعة ضخمة من الأدوات التي قد يحتاجها أي شخص يريد الدخول في هذا العالم ولكن من المؤكد أن الأدوات وحدها لاتكفي فما فائدتها اذا كنا لانعلم وظيفة هذه الأدوات أو طريقة استخدامها! و بعد أن شاهدت اهتمام الزوار بهذه النوعية من المواضيع قررت أن أكمل هذا الطريق وأبدا بكتابة سلسة بسيطة تشرح طرق تحليل البرامج ومعرفة محتوياتها وحتى التعديل عليها وتعريبها وكما وضحت في الموضوع السابق بأني لن أشرح طرق كسر البرامج وفك حمايتها أو كتابة شروحات عن كيفية صناعة الكراك لأسباب تم توضيحها.
قبل أن نبدأ بأي شيء أريد أن أعلمكم أني لست خبير بشكل كبير في هذا المجال لأني لم أهتم به كثيرا لعدم تفرغي والطرق والشروحات الموجودة هنا مبنية على الاستنتاج و التجربة الشخصية وطبعا كلنا بشر و لايوجد أحد لايخطئ فان وجد أي خطأ أو تعبير غير صحيح الرجاء اعلامي به ليتم تصحيحه. و ان وجدت المزيد من الاقبال على هذه المواضيع سأضع مصادر و كتب للأشخاص الذين يريدون التوسع به ليكملوا طريقهم بأنفسهم.
ان أول خطوة نبدأ بها عندما نريد عمل هندسة عكسية لبرنامج ما, هي معرفة اذا كان البرنامج مضغوط أو مشفر بأحد البرامج المخصصة لهذه المهمة فان الكثير من البرامج يتم ضغطها وتشفيرها بعد أن تبرمج باستخدام أدوات وبرامج كثيرها هدفها تصغير حجم البرنامج وجعل عملية الهندسة العكسية أصعب حيث يوجد أكثر من نوع للتشفير مثل FSG, UPX, MEW, ASPack وغيرهم الكثير ولكل نوع من هذه الأنواع برنامجها الخاص للتشفير وفك التشفير ولكن المجموعة التي وضعتها في الموضوع السابق سهلت علينا المهمة فهي تشمل أغلب الأدوات والبرامج التي سنحتاجها في الهندسة العكسية, أما الذي لم يحمل المجموعة فقد وضعت روابط الأدوات المستخدمة في الشرح بنهاية الموضوع وحتى لو حملت المجموعة الموجودة في الموضوع السابق يفضل التأكد دائما وتحميل آخر اصدار من البرامج لأن اصدارات البرامج الموجودة في المجموعة قد تكون قديمة بعض الشيء ويجب أن تحدث بعضها
الأن بعد هذه المقدمة الطويلة نبدأ بالتطبيق العملي وأول برنامج سنستعمله هو برنامج PEiD وهو برنامج معروف يستخدم لمعرفة نوع الضغط أو التشفير الذي تم استعماله على البرنامج وان لم يكن البرنامج الذي يتم فحصه مضغوط سيظهر لنا لغة البرمجة التي تم بواسطتها برمجة البرنامج وهي معلومة مهمة جدا في عملنا ولبرنامج PEiD الكثير من الاستخدامات والاضافات الأخرى التي تستطيع أن تحملها من موقعه وهو موجود بالمجموعتين ولكن بالاصدار 0.93 وآخر اصدار هو 0.94 لذلك يفضل تحميل الاصدار الأخير من موقعه لأنه من المؤكد أن الاصدار الأحدث يحوي اصلاحات وتطويرات جديدة تميزه عن الاصدارالسابق
طريقة استخدامه سهلة للغاية فبمجرد تحديد البرنامج بالضغط على الثلاث نقاط سيظهر لك نوعية التشفير أو لغة البرمجة المستخدمة وعلى سبيل المثال برنامج WinRAR مبرمج باستعمال Borland C++ 1999

أما برنامج الـ QuickTime فقد تمت برمجته باستعمال Microsoft Visual C++ 7.0

وبالمقابل فهو يظهر لنا أن برنامج Opera تم ضغطه باستعمال ASPack 2.12

هذا يعني أن في برنامج WinRAR و QuickTime يمكننا أن نبدأ عملنا في الهندسة العكسية مباشرة أما في برنامج Opera فاننا سنحتاج لفك ضغطه قبل القيام بأي شيء لذلك نبحث في مجموعتنا عن برنامج لفك تشفير ASPack وان لم تجده فـ Google كفيل بهذه المهمة ويوجد برنامج لفك ضغط ASPack في مجموعتنا اسمه AspackDie ويمكن أن تجدوا غيره كل ماعليكم هو البحث وطبعا يجب مراعاة الاصدار فلا تكفي كلمة ASPack لوحدها فعند القيام بالبحث يجب مراعاة الاصدار الذي هو 2.12 في مثالنا, استخدام البرنامج عادي ولايحتاج لشرح كل ماعليك هو اختيار البرنامج الذي تريد فك ضغطه وهو سيتكفل بالمهمة وستلاحظ ازدياد في حجم البرنامج بعد فك ضغطه واذا فحصته هذه المرة في برنامج PEiD سيظهر لك لغة البرمجة التي هي Microsoft Visual C++ 6.0

سأكمل الموضوع في الأيام القادمة ان شاء الله وسنبدأ بالتطبيق العملي
موقع أداة PEiD | تحميل الاصدار 0.94 | الحجم: 340 KB
موقع أداة ASPackDie | تحميل الاصدار 1.41 | الحجم: 12 KB
الرجاء عدم نقل الموضوع بدون ذكر المصدر!
دمتم بود.. أخوكم Br4v3-H34r7.













مبدع <<<< قليلة فيك
تسلم أخوي على كلامك والي حأعتبره مجاملة.. ان شاء الله تكون استفدت وهلا فيك بالمدونة
يــا ســلاآآم عليك يا مبــدع يالقـلب الشـجاع
دائمــا مبدع و بتظــل مبدع

B3s7 r3G4rDs
هلا فيك أخوي Dr.FoX ماشاء الله دائما منور المدونة بوجودك ان شاء الله يكون الموضوع نال اعجابك وانتظر الشرح الي بعده لأنه حيكون هو أساس كل شيء
nice job Mr.C sharp
بارك الله فيك عبدو

أهلا أمين ان شاء الله يكون الموضوع نال اعجابك
Welcome Mr.C++
يعطيك الف عافيه
السلام عليكم
لمن يريد الافادة و الاستفادة و هو :

مشكور عل افادة
يوجد منتدي عربي جميل
http://www.AT4RE.com
و هو منتدى AT4RE اي [A]rab [T]eam 4 [R]everse [E]ngineering
الفريق العربي للهندسة العكسية
و شكرا
@DeStRoOoY: الله يعافيك أخي…
@zEaK47: أهلا بك أخي شكرا على ذكر موقع AT4RE فهو مفيد جدا و متخصص بهذه الأمور و صناعة الكراك و طبعا شروحاته احترافية أكثر من هذا
تركز على لغة ASM و استخدام الـ Debuggers مثل برنامج OllyDbg و IDA…
الله يعطيك الف عافية اخوي انا استفاديت من مواضيعك كثير مشكور اخي …..
جزاك الله كل خير
منتظر جديدكـ
السلام عليكم ورحمة الله تعالى وبركاته.
موضوع جميل ومفيد لمن يريد البدأ في هذا العالم الشيق.
اردت ان اضيف بعض التعليقات فقط لكي تكون مشاركتي ايجابية.
في قضية التعرف على نوع لغة البرمجة او نوع التشفير لبرنامج معين بعتمد PiED على تواقيع مثله مثل برامج Anti-Virus ،يقوم PiED بمقارنة البيتات الأولى من نقطة الدخول مع بايتات موجودة في قاعدة البينات التي تدل بدورها على لغة البرمجة او Compiler او نوع التشفير.
أرجو ان تتقبل مداخلتي في الموضوع.
السلام عليكم
@SYRIAN: الله يعافيك أخي.. أسعدني كلامك وأتمنى أن تكون استفدت من المواضيع الأخرى أيضا وأهلا بك في المدونة.
@Mr.wagdy: أهلا بك.. شكرا على الدعوة الجميلة وان شاء الله سأحاول كتابة المزيد عن هذه النوعية من المواضيع.. قريبا
@DATA_SNIPER: وعليكم السلام أخي.. شكرا على الاضافة والمداخلة المفيدة, طبعا مرحب دائما بهذه النوعية من التعليقات ان كان هدفها الفائدة وتوضيح مزيد من الأمور للزوار
دمت بود…
شكرا لك و بارك الله فيك
نحن ننتضر الجديد بأحر من الجمر فأرجوك لا تطل علينا
مشكور يامعلم