[align=right]الكراك عالم ملىء بالإثارة والمتعة وسوف تجدون هنا ولأول مرة كل ما يخص الكراك إن شاء الله
أولا : ما هو الكراك
الكراك هو كسر الحماية سواء كانت هذه الحماية على البرامج أو الألعاب أو المواقع وتنقسم الحماية إلى خمس أنواع :-
النوع الأول:- Time Trial Check وهذه توجد في البرامج التجريبية التي تحتاج إلى شراء بعد إنتهاء مدتها وغالباً تكون هذه المدة
30 يوم.
النوع الثاني:- Function Disabled Check وهذه الحماية تعمل على عدم قابلية الوظائف المهمة فى البرنامج مثل Save أو Print
أو بعض الوظائف الأخرى المهمة.
النوع الثالث:- Hardware Key Check عن طريق شيء أسمة dongle وما هو الdongle هو عبارة عن مزيج من حماية
الSoftware والHardware وقد تكون هذه الحماية عن طريق سدادة صغيرة توصل عادة إلى Parallel Port أو إلى Serial
Devices والدليل على أن البرنامج محمى عن طريق الdongle هو وجود هذا الملف sentinel.vxd ولابد من الإنتباة إلى هذه
الملاحظات:-
1- تذكر أن البرامج ما هي إلا عبارة عن Software وله علاقة بالHardware وقد يطلب الSoftware في بعض الأحيان الإجابة من
الHardware عند هذا الجزء قف ولابد من فهم دروس كثيرة لكسر حماية البرامج عن طريق الdongle.
2- غالبا ما تكون تطبيقات الdongle ضعيفة وذلك عند وضع المبرمج هذه الحماية على برامجه تكون واضحة تحت Disassembly
وبذلك يكون كسر حمايتها سهل.
3- بعض الحماية عن طريق الdongle تحاول أن تشوشك برموز الرياضيات المعقدة التي هي في الحقيقة بسيطة جداًً فى برنامج
الSoftice لأن الSoftice يستطيع عمل إختبار علي البرنامج حتي النهاية ومعرفة مكان الحماية في البرنامج.
4- لا تيئس من الdongle عندما يعقدك في كسرة لأن بعض البرامج لا يمكن أن تستطيع كسر حمايتها لأنها تحتاج فعلاًً الdongle
وبدون هذا الdongle تكون كسر حماية البرامج صعبة ولكن مع الكراكر المحترف لا شيء يكون صعب.
النوع الرابع:- CD-Rom Check وهذه الحماية توجد في الألعاب وهى عبارة عن حماية تجبرك على شراء الإسطوانة وعند لعب
اللعبة لابد من أن تدخل الإسطوانة فى الCD-Rom وليست هذه الحماية صعبة ولكنها تحتاج بعض التفكير والوقت.
النوع الخامس:- في هذا النوع توجد طرق حماية كثيرة مثل الحماية علي الإسطوانة من النسخ أو ظهور الشاشة المزعجة في كثير من البرامج ويطلق عليها (Nag Screen).
ثانيا : شرح دروس الكراك
1- الدرس الأول : مدخل إلى الأسمبلى
يعتبر المعالج أهم جزء في جهاز الكمبيوتر وتنتج هذه المعالجات أكثر من شركة وكل شركة تضع معالجاتها في عائلة وتعطيها اسم فمثلا هناك شركة "موتوريلا" التي تنتج معالجات (processors) وتعطيها الاسم "موتوريلا" وبالمثل توجد شركة "انتل" وتنتج معالجات باسم انتل وأجهزة IBM تقوم على معالجات شركة انتل وقد بدأت شركة انتل منتجاتها ابتداء من المعالج رقم 8088 وكان الجهاز الذي يبنى على هذا المعالج يسمى XT ثم انتجت الشركة المعالج 80286 ثم 80386 ثم المعالج 80486 وأخيرا المعالج
80586 وعلى هذه المعالجات قامت أجهزة IBM والأجهزة المتوافقة معها وجميع المعالجات تتفق في التركيب العام وتشمل المعالجات في داخلها على أجزاء دقيقة تسمى السّجلات (registers)
فما هي السّجلات , وما هي الحاجة لمعرفة هذه السّجلات , وما هي السّجلات العامة للمعالج ؟
السّجلات : هي وحدات ذاكرة من نوع خاص تشبه عناصر الذاكرة وتستخدم لتخزين البيانات وهي التي يتم فيها إجراء العمليات الحسابية وإرسال المعلومات إلى الذاكرة أو استقبال البيانات منها. معرفة هذه السّجلات ضرورية لأن استدعاء روتينات الذاكرة ROM يتم من خلالها وتوضع فيها معاملات الروتينات وكذلك نتائج العمليات.
ما هي السّجلات العامة للمعالج intel ؟
ينقسم المعالج إلى مجموعات من السّجلات من هذه المجموعات مجموعة تسمى السّجلات العامة وهى التي تهمنا من وجهة نظر البرمجة وتأخذ الأسماء AX,BX,CX,DX وهذه السّجلات كما أشرنا هي وحدات ذاكرة من نوع خاص سعة التخزين الطبيعية لها 16بت وتقسم هذه السّجلات إلى 8 بت. السجل AX ينقسم إلى AH يسمى (HIGH) وAL يسمى (LOW) وهكذا BX,CX,DX كما في الشكل التالي :-
وقد تكون سعة التخزين لها 32 بت وفي الحالة سوف نضيف حرف (E) في الأمام فمثلا AX ستصبح EAX ونحن نتعامل في هذه الذواكر وبذلك نكون قد انتهينا من التعريف بلغة الأسمبلي.
مدخل إلى أوامر الأسمبلى
يوجد كثير من أوامر الأسمبلى ولكن سنستخدم نحن عشرين أمر تقريباً ومعظم إستخدماتنا سوف تقوم على هذه الأوامر ومعظم الأوامر تتكون من ثلاثة أحرف كهذا المثال :-
mov ax,10 ; put 10 into ax
mov bx,20 ; put 20 into bx
mov cx,30 ; put 30 into cx
mov dx,40 ; put 40 into dx
ملاحظة : أي شيء بعد الفاصلة يعتبر تعليق.
وهناك Push وPop أمرين لإستخدام الكومة , والكومة هي عبارة مساحة من الذاكرة نستطيع أن نخزن ونسترجع القيم منها. وإليك شرح هذين الأمرين
Push: وضع جزء من البيانات على القمة من الكومة
Push data
Pop: وضع جزء البيانات من قمة الكومة في سجل محدد أو متغير
pop register (or variable)
وهذا مثال على هذه الأكواد
push cx ; put cx on the stack
push ax ; put ax on the stack
pop cx ; put value from stack into cx
pop ax ; put value from stack into ax
وهناك بعض أوامر الأسمبلى التي يجب أن نعرفها قبل أن نبدأ بفهم الأسمبلى أو كتابة برامج الأسمبلى.
MOV : نقل قيمة من مكان إلى آخر
MOV destination, source
مثال على ذلك
mov ax,10 ; moves an immediate value into ax
mov bx,cx ; moves value from cx into bx
INT: نداء للدوس أو وظيفة للنظام الأساسي لإدخال وإخراج البيانات من الكومبيوتر وهو يمثل روتين
INT interrupt number
مثال على ذلك
int 21h ; Calls DOS service
int 10h ; Calls the Video BIOS interrupt
شرح معنى الInterrupt :-
تأخذ الروتينات الموجودة في الذاكرة شكل برامج كل برنامج يحتوى على مجمموعة دوال تؤدى عمل تقارب كلها تدور حول خدمات معينة وكل برنامج يسمى interrupt وكل interrupt مخصص لموضوع معين فمثلاً تجد interrupt مسئول عن خدمات الشاشة (Video interrupt) وتختص جميع دواله بهذا الموضوع فنجد به دوال تغيير الألوان ودوال التعامل مع المؤشر وهكذا ومثال آخروهو interrupt القرص (disk interrupt) ويحتوى على دوال لجميع الوظائف المتعلقة بالاسطوانة مثل كيفية تحديد حالة القرص
سليمة أم لا وكيفية الكتابة في أي مكان عليها وكثير من الخدمات التي لا يمكن أن تؤدى إلا بهذه الروتينات وكل interrupt له رقم بالنظام السادس عشر (HEX) فمثلا video interrupt رقمة 10 بالنظام السادس عشر كما في المثال السابق.
ADD destination, value إضافة القيمة إلى الهدف
MOV AX, 10h ; AX is now 10h
ADD AX, 10h ; AX is now 20h
ADD AX, 5h ; AX is now 25h
SUB destination, value طرح شيء ما من القيمة المخزنة في الهدف
MOV AX, 10h ; AX is now 10h
SUB AX, 2h ; AX is now 8h
INC destination (زيادة شيء ما (سّجل أو متغير أو أي شيء
MOV AX, 10h ; AX is 10h
INC AX ; AX is now 11h
DEC destination, (نقصان شيء ما (سّجل أو متغير أو أي شيء
MOV AX, 10h ; AX is 10h
DEC AX ; AX is now Fh
CMP destination, source مقارنة بين المصدر والهدف
MOV AX, 10h ; AX is 10h
MOV BX, 11h ; BX is 11h
CMP AX, BX ; compares AX with BX
Test destination, source يجرى إختبار بين المصدر والهدف
JMP location القفز إلى مكان آخر في الكود
JMP 200h ; the program would here jump to offset 200h
CALL procedure إجراء النداءات وبعد إنتهاء الإجراءات تكرار نفس الإجراءات
CALL 4020 ; jumps to the offset 4020 and continues the execution there untill it reaches a Ret
;then it continues on the next line.
NOP(no operation) لا يحدث شيء عند كتابة هذا الكود وقيمتها 90
كل هذه الأوامر السابقة لابد أن نفهمها جيداً حتى تُسهل علينا عملية الكراك وبذلك نكون قد إنتهينا من معرفة بعض أاومر الأسمبلى.
الدرس الثاني :
سوف نرى هنا أوامر القفز التي سوف نبنى عليها إستخدامتنا في معظم البرامج :-
هذه هي أوامر القفز ولكن في عدد الذواكر 8 بت
77 JA Jump short if above
73 JAE Jump short if above or equal
72 JB Jump short if below
76 JBE Jump short if below or equal
74 JE Jump short if equal
7F JG Jump short if greater
7D JGE Jump short if greater or equal
7C JL Jump short if less
7E JLE Jump short if less or equal
70 JO Jump short if overflow
74 JZ Jump short if zero
أوامر القفز التالية هي عكس الأوامر السابقة
76 JNA Jump short if not above
72 JNAE Jump short if not above or equal 73 JNB Jump near if not below
77 JNBE Jump near if not below or equal
75 JNE Jump short if not equal
7E JNG Jump short if not greater
7C JNGE Jump short if not greater or equal
7D JNL Jump short if not less
7F JNLE Jump short if not less or equal
71 JNO Jump short if not overflow
75 JNZ Jump short if not zero
ــــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــــــــــــــــــ
يتبع أنشاء الله [/align]