استغفر الله العظيم
 
 

العودة   منتديات داماس > المنتديات التعليمية > البرمجة القياسية Ajax - XML - CSS - JavaScript -php وغيرهم
 

Advertisement

 
27-08-2005, 10:56 PM
megagame غير متصل
عضو ذهبي
رقم العضوية: 2684
تاريخ التسجيل: Nov 2003
المشاركات: 967
دُعي الى: 0 موضوع
    #1  
البرمجة القياسية Ajax - XML - CSS - JavaScript -php وغيرهم

تعلم صناعة الكراك بنفسك!


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

في الحقيقة كنت أود أن أنشر هذا الموضوع منذ أشهر لأشارك أعضاء هذا المنتدى الرائع خبرتي في صنع الكراكات، لكني تأخرت بسبب الدراسة المكثفة هذه السنة والإمتحانات الكثيرة، عموماً أرجو أن تستفيدوا من هذا الموضوع ولا تنسوا الدعاء لي! ;)

الدرس الأول:

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 (http://www.geocities.com/aloushi87/w32ds893.zip): برنامج رائع ومهم، يقوم بعدة عمليات مثل فك تجميع التطبيق أو البرنامج وعدة أمور أخرى. اسم البرنامج يرمز إلى Windows 32 Disassembler والذي يعني "مفكك تجميع تطبيقات ويندوز 32" والرقم 32 يرمز إلى تطبيقات ويندوز للبرامج المشفرة تحت بيئات ويندوز 98 وما يليه من إصدارات. وهناك برنامج مشابه وهو Win16dasm والذي يعمل تحت بيئة ويندوز 95 لكننا لن نحتاجه لأنه قديم.حمل البرنامج win32dasm بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار، وإن لم يعمل حمله بنفس الطريقة من هنا (www.geocities.com/loadkill/3_1/w32ds893.zip).

Hiew600 (http://www.geocities.com/aloushi87/hiew600.zip): برنامج رائع وظيفته تشبه وظيفة البرنامج السابق لكنه يعمل تحت بيئة الDOS ومن إحدى ميزاته السماح للكراكر بتعديل شفرة التطبيق بطريقة برمجية وعرض الملف بصيغة ASCII أو Hex أو Assembly. اسم البرنامج يرمز إلى Hackers View أي وجهة نظر الهاكر! و الرقم 600 يدل على الإصدار السادس منه وليس الست مئة! :p
حمل البرنامج بعمل نقرة يمين عليه واختيار Save Target As أو حفظ المسار. وإن لم يعمل حمله بنفس الطريقة من هنا (www.geocities.com/loadkill/3_1/hiew600.zip).

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

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

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

6. شرح برنامج Win32dasm:
نتوكل على الله سبحانه وتعالى ونبدأ بشرح برنامج Win32dasm:
(إذا لم تظهر الصورة، اعمل نقرة يمين عليها واختار Show Picture أو أنظر إلى الصورة المرفقة)
صناعة الكراك بنفسك!
*سأشرح لكم أولاً وظائف القوائم:
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 وهي قائمة المراجع أو الإشارات وهي مهمة جداً وسوف نرى عملها في الدروس القادمة عندما نطبق العمل على البرامج الضحية إن شاء الله. :p
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: بدون عملية أو وظيفة،عندما تكون في سطر ما فلا تنفذ أي عملية عليه.

كان هذا الدرس الأول من "تعلم صنع الكراك" الذي أعده بنفسي، أنصحكم بقراءة الموضوع مرتان أو ثلاثة كي تفهموه جيداً وتحفظوا الأوامر والقوائم المهمة جداً في الكراكينغ فهي ليست صعبة جداً، وإن شاء الله في الدرس القادم سنتعلم كيف نكسر حماية برنامج ونصنع كراك له، لكن قد أتأخر حتى أنشر الدرس الثاني بسبب ضيق وقتي وبسبب اقتراب الفصل الثاني في المدرسة ولأنني أحتاج أن أراجع الموضوع كي أتاكد من دقة المعلومات والشرح.
كما أرجو من المراقبين الأعزاء تثبيت الموضوع لنشر الفائدة، وأنا بانتظار ردودكم وآرائكم، ولا تنسوا الدعاء لي! :)







المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
برامج صناعة الكراك والباتش ahmed karkar برامج 5 14-10-2010 12:15 PM
مطلوب اسطوانة تعلم صناعة الكراك والباتش ahmed karkar برامج 1 14-10-2010 09:14 AM
فيجوال بيسك 6 الأن أبدع و أحترف صناعة برامجك بنفسك -تعريب - كتب تعليم -صور ميزو فوكس الاسطوانات التعليمية وكورسات تعليم البرامج 0 21-07-2008 04:21 PM
تعلم صنع الكراك بنفسك من الألف الي الياء ملفات فيديو " مشاركات الغلابة بداماس" mohamedzebak برامج 108 12-05-2008 03:03 AM
تعلم صناعة الماكرو بنفسك لإضافة مزيد من القوة لتطبيقات الأوفيس ahmdatef برامج 40 09-06-2006 08:08 AM

27-08-2005, 11:12 PM
megagame غير متصل
عضو ذهبي
رقم العضوية: 2684
تاريخ التسجيل: Nov 2003
المشاركات: 967
دُعي الى: 0 موضوع
    #2  

salam...
أهلاً بكم إلى الدرس الثاني من "تعلم صناعة الكراك بنفسك" والذي أعدّه بنفسي. كما وعدتكم ها هو الدرس الثاني، وأأسف لأنني تأخرت في تقديمه لكن الدراسة تأخذ معظم وقتي! أعرف أنني وعدتكم في الدرس الأول أنني سأقوم بالدرس الثاني بتعليمكم كيف نكسر حماية برنامج ونصنع كراك له، لكنني قررت أن أؤجل هذا الأمر إلى الدرس الثالث إن شاء الله؛ لأنني أريد أن أعلمكم في هذا الدرس كيف نعمل كراكينغ للتعديل على البرامج وتغيّير بعض الأمور فيها، تذكروا أن الكراك ليس فقط لتسجيل البرامج التي تطالب بإسم مستخدم وكلمة مرور أو سيريال، ولكن أيضاً لتعديل بعض الأوامر في البرامج، وقد ذكرت لكم هذا في الدرس الأول.
***الرجاء الانتظار والصبر حتى تحميل الصور في الدرس*** ;)

الدرس الثاني:

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

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

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

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

3. Hiew 600: (http://aloush87.tripod.com/hiew600.zip) تكلمت عنه في الدرس الأول أيضاً، برنامج رائع وظيفته تشبه وظيفة البرنامج السابق لكنه يعمل تحت بيئة الDOS ومن إحدى ميزاته السماح للكراكر بتعديل شفرة التطبيق بطريقة برمجية وعرض الملف بصيغة ASCII أو Hex أو Assembly. اسم البرنامج يرمز إلى Hackers View أي وجهة نظر الهاكر!
و الرقم 600 يدل على الإصدار السادس منه وليس الست مئة! :p
حمل البرنامج بعمل نقرة يمين عليه واختيار 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 الآن بمعالجة شفرة برنامج المفكرة، لاحظ أن المعالجة لن تستغرق وقتاً طويلاً وذالك لأن برنامج المفكرة صغير، لكن مع البرامج والألعاب الكبيرة فإنه سيستغرق وقتاً أطول. عند الانتهاء سيكون لديك ما يلي على الشاشة:

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

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” الموجود بجانب زر الطبعة في أقصى اليمين، وكما أخبرتكم في الدرس الأول فإن هذا الزر يحتوي على البيانات التي تدخل في تكوين البرنامج، كما يحتوي أيضاً على كافة الرسائل التي يظهرها البرنامج للمستخدم. ستظهر لنا الآن نافذة جديدة.

*الآن ما سنقوم به هو البحث ضمن تلك القائمة عن تلك الرسالة التي ظهرت لنا عندما حاولنا فتح مسنتد كبير بواسطة المفكرة، والتي قمنا بحفظها.

*نقوم الآن بالبحث عن الرسالة وهي “This file is too large for Notepad to open…” فننقر عليها مرتين ثم نفلق النافذة بالنقر على على Close.

*كما نرى فإننا الآن في منطقة أخرى من الشفرة وهي المنطقة التي انطلق منها الأمر لتفعيل الخطأ وهي كما يلي:

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


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

*لكننا نواجه فرقاً بسيطاً جداً هنا، وهو أن هذه الرسالة صدرت نتيجة عدم توافق في حجم محدد وليس نتيجة إدخال معلومات تسجيل خاطئة كرقم تسلسلي خاطئ.

* إذاً ماذا نفعل الآن؟! هل تذكر زر Imported Functions الذي تحدثت عنه سابقاً، يقوم هذا الزر باستدعاء قائمة الوظائف المستوردة من نظام التشغيل إلى البرنامج. نقوم بالضغط على هذا الزر وسنحصل على شاشة تحتوي على هذه الوظائف.

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

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

* نحن الآن في المنطقة الصحيحة والتي انطلقت منها رسالة الخطأ، وكما ذكرت سابقاً فإن هناك أمر مقارنة CMP ثم أمر قفز:

*دقق وستجد أنه يوجد أمر استدعاء، ثم أمر مقارنة متبوع بأمر قفز:
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! :D

7. خطوات العمل –ا لمرحلة الثالثة- :
* لا تخف من كل هذه الرموز المعقّدة لأننا لن نحتاجها كلها! :)

* سنقوم الآن بالتعديل على الشفرة لإزالة أمر استدعاء رسالة الخطأ وإزالة أمر القفز وبالتالي عند محاولة فتح مسنتد كبير سيقوم برنامج المفكرة 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 مباشرة لفتح المستند من دون أن يظهر لنا رسالة الخطأ المزعجة! :D


* الطريقة 2: اسم هذه الطريقة هو “nop” أي "لا عملية" وهي طريقة مستخدمة كثيراً لكن لها سيئاتها أحياناً وسأشرح لك لاحقاً لماذا. اتبع نفس الخطوات السابقة حتى تصبح عند أمر الاستدعاء، اضغط على F3 وسيصبح بإمكانك التعديل على الشفرة، أدخل التالي وسأشرح لك لاحقاً: 909090909090. اذهب إلى سطر أمر القفز كما ذكرت في الخطوات السابقة، ثم اضغط على F3 وسيصبح بإمكانك التعديل على الشفرة، أدخل التالي وسأشرح لك لاحقاً: 909090909090. افتح الآن برنامج المفكرة الموجود على سطح المكتب والذي عدّلنا عليه، جرّب أن تفتح بواستطه مستند يفوق حجمه ال100 KB، ما الذي يحدث، استدعى برنامج المفكرة Notepad برنامج الدفتر WordPad مباشرة لفتح المستند من دون أن يظهر لنا رسالة الخطأ المزعجة! :D

* بقي الآن أن أشرح لكم ما حدث. حان الوقت كي نتعلم بعضاً من لغة ال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”، وإن وجدت أيّ منها فلن يعمل البرنامج! لذا من الأفضل استخدام الطريقة الأولى في مثل هذه الحالات! وعلى فكرة برنامج المفكرة لا يقوم بهذا البحث لذا يمكن استخدام أي من الطريقتين! :D

8. طريقة أخرى؟!:
على فكرة يا أعزائي، كان من الممكن إلغاء رسالة الخطأ بطريقة أخرى وهي تغيير القيمة عند أمر المقارنة بين حجم المستند والحجم المحدد، لكنني فضلت استخدام هذه الطريقة لأنها ستساعدك أكثر على فهم طريقة عمل البرامج ولأنها طريقة تتبعها بعض حمايات البرامج! :)

9. ختاماً...:
رائع، لقد نجحنا في عمل كراكينغ لأول برنامج لنا!:) مبروك عليك، لقد دخلت عالم الكركينغ وتعلّمت الأساسيات! هل أحسست الآن ببعض من قوة وتحكّم الكراكينغ؟! أنا متأكد من ذالك! :D لكن الطريق ما زالت طويلة أمامك. المهم أن تكون قد فهمت هذا الدرس جيداً لأنه سيساعدنا كثيراً في الدرس القادم! إن شاء الله في الدرس القادم سنتعلم كيف نكسر حماية برنامج ونصنع كراك له، لكن قد أتأخر حتى أنشر الدرس الثالث بسبب الدراسة وضيق الوقت!
أنا بانتظار ردودكم ورآرائكم، ولا تنسونا من الدعاء! :ciao:
الشكر للاخ علوش ;) :) :p




27-08-2005, 11:16 PM
eXpert غير متصل
إداري سابق
رقم العضوية: 17239
تاريخ التسجيل: Jan 2005
الإقامة: Sweden
المشاركات: 4,141
دُعي الى: 0 موضوع
    #4  
اشكرك اخي الكريم موضوع..جميل..والله من زمان ..ابحث في هذة المواضيع..تركي لهذة مواضيع هي البرامج المستخدمة..لاتقدم فيها...سؤالي التطور السريع في عالم البرمجيات..لا في عالم الكراكات..يعني نفس البرامج..لاتوجد برامج احدث من هذة البرامج...وهي نفس الخطوات.اشكرك..جزيل الشكر.نتمنى ان تلقى حسن الاهتمام من قبل الاعضاء.




28-08-2005, 01:30 AM
gold_hacker غير متصل
عضو
رقم العضوية: 24180
تاريخ التسجيل: Aug 2005
المشاركات: 89
دُعي الى: 0 موضوع
    #6  
[frame=11 70]
ياااااااااه انا كان نفسي من زمان ان اعرف هذه المعلومات

الف شكر لك اخي العزيز


مع تحياتي:

جووووووووووووولد هكر
[/frame]




28-08-2005, 12:33 PM
bo3bdo غير متصل
ابو عبدالله
رقم العضوية: 19705
تاريخ التسجيل: Apr 2005
الإقامة: Bahrain
المشاركات: 5,318
دُعي الى: 7 موضوع
    #8  
يعطيك العافيه أخوي




اللهم إنا نسألك علماً نافعاً وقلباً خاشعاً ولساناً ذاكراً

28-08-2005, 01:44 PM
real_mtz غير متصل
مشرف سابق
رقم العضوية: 21617
تاريخ التسجيل: Jul 2005
المشاركات: 429
دُعي الى: 0 موضوع
    #10  
موضوووع رااااااااااااااائع .. لكن مكانه الصحيح "كورسات بوابة داماس ... "





28-08-2005, 03:16 PM
drm7mad غير متصل
عضو جديد
رقم العضوية: 23174
تاريخ التسجيل: Jul 2005
المشاركات: 3
دُعي الى: 0 موضوع
    #12  
الف شكر على مجهودك الرائع



28-08-2005, 03:38 PM
eXpert غير متصل
إداري سابق
رقم العضوية: 17239
تاريخ التسجيل: Jan 2005
الإقامة: Sweden
المشاركات: 4,141
دُعي الى: 0 موضوع
    #13  
اخوي مواضيعك الجميلة كثيرة ..ارجو التركيز على هذا الموضوع..حتى يمكن الاستفادة ..منه في تطوير انفسنا..وكافي الاعتماد على الغير في عمل الكراكات.ويفضل وضع خبرات عملية..حتى يتم مناقشتها.






Powered by vBulletin® Version
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
The owner and operator of the site is not responsible for the availability of, or any content provided.
Topics that are written in the site reflect the opinion of the author.
جميع ما يُطرح من مواضيع ومشاركات تعبر عن رأي كاتبها ولا تعبر عن رأي مالك الموقع أو الإدارة بأي حال من الأحوال.