ارشيف شبكة و منتديات الهملة الشاملة  

العودة   ارشيف شبكة و منتديات الهملة الشاملة > المنتديات التقنية > منتدى البرامج والإنترنت

إضافة رد
 
أدوات الموضوع إبحث في الموضوع انواع عرض الموضوع
قديم 17-01-2005, 06:39 PM   #1
المجهول

مشرف منتدى الطلبة

 
الصورة الرمزية المجهول
 
تاريخ التسجيل: Jul 2004
المشاركات: 1,298
تعلم صناعة الكراك بنفسك!

السلام عليكم ورحمة الله وبركاته...

الدرس الأول:

1. فكرة سريعة عن الكراك:
الكراك في عالم الكراكرز (الكاسرون – مخترقوا حماية البرامج) هو ملف يقوم بكسر حماية برنامج أو لعبة. مثال على ذالك برنامج Download Accelerator والذي يعرفه الجميع بلا شك، يوجد له كراك Crack تمت برمجته عن طريق الكراكر Cracker من أجل:
1. التخلص من الوقت الزمني للبرامج التجريبية والتي لا يمكن استخدامها بعد انتهاء الفترة المحددة.
2. تسجيل البرامج التي تطالب بإسم مستخدم وكلمة مرور.
3. تسجيل البرامج التي تطالب بالرقم التسلسلي Serial Number.
4. التخلص من الشاشات المزعجة التي تظهر في البرامج لتذكيرك باقتراب انتهاء فترة تجربة البرنامج وضرورة التسجيل.
6. بعض الكراكت تقوم بإضافة قوائم وميزات وأوامر للبرامج و الألعاب.
5. للتخلص من رسالة الخطأ التي تظهرها بعض الألعاب التي تطالب بوجود سيدي اللعبة مع أن اللعبة لا تحتاج إلى سيدي لأن جميع الملفات الضرورية موجودة على القرص الصلب (Hard Disk) ، لكنها حركة برمجتها الشركة المنتجة للعبة لتضمن أنك قمت بشراء السيدي الأصلي للعبة أو أن السيدي غير مقرصن أو من هذا القبيل.

قمت بالفعل بشراء سيدي لعبة أصلي وكأن يطلب مني السيدي في كل مرة أريد أن ألعب اللعبة، لكني قمت بالتخلص من هذه الرسالة المزعجة بصناعة كراك للعبة!

و قمت مرة بتنزيل برنامج لتسجيل الصوت (نسيت اسمه) لكنه كان لا يسمح لي بحفظ الملف لأنه نسخة تجريبية، لكن أين المشكلة؟ قمت بصناعة كراك لإعادة تفعيل أمر حفظ الملف!

ملاحظة: هناك استخدامات عديدة أخرى للكراك في عالم الكراكرز لكني لن أتحدث عنها بسبب تعقيدها.

2. ما الذي أحتاجه كي أصبح كراكر:
أعتقد أن الفكرة وصلت، والآن حإن الوقت لنتعرف على الذي نحتاجه لنصبح كراكرز، يحتاج الكراكر إلى الصبر الطويل وبعض برامج الكراكينغ (والتي سأتحدث عنها قريباً) وإتقان على الأقل البرمجة بشكل بسيط في لغة الAssembly Language أو لغة التجميع والتي يعتبرها الكثيرون أقوى من لغة البرمجة ال C و ال C++ الغنية عن التعريف، والسبب يكمن في أن لغة الC هي إحدى لغات الHigh Level Language أو لغات البرمجة العليا والتي تقوم بمعالجة المعلومات التي يحتاجها التطبيق أو البرنامج ليعمل، ونادراً جداً ما تتطرق إلى البيوس والذاكرة وقطع الكومبيوتر.
أما لغة الAssembly Language فهي لغة من لغات الLow Level Language أو لغات البرمجة السفلة والتي تتطرق إلى البيوس والذاكرة وقطع الكومبيوتر وتأخذك في عالم الBinary أي لغة الآلة "0 و 1 " وتقوم بإطلاعك على ما يجري في الخفاء فتكون أنت المتحكم بكل شيء، لذا فهي من أكثر اللغات تعقيداً وروعة في الوقت ذاته!

قد تقول الآن لنفسك "وما أدراني أنا بلغة الAssembly المعقدة ولن أستطيع صناعة كراك"، لكن لا تخف فأنا معك حتى النهاية ولن تحتاج إلى إتقان هذه اللغة تمامًا في البداية!

3. فلنبدأ بالحديث عن أهم برامج الكراكينغ:
أشهر وأهم برامج الكراكينغ: Win32dasm, Hiew600, Softice

4. البرامج التي سوف نستخدمها:
البرامج التي سوف أقوم بشرح طريقة عملها واستخدامها في كسر حماية البرامج:
Win32dasm: برنامج رائع ومهم، يقوم بعدة عمليات مثل فك تجميع التطبيق أو البرنامج وعدة أمور أخرى. اسم البرنامج يرمز إلى Windows 32 Disassembler والذي يعني "مفكك تجميع تطبيقات ويندوز 32" والرقم 32 يرمز إلى تطبيقات ويندوز للبرامج المشفرة تحت بيئات ويندوز 98 وما يليه من إصدارات. وهناك برنامج مشابه وهو Win16dasm والذي يعمل تحت بيئة ويندوز 95 لكننا لن نحتاجه لأنه قديم.حمل البرنامج win32dasm بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار، وإن لم يعمل حمله بنفس الطريقة من هنا.

Hiew600: برنامج رائع وظيفته تشبه وظيفة البرنامج السابق لكنه يعمل تحت بيئة الDOS ومن إحدى ميزاته السماح للكراكر بتعديل شفرة التطبيق بطريقة برمجية وعرض الملف بصيغة ASCII أو Hex أو Assembly. اسم البرنامج يرمز إلى Hackers View أي وجهة نظر الهاكر! و الرقم 600 يدل على الإصدار السادس منه وليس الست مئة!
حمل البرنامج بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار. وإن لم يعمل حمله بنفس الطريقة من هنا.

Soft-Ice: برنامج مذهل ومن أشهر البرامج التي يستخدمها الكراكر ويساعد كثيراً جداً في كسر البرامج المحمية بكلمة سر أو سيريال، ويمكن القول أنه أفضل برنامج للكراكينغ! لن أقوم بوضع رابط التحميل له الآن لأننا لن نحتاجه في هذه الفترة، ولا أريد أن أعقدكم به من البداية! كما أن كل شيء في وقته حلو!

أصبحت متحمساً أليس كذالك؟! الموضوع شيّق ومفيد لذا أنصحكم بقراءة الموضوع لآخره!

5. كيف أتحسن في الكراكينغ:
سؤال مهم، نصيحتي لكم هي قراءة مواضيع كثيرة عن الكراكرز والكراكينغ، ومتابعة آخر أخبارهم وبرامجهم، وبما أن 95% من هذه المواضيع على الإنترنت هي باللغة الإنجليزية أنصحكم بتعلم هذه اللغة لمن لا يتقنها، والحمد أنا أتقن اللغة الإنجليزية تماماً لفظاً وكتابةً، تعلموا أيضاً بعضاً من لغة الAssembly فهي مهمة للكراكينغ. ويجب أن تصبروا كثيراً؛ فأنا قضيت فترة طويلة في تعلم البرمجة والكراكينغ حتى تقدمت فيهما مع أنني لم أصل إلى الإحتراف بعد، وأنا لا أقصد أن "أشوف حالي عليكم" لا والله، ولكني أقول لكم أن تصبروا وتتعلموا هذه الأمور أكثر وأكثر حتى تتقنوها!
المجهول غير متصل   رد مع اقتباس
قديم 17-01-2005, 06:40 PM   #2
المجهول

مشرف منتدى الطلبة

 
الصورة الرمزية المجهول
 
تاريخ التسجيل: Jul 2004
المشاركات: 1,298
6. شرح برنامج Win32dasm:
نتوكل على الله سبحانه وتعالى ونبدأ بشرح برنامج Win32dasm:


*سأشرح لكم أولاً وظائف القوائم:
Disassembler: قائمة لاختيار ملف لفك تجميعه (disassemble) وعرض شفرته أو حفظ مشروع (ملف) قد تم فكه، بالإضافة إلى تغيير خصائص الخط التي تظهر فيه الشفرة وطباعة الصفحة واختيار بعض خيارات التفكيك.
Project: قائمة لفتح مشروع لبرنامج كان قد تم تفكيكه سابقاً.
Debug: قائمة مهمة وتتضمن خيارات مهمة مثل اكتشاف ثغرة أمنية في برنامج لاستخدامها في صنع الكراك.
Search: قائمة للبحث عن نص معين ضمن شفرة البرنامج المفكك.
Goto: قائمة للإنتقال إلى مكان محدد في الشفرة.
Execute Text: قائمة لتحرير أو تشغيل السطر المحدد.
Functions: قائمة الوظائف وتعتبر مهمة.
HexData: قائمة لعرض الشفرة بلغة الهكس ديسيمال Hexadecimal أي نظام الست العشري في اللغة العربية والذي يميز بالحرف H وهي في عالم البرمجة والأسمبلي تعتبر من أشهر وأفضل أنظمة الرياضيات في تمثيل الشفرة والمعلومات المكتوبة بالBinary. و نظام الHexadecimal يستخدم ستة عشر Digit وهي: 0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,A ,B ,C ,D ,E ,F .
Refs: والتي ترمز إلى References وهي قائمة المراجع أو الإشارات وهي مهمة جداً وسوف نرى عملها في الدروس القادمة عندما نطبق العمل على البرامج الضحية إن شاء الله.
Help: قائمة المساعدة في البرنامج.
شريط الحالة: انظر أسفل الصورة إلى ذالك الشريط(Select a file...)،احفظ هذا الإسم جيداً لأنه مهم وسأستخدمه في الدروس القادمة.

*سأشرح لكم الآن وظائف الأزرار وكل زر وضعت تحته رقم لتسهيل تعريفه:
1. زر لفتح ملف (برنامج) كي تم تفكيكه.
2. زر لحفظ الشفرة للبرنامج المفكك بصيغة ASCII والتي ترمز إلى American Standard Code for Information Interchange والتي تعني بالعربية "الرموز الأمريكية القياسية لمبادلة المعلومات"، حيث أن كل حرف أو رمز في لوحة المفاتيح له رقم خاص به في الكومبيوتر أو الحاسب.
3. زر للبحث عن شيء معين في الشفرة.
4. زر لنسخ سطر تم تحديده في الشفرة.
5. زر للإنتقال إلى بداية الشفرة.
6. زر للإنتقال إلى نقطة بداية البرنامج.
7. زر للإنتقال إلى صفحة معينة.
8. زر للإنتقال إلى منطقة الكود الذي سيقوم المستخدم (أنت) بإدخاله.
9. زر لا يمكن استخدامه أو تفعيله إلا عند الوقوف على أمر قفز Jump واختصاره المستخدم له هو jmp وعندما تنقر عليه سيتم نقلك إلى مكان معين في الشفرة محدد بهذا الأمر. سأتحدث عن الأوامر قريباً.
10. زر لا يمكن استخدامه إلا بعد القفز إلى منطقة محددة في الشفرة باستخدام أمر القفز jmp وهذا الزر يقوم بالعودة بك إلى منطقة القفز.
11. زر لا يمكن استخدامه إلا عند الوقوف على أمر استدعاء Call وعند النقر عليه يتم استدعاء أمر آخر موجود على السطر المحدد بأمر الاستدعاء Call.
12. رز لا يمكن استخدامه إلا بعد استدعاء أمر من منطقة محددة في الشفرة باستخدام أمر Call وهذا الزر يعود بك إلى منطقة أمر الاستدعاء Call.
13. زر لاستدعاء قائمة الوظائف المستوردة Imported Functions أو المدخلة من نظام التشغيل إلى البرنامج.
14. زر لاستدعاء قائمة الوظائف المصدرة Exported Functions أو الخارجة من البرنامج إلى نظام التشغيل.
15. زر يتعلق بقائمة نظام الHexadecimal، ولا داعي لشرحه الآن.
16. زر وظيفته تشبه وظيفة الزر السابق تقريباً.
17. زر لعرض مراجع القوائم Menu References.
18. رز لعرض مراجع صناديق الحوار Dialog References.
19. زر لعرض مراجع صفوف المعطيات String Data References وهو مهم جداً.
20. رز لطباعة الشفرة.
21. شريط الحالة: ليس زراً، انظر أسفل الصورة إلى ذالك الشريط (Select a file...)، احفظ هذا الإسم جيداً لأنه مهم وسأستخدمه في الدروس القادمة.

7. شرح الأوامر:
الأوامر هي كلمات لتنفيذ أمر ما في البرنامج وتكون في الشفرة، وسوف نجدها عندما نفكك برنامج.
CALL:
هذا الأمر يقوم باستدعاء عنوان في الشفرة لتشغيل وظيفة ما موجودة في ذلك العنوان. مثال CALL 00401154: يقوم هذا الأمر بتنفيذ أمر ما موجود في السطر المحدد بالعنوان، وبعد الانتهاء من تنفيذ هذا الأمر فإن الشفرة تتابع بالسطر الذي يلي أمر الاستدعاء CALL 00401154 وليس بالسطر الذي يلي ذالك الأمر الذي تم تنفيذه.

CMP:
هذا الأمر يقوم بالمقارنة بين قيمتين وأحيانًا إجراء عملية حسابية بينهما. مثال CMP ebp, ebx: يقوم هذا الأمر بإجراء عملية حسابية بطرح ebx من ebp وتحديث العلامات Flags. هذا الأمر مهم جداً للكراكرز لأنه في شيفرات بعض البرامج يقوم هذا الأمر بمقارنة الرقم التسلسليSerial Number الذي أدخلناه مع الرقم التسلسلي الصحيح، أو التحقق من أن البرنامج مسجل أم لا وهكذا. وهذا الأمر غالباً ما يتبع بأمر من أوامر القفز JMP.

JMP:هذا الأمر يقوم بالقفز إلى عنوان محدد في الشفرة، وله ملحقات مثلJE وJNE ، وهو أمر مشابه لكلمة GOTO. مثال JMP 00602502: يقوم هذا الأمر بالقفز إلى السطر المحدد في الشفرة. ويسبق أمر القفز عادةً بأمر مقارنة CMP حيث تقارن قيمتان ثم ينفذ أمر القفز، مثال:
CMP stored serial, entered serial
JE correct serial
حيث تتم هنا مقارنة السيريال المدخل مع السيريال المحفوظ في شيفرة البرنامج (الصحيح)، وإذا كان السيريال المدخل مطابق للسيريال المحفوظ JE (jump if equal) فإن البرنامج سيخبرك بأن السيريال الذي أدخلته صحيح!

بعض لاحقات الامر JMP:
jne “jump if not equal: اقفز إن لم تكن القيمة المخزنة مسأوية للمدخلة.
je “jump if equal: اقفز إن كانت القيمة المخزنة مسأوية للمدخلة.
jmp “jump directly to: اقفز مباشرة إلى مكان معيّن.
ja “jump if above: اقفز إن كانت القيمة المدخلة اكبر من المخزنة.
jna “jump if not above: اقفز إن كانت القيمة المدخلة ليست اكبر من المخزنة.
jae “jump if above or equal: اقفز إن كانت القيمة المدخلة اكبر أو تسأوي المخزنة.
jnae “jump if not above or equal: اقفز إن كانت القيمة المدخلة لا تساوي القيمة المخزنة وليست أكبر منها.
jb “jump if below: اقفز إن كانت القيمة المدخلة أصغر من المخزنة.
jnb “jump if not below: اقفز إن كانت القيمة المدخلة ليست أصغر من المخزنة.
jbe “jump if below or equal: اقفز إن كانت القيمة المدخلة تسوي أو اصغر من المخزنة
jnbe “jump if not below or equal: اقفز إن لم تكن القيمة المدخلة تساوي أو أصغر من المخزنة.
jg “jump if greater: اقفز إن كانت القيمة المدخلة أعظم من القيمة المخزنة "تشبه الى حد ما اقفز إن اكبر".
jng “jump if not greater: اقفز إن كانت القيمة المدخلة ليست أعظم من المخزنة.
jge “jump if greater or equal: اقفز إن كانت القيمة الدخلة أعظم من القيمة المخزنة أو مساوية لها.
jnge jump “jump if not greater or equal: اقفز إن لم تكن القيمة المدخلة أعظم أو تساوي المخزنة.
jl “jump if less: اقفز إن كانت القيمة المدخلة أقل من المخزنة.
jnl “jump if not less: اقفز إن لم تكن القيمة المدخلة أقل من المخزنة.
jle “jump if less or equal: اقفز إن كانت القيمة المدخلة أقل أو تساوي المخزنة.
jnle “jump if not less or equal: اقفز إن كانت القيمة المدخلة ليست أقل أو تساوي المخزنة.
nop “no operation: بدون عملية أو وظيفة،عندما تكون في سطر ما فلا تنفذ أي عملية عليه.
المجهول غير متصل   رد مع اقتباس
قديم 17-01-2005, 06:43 PM   #3
المجهول

مشرف منتدى الطلبة

 
الصورة الرمزية المجهول
 
تاريخ التسجيل: Jul 2004
المشاركات: 1,298
الدرس الثاني:

1. فكرة سريعة عن الدرس الثاني:
درسنا اليوم يتناول تطبيقا عمليًا بسيطًا لكنه سيقويّ الأساسيات لديكم. سنقوم في هذا الدرس بالتعديل على إحدى أوامر برنامج المذّكرة في الويندوز Notepad والذي يعرفه الجميع بلا شك. قد تقول ما الفائدة من هذا التعديل؟! حسناً، لن تكون له فائدة كبيرة لكنه سيكون مثال جيّد لتعليم كيفية التعديل على أوامر البرامج بواسطة "الكراكينغ" وفهم طريقة عمل البرامج.

2. معلومات عن البرنامج المستهدف:
البرنامج المستهدف: notepad.exe
الهدف : إلغاء رسالة الخطا التي نتلقاها عند محاولة فتح مستند كبير بواسطة المفكرة.
مكان الملف: c:\windows\notepad.exe
لإصدارات ويندوز: Windows 98, Windows ME
أما بالنسبة لمستخدمي Windows XP أو Windows 2000 فبرنامج المفكرة مختلف قليلاً،
لذا نزلّوا نفس الملف من هنا: Notepad حمل البرنامج بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار. (*يجب استخدام هذه الطريقة!)
*وأفضل لو أن الجميع ينزّل نفس النسخة من الرابط في الأعلى كي نكون متأكدين أننا نعمل على نفس النسخة.

3. ما البرامج التي نحتاجها للدرس الثاني:
1. Notepad: برنامج المفكرة Notepad كما ذكرت في الأعلى، وأفضل لو أن الجميع ينزّل نفس النسخة من الرابط في الأعلى كي نكون متأكدين أننا نستخدم نفس النسخة. حمل البرنامج بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار. (*يجب استخدام هذه الطريقة!)

2. Win32dasm: تكلمت عنه وشرحته بالتفصيل في الدرس الأول، برنامج رائع ومهم، يقوم بعدة عمليات مثل فك تجميع التطبيق أو البرنامج وعدة أمور أخرى. حمل البرنامج بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار. (*يجب استخدام هذه الطريقة!)

3. Hiew 600: تكلمت عنه في الدرس الأول أيضاً، برنامج رائع وظيفته تشبه وظيفة البرنامج السابق لكنه يعمل تحت بيئة الDOS ومن إحدى ميزاته السماح للكراكر بتعديل شفرة التطبيق بطريقة برمجية وعرض الملف بصيغة ASCII أو Hex أو Assembly. اسم البرنامج يرمز إلى Hackers View أي وجهة نظر الهاكر!
و الرقم 600 يدل على الإصدار السادس منه وليس الست مئة!
حمل البرنامج بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار. (*يجب استخدام هذه الطريقة!)

4. ملاحظات مهمة:
*ملاحظة 1: قم بعمل نسخة احتياطية من المفكرة وأي ملف تريد أن تقوم بكسره لتفادي المشاكل، فإذا خرب ذلك الملف احذفه واسترجع النسخة السليمة.
*ملاحظة 2 : المفكرة برنامج لا يعتمد لتشغيله على أي ملف داعم من مثل .dll أو .ocx الخ... لذا من الممكن نسخه على سطح المكتب لتسهيل العمل، لكن البرامج الكبيرة أو أي برنامج يأتي مع ملفات داعمة مثل.dll فيجب وضع النسخة ضمن مجلد البرنامج نفسه كي يعمل.

5. خطوات العمل – المرحلة الأولى- :
نتوكل على الله سبحانه وتعالى ونبدأ،
* نزّل برنامج المفكرة من الرابط السابق، انسخ ملف المفكرة Notepad إلى سطح المكتب لتسهيل العمل، وتأكد من أن لديك نسخة احتياطية منه.

* قم بفك الضغط عن برنامج Win32dasm وضع جميع ملفاته في مجلد واحد لنسمه مثلاً Win32dasm ونضعه على سطح المكتب لتسهيل عملنا.

* افتح برنامج Win32dasm واختر من القائمة في الأعلى Disassembler>Open File to Disassemble.. أو اضغط على أول أيقونة من على جهة اليسار وهي Open File to Disassemble، اختر ملف المفكرة الذي وضعته على سطح المكتب وانقر على open.

* سيقوم برنامج Win32dasm الآن بمعالجة شفرة برنامج المفكرة، لاحظ أن المعالجة لن تستغرق وقتاً طويلاً وذالك لأن برنامج المفكرة صغير، لكن مع البرامج والألعاب الكبيرة فإنه سيستغرق وقتاً أطول.
6. خطوات العمل – المرحلة الثانية- :
* نفتح ملف المفكرة الذي وضعناه على سطح المكتب ثم نختار File>Open . ستظهر لنا نافذة جديدة، في أسفل النافذة عند جملة Files of type نختار All Files وذالك كي نتمكن من فتح مستندWord . اختر ملف Word أو أي مستند كبير حجمه يفوق ال100 KB وثم اختر Open.
* سنحصل الآن على رسالة الخطأ التي تقول “This file is too large for Notepad to open. Would you like to use WordPad to read this file?”
ما تقوله الرسالة هو "أن الملف التي تحاول فتحه كبير ولا يمكن فتحه بواسطة المفكرة، هل تريد فتحه بواسطة برنامج "الدفتر" WordPad؟"

* الطريقة المتبّعة هي أن نقوم بحفظ نص أي رسالة خطأ أو أي رسالة نتلقّاه عند محاولة ادخال الرقم التسلسلي. وفي هذه الحالة نحن أمام رسالة نريد التخلص منها، لذا نقوم بحفظ نص الرسالة أو نسجلها على ورقة أمامنا كي لا ننساها ثم نغلق الرسالة بالنقر على No.


نعود الآن إلى برنامج Win32dasm، سنقوم الآن بالنقر على زر “Strn Rf” الموجود بجانب زر الطبعة في أقصى اليمين، وكما أخبرتكم في الدرس الأول فإن هذا الزر يحتوي على البيانات التي تدخل في تكوين البرنامج، كما يحتوي أيضاً على كافة الرسائل التي يظهرها البرنامج للمستخدم. ستظهر لنا الآن نافذة جديدة.
في جميع هذه الأنواع من الحماية يقوم البرنامج بعمل مقارنة بين الحدث الذي جرى والإجراء الذي هو مبرمج على التصرف وفقا له في حال وقوع هذا الحدث، وهذا الأمر ينطبق على البرامج التي تطالب بكلمة مستخدم أو رقم تسلسلي للتسجيل لكن الفرق الوحيد يكمن في قيام المبرمج بوضع بعض الحواجز في الطريق لعرقلة سير عمل الكراكر. والحدث هنا هو عمل مقارنة بين قيمتين للتحقق من أن حجم المستند لا يفوق الحجم الذي يستطيع برنامج المفكرة فتحه، فإن كان حجمه يفوق الحجم المحدد فإن الشفرة ستأمر البرنامج بالقفز بواسطة إحدى أوامر القفزjump (والتي تحدثت عنها بالتفصيل في الدرس الأول) إلى منطقة رسالة الخطأ فتظهر لنا الرسالة."

* الآن برأيك ما هو الأمر الي يجعل البرنامج يستدعي تلك الرسالة، هل هو أمر CALL أو JMP أو CMP؟! دقق قليلاً يا عزيزي وسترى أنني قلت أن البرنامج سيقوم بإجراء مقارنة، يعني أن هناك أمر مقارنة والذي غالباً ما يتبع بإحدى أوامر القفز كما ذكرت لكم سابقاً، لكن يجب أن يكون هناك أمر استدعاء CALL لاستدعاء عنوان الرسالة. إذاً سيكون هناك أمر CALLأي استدعاء ثم أمر CMPأي مقارنة يتبع بإحدى أوامر القفزJMP .
إذا كنت قد نسيت الأوامر فراجعها في الدرس الأول.

*لكننا نواجه فرقاً بسيطاً جداً هنا، وهو أن هذه الرسالة صدرت نتيجة عدم توافق في حجم محدد وليس نتيجة إدخال معلومات تسجيل خاطئة كرقم تسلسلي خاطئ.
المجهول غير متصل   رد مع اقتباس
قديم 17-01-2005, 06:47 PM   #4
المجهول

مشرف منتدى الطلبة

 
الصورة الرمزية المجهول
 
تاريخ التسجيل: Jul 2004
المشاركات: 1,298
تذكّر أننا حصلنا على "صندوق رسالة خطأ" يعني بالإنجليزي “Message Box”. إذاً سنبحث الآن عن وظيفة اسمها USER32.MessageBoxA ، هذه الوظيفة هي واحدة من أهم وأشهر الوظائف في الWindows وهي واحدة من أهم الوظائف للكراكرز لأن هذه الوظيفة ببساطة هي المسؤولة عن استدعاء "صناديق الرسائل" لعرض الرسائل التي يظهرها البرنامج، يعني أنه إذا أراد أي برنامج أن بعرض رسالة خطأ عليه أن يستدعي وظيفة USER32.MessageBoxA من نظام التشغيل كي يتمكن من عرض الرسالة التي يريد . وبرنامج المفكرة هنا يقوم باستدعاء هذه الوظيفة من الWindows لعرض رسالة الخطأ التي ظهرت لنا.

* قد تتسائل الآن وتقول لماذا ذهبنا إلى مكان رسالة الخطأ أولاً ثم إلى مكان الوظيفة ولم نذهب مباشرةً إلى مكان الوظيفة؟! الجواب بسيط؛ وهو أن برنامج المفكرة يقوم باستدعاء العديد من الرسائل ومن الصعب البحث في جميعها للحصول على ما نريد، لذا كان علينا أولاً أن نجد المكان الذي ظهرت منه رسالة الخطأ والتي دلّتنا إلى الوظيفة، وإذا حاولت وفتحت برنامج المفكرة من جديد في برنامج Win32dasm وذهبت مباشرةً إلى مكان الوظيفة USER32.MessageBoxA من دون أن تذهب أولاً إلى مكان رسالة الخطأ فإنك ستكون في المكان الخطأ! هل فهمت؟*دقق وستجد أنه يوجد أمر استدعاء، ثم أمر مقارنة متبوع بأمر قفز:
Call Dword ptr [004064B8]
cmp eax, 00000006
00403112jne
سنصل أولاً إلى أمر النداء الذي يستدعي صندوق الرسالة MessageBoxA باستخدام وظيفة USER32.MessageBoxA ، ثم سيقوم برنامج المفكرة بعمل مقارنة وأخيراً سيعطي أمر قفز الذي يقفز إلى مكان يعطينا رسالة الخطأ. وهو يعني أنه إن لم تكن القيمة صحيحة (وفي هذه الحالة إن لم يكن حجم المستند أصغر من الحجم المحدد) اقفز الى العنوان رقم 00403112. سنقوم الآن بالتعديل على الشفرة لإزالة أمر استدعاء صندوق الرسالة وإزالة أمر القفز الذي يعطينا رسالة الخطأ، وبالتالي سيقوم برنامج المفكرة باستدعاء برنامج الWordPad مباشرةً من دون أن يظهر لنا رسالة الخطا!

* نحن الآن موجودين على أمر الاستدعاء في برنامج Win32dasm، وإن لم تكن عليه فتحرك في الشفرة حتى تصبح على سطر أمر النداء بحيث يصبح السطر الأزرق على أمر الاستدعاء، والآن أنظر جيداً أسفل الشاشة وستجد شريط الحالة (هل تذكر في الدرس الأول أنني أخبرتك بأهمية هذا الشريط؟! ).

* هل ترى الكلام المكتوب في شريط الحالة:
Line:5093 Pg 66 of 122 Code Data @:0040305C @Offset 0000305Ch in File…
كل ما سنحتاج إليه من هذا السطر هو الرقم الموجود بعد الOffset وهو 0000305C، وهو رقم مختلف من سطر لآخر وهو عبارة عن عنوان لأي أمر، وفي هذه الحالة هو عنوان أمر الاستدعاء. وبالنسبة للحرف ""h فهو لا يهمنا لأنه ليس إلا دلالة على أنها أرقام بلغة الهكس Hex والتي تحدثت عنها سابقاً. نسجل هذا الرقم على ورقة، ثم ننزل إلى سطر أمر القفز بحيث يصبح السطر الأزرق عليه ونأخذ رقم الOffset الخاص به وهو 00003065.

* الآن عرفنا ما الذي سنقوم به، نغلق برنامج Win32dasm وعندما يظهر لك رسالة الإغلاق اختر Yes لأننا لا نحتاج إلى حفظ شفرة برنامج المفكرة. ثم نقوم بفك الضغط عن برنامج Hiew600 ونضعه في مجلّد على سطح المكتب نسميه Hiew600، ثم نقوم بفتح الملف Hiew.exe فتظهر لنا شاشة في بيئة الDOS. كما أخبرتكم سابقاً فإن هذا البرنامج يعمل تحت بيئة الDOS ومن إحدى ميزاته السماح للكراكر بتعديل شفرة التطبيق، وهو ليس معقداً فلا تفزع لأنه يعمل في الDOS!
. خطوات العمل –ا لمرحلة الثالثة- :
* لا تخف من كل هذه الرموز المعقّدة لأننا لن نحتاجها كلها!

* سنقوم الآن بالتعديل على الشفرة لإزالة أمر استدعاء رسالة الخطأ وإزالة أمر القفز وبالتالي عند محاولة فتح مسنتد كبير سيقوم برنامج المفكرة Notepad باستدعاء برنامج الدفتر WordPad مباشرة من دون إظهار رسالة الخطأ تلك!

* في برنامج Hiew، استخدم أسهم الكيبورد كي تصل إلى الأعلى عند النقطتين، اضغط على Enter وستصبح في سطح المكتب، انزل إلى الأسفل حتى تجد NOTEPAD.EXE اضغط بالEnter عليه وستصبح داخل شفرة برنامج المفكرة.

* في برنامج Hiew، اضغط على F4 من على الكيبورد واختر من قائمة الModes (الوضعيات) التي ستظهر الاختيار“Decode”. ستصبح الرموز بلغة الأسملي Assembly وهي اللغة التي تظهر الرموز فيها في برنامج Win32dasm أيضاً. وعلى فكرة ممكن كبس Enter فقط للتنقل بين بين الModes المختلفة.

* اضغط على F5 وسيصبح بإمكانك ادخال عنوان Offeset. أدخل أول Offset حصلنا عليه والخاص بأمر الستدعاء وهو 0000305C.
* ملاحظة: تأكد من أنك أغلقت برنامج Win32dasm وإلا ستظهر لك رسالة خطأ ولن تستطيع التعديل على الشفرة لأن برنامج Hiew سيجد أن برنامج المفكرة يستخدمه برنامج آخر وهو Win32dasm. في الحقيقة إذا كان برنامج Win32dasm مفتوحاً من دون أن يكون يعالج شفرة برنامج المفكرة فلن تكون هناك أي مشكلة!
أصبحنا الآن في مكان أمر الاستدعاء، سنقوم الآن بتعديل الشفرة بواحدة من الطريقتين التاليتين:-

* الطريقة 1: اسم هذه الطريقة هو “Register Modifying” أي "تعديل الرجيستر"، وهي الطريقة المفضلة. اضغط على F3 وسيصبح بإمكانك التعديل على الشفرة، أدخل التالي وسأشرح لك لاحقاً: 404840484048. ثم اضغط على F9 لاعتماد التعديل وتحديث الشفرة. الآن سنفعل الأمر ذاته لأمر القفز، اضغط على F5 وسيصبح بإمكانك ادخال عنوان Offeset. أدخل ثانيOffset حصلنا عليه والخاص بأمر القفز وهو 00003065. اضغط على F3 وسيصبح بإمكانك التعديل على الشفرة، أدخل التالي وسأشرح لك لاحقاً:
404840484048. ثم اضغط على F9 لاعتماد التعديل وتحديث الشفرة، اضغط على F10 لإغلاق البرنامج. افتح الآن برنامج المفكرة الموجود على سطح المكتب والذي عدّلنا عليه، جرّب أن تفتح بواستطه مستند يفوق حجمه ال100 KB، ما الذي يحدث؟! استدعى برنامج المفكرة Notepad برنامج الدفتر WordPad مباشرة لفتح المستند من دون أن يظهر لنا رسالة الخطأ المزعجة!
الطريقة 2: اسم هذه الطريقة هو “nop” أي "لا عملية" وهي طريقة مستخدمة كثيراً لكن لها سيئاتها أحياناً وسأشرح لك لاحقاً لماذا. اتبع نفس الخطوات السابقة حتى تصبح عند أمر الاستدعاء، اضغط على F3 وسيصبح بإمكانك التعديل على الشفرة، أدخل التالي وسأشرح لك لاحقاً: 909090909090. اذهب إلى سطر أمر القفز كما ذكرت في الخطوات السابقة، ثم اضغط على F3 وسيصبح بإمكانك التعديل على الشفرة، أدخل التالي وسأشرح لك لاحقاً: 909090909090. افتح الآن برنامج المفكرة الموجود على سطح المكتب والذي عدّلنا عليه، جرّب أن تفتح بواستطه مستند يفوق حجمه ال100 KB، ما الذي يحدث، استدعى برنامج المفكرة Notepad برنامج الدفتر WordPad مباشرة لفتح المستند من دون أن يظهر لنا رسالة الخطأ المزعجة!
بقي الآن أن أشرح لكم ما حدث. حان الوقت كي نتعلم بعضاً من لغة الHex:
في لغة الهكس Hex، كل من الأوامر أو بالأحرى الأرقام التالية لها معنى خاص وعمل خاص بها:
40 ------< أضف إلى ال eax (inc eax)
48 ------< أنقص من ال eax (dec eax)
90 ------< لا شيء يحدث (nop)
كلمة “inc” تعني “increase” أي أضف أو زيادة، وكلمة “dec” تعني “decrease” أي أنقص أو تخفيض.
في الطريقة الأولى، قمنا عند أمري الاستدعاء والقفز بزيادة الرجيستر “eax” بقيمة 1 ومباشرة بعدها قمنا تنخفيضها بقيمة 1 أيضاً، فتكوّن عندنا 404840484048، وفي النهاية بقي الحال كما هو وكأنك تقول "ضع 1 وخذ 1" وهذه الطريقة أزالت أمر الاستدعاء Call وأمر القفز Jne وبالتالي لم تظهر رسالة الخطأ!
وفي الطريقة الثانية، قمنا بإلغاء أمريّ الاستدعاء والقفز بإدخال أمر الnop أي "لا عملية"، يعني "لا تنفذ الأمر"، وبالتالي لم ينفّذ أمر الاستدعاء أو أمر القفز و بالتالي لم تظهر رسالة الخطأ!

* والسؤال الآن لماذا قلت أن الطريقة الأولى وهي "تعديل الريجستر" أفضل من الطريقة الثانية وهي "لا عملية"؟!
الجواب هو أن بعض البرامج تبحث داخل شفرتها لترى إن كان هناك أرقام 90 أي أوامر إلغاء العملية “nop”، وإن وجدت أيّ منها فلن يعمل البرنامج! لذا من الأفضل استخدام الطريقة الأولى في مثل هذه الحالات! وعلى فكرة برنامج المفكرة لا يقوم بهذا البحث لذا يمكن استخدام أي من الطريقتين!

8. طريقة أخرى؟!:
على فكرة يا أعزائي، كان من الممكن إلغاء رسالة الخطأ بطريقة أخرى وهي تغيير القيمة عند أمر المقارنة بين حجم المستند والحجم المحدد، لكنني فضلت استخدام هذه الطريقة لأنها ستساعدك أكثر على فهم طريقة عمل البرامج ولأنها طريقة تتبعها بعض حمايات البرامج.
المجهول غير متصل   رد مع اقتباس
قديم 23-09-2005, 11:43 PM   #5
عاشقةالزهراء

هملاوي سوبر

 
الصورة الرمزية عاشقةالزهراء
 
تاريخ التسجيل: Jun 2005
المشاركات: 173
بصراحة صعب نتعلم مع ها الشرح ها الطويل
عورتني اعيوني واني اقرأما قدرت اكمل
مشكور اخوي المجهول على الشرح
تحياتي
__________________
( الابتسامة المشرقة ، صدقة جارية ، على فقراء الأخلاق ، في عالم القيم ، فتبسم دائما )
عاشقةالزهراء غير متصل   رد مع اقتباس
إضافة رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع إبحث في الموضوع
إبحث في الموضوع:

البحث المتقدم
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
هل تعلم سر الخطوط في يديك؟؟ الماسة المنتدى العام 2 12-04-2006 06:35 PM
مواقع رائعه ومهمة جدا في تعلم اللغة الانجليزية بنت الشبيب منتدى اللغات الأجنبية 0 10-04-2006 11:28 PM
تعلم كيف تخدع دماغك !!! بنت الشبيب المنتدى الصحي 5 05-04-2006 05:08 PM


الساعة الآن 07:48 PM.


Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd. , Designed & TranZ By Almuhajir
جميع الحقوق محفوظة لدى شبكة الهملة الثقافية الشاملة