دراسة الأدوات المستخدمة في حماية البرامج ومكافحة القرصنة Cracking & Anti Crack

عام 0 geek4arab
Spread the love
الكاتب: JAAScois
تاريخ النشر: 19/02/2006 م
مجال أمن البرامج ومكافحه القرصنه مجال كبير ومتقدم جداً ويعتبر إختصاص نادر في عالم البرمجة
لأنه يتطلب خبرات شامله في أكثر من تخصص بالإضافه إلى انه يعتمد لغه الآله أساس بناء البرامج
في هذا الموضوع سنأخذ مفهوم أمن البرامج ومفهوم كسر البرامج بالإضافه إلى أدوات وبرامج الطرفين
القصه طويله وتحتاج تركيز وخبره لفهم الموضوع.

البدايه :- مترجمات لغات البرمجه ( مجموعة لغات عاليه المستوى والناتج لغه الآله )
سنبدأ بالإجابه على اول سؤال, وهو لماذا تم إختيار لغه الآله في مجال Cracking ?
جواب هذا السؤال بسيط. لوكنت مبرمج لغه سي وأردت كتابه آله حاسبه مثلاً.
بعد كتابه الكود و الإنتهاء منه إضغط على أمر ترجمه في لغه السي وسينتج ملف نهائي exe
ولو كنت تستخدم اي مترجم في العالم لإنتاج البرامج مثل دلفي اوفيجول بيسك وكتبت آله حاسبه
سينتج في النهايه ملف exe كل لغات البرمجه وعلى إختلاف كلماتها وطرقها تنتج في النهايه ملف
تنفيذي واحد بلغه الآله هذا الملف الناتج هو الذي يتم توزيعه للإستخدام. لهذا يتم إستخدام لغه الآله
في الكراكنج او الهندسه العكسية وهي إعادة الملف النهائي من لغه آله 1و0 إلى لغه إسمبلي
ليسهل التغيير والتعديل عليه إما بكسر حماية اوتغيير مصادرة مثل الصور والايقونات او اللغه

وسنأخذ مثال على الهندسه العكسيه ,, هذا المثال بلغه السي عباره عن إظهار مسج للمستخدم

#include<windows.h>
int main(int argc, char* argv[])
{
MessageBox(NULL,”C,C++ To ASM”,NULL,MB_OK);
return 0;
}

إكتب الكود وترجمه إلى ملف exe وقم بتوزيعه ,, أغلب المبرمجين يعتقدون أن الملف التنفيذي
النهائي لايمكن الإطلاع على الشفره المصدريه له ولا يمكن التغيير فيها ولا يمكن معرفه ماكتبت
وهذه إعتقادات خاطئة ؟ لانه يمكنك بإستخدام اي برنامج ديسمبلي الإطلاع على الكود وتغييره
وهذه هي الطريقه بإستخادم برنامج olly ,, لاحظ من خلال olly سأقوم بإختيار الملف النهائي exe
الذي قمنا بترجمته ولاحظ النتيجه مشابهه لماكتبنا في الكود المصدري

إستطعنا معرفه الداله MessageBox بكل البارمترات الممرره لها وعرفنا البيانات التي سيظهرها المسج
هذا مايعرف Disassembler او فك التجميع ,, بمعى ان اول عمليه للكراكنج هي ديسمبلي
وأدواتهم كثيره مثل olly او W32Dasm وHIEW وغيرها…
http://www.exetools.com/files/disassemblers/wdasm89.zip
http://www.exetools.com/files/hex-editors/hiew611.zip

ليس هذا فقط بل يستطيع معرفه اللغه التي
كتب بها البرنامج والمترجم ايضاً بإستخدام مجموعه أخرى من برامج الكراكنج وتسمى File Analysis
لاحظ ترجمت البرنامج السابق بإستخدام الفيجول سي6 ولاحظ نتيج احد برامج تحليل الملفات وإسمه PEiD v0.94
موقع البرنامج http://peid.has.it لاحظ النتيجه 100% صحيحه

أعتقد انك بدأت تفهم انه مافي شيء إسمه مخفي في البرامج التنفيذية
المهم توجد برامج كثيره للFile Analysis مثل
Language2000
http://farrokhi.net/language
و
file insPEctor
http://www.fileinspector.cjb.net

وبعد أن عرفنا كود البرنامج واللغه المكتوب بها يمكن أحد يسأل عن المصادر والأيقونات والصور
هذا النوع من الأدوات معروف ويستخدم في ترجمه البرامج الأجنبيه يسمى unResource
طبعا مثالنا لايوجد به اي مصدر ولذلك سأقوم بإختيار برنامج الماسنجر في المثال
هذه الطريقه بإستخدام برنامج ResHacker

برنامج ResHacker
http://www.angusj.com/resourcehacker
و يوجد برنامج آخر هو EXESCOPE
http://hp.vector.co.jp/authors/VA003525/eXeSc641.zip


كما توجد برامج الإختبار الديبغر Debuggers وهي أساس الكراكنج وإكتشاف الثغرات في الوندوز
تعمل برامج الإختبار على تتبع الملفات التنفيذية خطوة بخطوة من خلال تعليمات لغه الإسمبلي
ويستطيع مبرمج الإسمبلي في هذه المرحله التحكم والسيطره على البرنامج بكل تفاصيله

وتنقسم برامج الإختبار إلى قسمين الأول يسمى user mode وهي التي تعمل على مستوى المستخدم
منها Olly للنظام وندوز و IDA pro للنظام وندوز ولينكس
http://www.ollydbg.de
http://www.datarescue.com/idabase

والنوع الثاني تسمى kernel mode وهي التي تعمل في مستوى نواة النظام لإختبار الدرايفر وسواقات الاجهزة
مثل Soft ICE وبرامج windbg او Microsoft Debugging Tools for Windows

Mainframe Software Solutions


http://www.microsoft.com/whdc/DevTools/Debugging

كما يوجد gdb لأنظمة اليونكس وانظمة سيمبيان للجوال
http://www.gnu.org/manual/gdb-4.17/html_mono/gdb.html
http://www.newlc.com/article.php3?id_article=168

وتوجد برامج PE للتحكم والتعديل في ترويسة الملف التنفيذي
مثل التعديل في عنوان بداية التشغيل و عنوان قسم البيانات او الكود ومعلومات اخرى

من هذه البرامج LordPE و ProcDump32
http://scifi.pages.at/yoda9k/LordPE/LPE-DLX.ZIP

وبعد ان ينتهي التعديل في البرنامج وكسر حمايته يتم صناعة الباتش او Crack
المختصين في هذا المجال وفرو كل التسهيلات لإنتاج ملف الباتش
من برامج إنتاج الباتش CodeFusion
http://www.softpedia.com/get/Programming/Patchers/CodeFusion.shtml

وبرنامج PatchFX
http://www.hnc3k.com/filez/PatchFX%20v1.30.rar

 

ثانياً:- طرق وأساليب الحماية
بعد أن شاهدنا لمحه بسيطه عن أساليب وأدوات كسر حمايه البرامج خلونا نأخذ فكره
على الجانب الآخر الأمن,, بنفس الطرق والأدوات ولكن العكس وكل الأساليب في مستوى لغه الآله

1- أساليب ضغط البرامج وتشفيرها packers & compressors
اول أسلوب متبع في الحمايه هو إستخدام برامج الضغط والتشفير منها
UPX و Aspack
http://www.exetools.com/files/compressors/upx/upx120d.zip
http://www.exetools.com/files/compressors/win/aspack212.zip

هذه البرامج تعمل على تشفير البرنامج وإنتاج ملف بأكواد غير قياسيه
لا تفهمها برامج فك التجميع Disassembler ولا تستطيع فك أكواد برنامجنا
بعطيك مثال , اكيد تذكر اول صورة في هذا الموضوع وهي طريقة إظهار كود البرنامج
إستطعنا إظهار داله المسج بكل تفاصيلها ؟؟ لاحظ نفس الصورة ولكن بعد ان شفرنا البرنامج
لم يستطع برنامج olly معرفه الكود


ولكن هذه الطريقه ليس صعب على Cracking فكها لأنه عندما يظهر برنامج تشفير عالمي جديد
تقوم كل مواقع الكراك بالبحث 24 ساعه لين ماينتجوا برنامج يفك التشفير الجديد
وبصراحه لم اسمع عن برنامج عالمي للتشفير لم ينتج له فك تشفير

الطريقه الثانيه:- إضافه برامج مقاومة للكراكنج أمثال
EXECryptor
yoda’s Protector

http://www.strongbit.com
http://yodap.cjb.net

طرق المقاومة كثيرة وقد تختلف قدراتها في امور منها
1- مقاومة برامج الديبغر olly و soft-ic
بمجرد حمايه برنامج فإن الكراكنج سيواجه مقاومه شرسه , لن يستطيع تشغيل olly في
جهازة ولن يستطيع تشغيل اي برنامج إختبار واذا حاول اكثر من مره سيتم إغلاق الجهاز

2- مقاومة برامج التتبع مثل FileMon و RegMon…

3- مقاومة فك التجميع + التغيير في المصادر

4- مقاومة توقيع البرنامج بالبايت ,, بمعنى لن تستطيع تغيير بايت واحد وإذا تم التغيير
لن يعمل البرنامج وسيظهر رساله تخبرك بوجود فايروس في جهازك غير خصائص الملف

وتوجد مقاومة لنقاط توقف الهاردوير و غيرها..


وهذة الطرق ايضاً لم تسلم من الكراكنج فتم إصدار أدوات مثل hide olly و Anti Anti hardware breakpoint وغيرها

وفي النهايه أعتقد أن الحرب مستمره وطرق الحماية تتطور وطرق Cracking تتطور أكثر
فأصبحت المسأله في النهايه مسأله وقت ,, بمعنى أن أفضل طرق الحمايه هي

1- إصدار تشفير خاص لبرامجك غير موزع على النت ,, هذه الطريقة ستجعل Cracking
يشتغل أشهر لدراسه نوع التشفير ومن ثم فك التشفير وبعد ذلك كسر الحماية
يعني بتوزع الإصدار الثاني لبرنامجك والكراكنج بعده ماخلص من الأول

2- لا تشفر البرنامج ولا شيء فقط إتبع سياسيه معقده في بناء الكود ,, يعني كتابه كود للحماية بدون إستخدام
اي داله برمجيه عباره عن أكواد إسمبلي بدورات لا نهائية تقوم بإستخدام آلاف الدورات لتحليل رقم التسجيل
وبهذا ستستغرق عمليه صناعه الكراك اشهر ايضا ,, وهذا ما قصدته بمسأله الوقت

3- هذي النقطه محتاجه رأس مال يعني مو اي شركه تقدر تستخدمها وهي الحماية عن طريق الهاردوير او الدونجل dongle


وفي النهايه نكون قد أخذنا فكرة بسيطة عن أمن وحماية برامج الوندوز ومكافحة القرصنة Cracking & Anti Crack
وإلى اللقاء في مواضيع أخرى مفصلة ,,,

الكاتب geek4arab

geek4arab

مواضيع متعلقة

التعليقات مغلقة