zakri74 ....
عدد الرسائل : 2133 تاريخ الميلاد : 01/01/1984 العمر : 40 العمل/الترفيه : كيف تعرفت علينا : عبر google تاريخ التسجيل : 29/05/2009
| موضوع: "كيفيه عمل الكراك بالتفصيل" الأحد فبراير 07, 2010 3:34 pm | |
| اخواني رواد هذا المنتدى العظيم لقدقراءت في احد المنتديات بخصوص كيف تعمل كراك وقد اعجبت به ورغبت ان اقدمه الى اخواني رواد هذا المنتدى واليكم الشرح الكراك كماتعلمون هو برنامج صغير يصنعه مبرمج وعمل هذا البرنامج هو كسر برنامج اخر !!! بمعنى اوضح عمله هو تعديل ( شرط برمجي ) داخل البرنامج المراد كسره . طبعا في البدايه الكل حيشوف انه شي صعب جدا . لكن لو الواحد عرف الاساس وعرف كيف الطريقه ، راح يسهل عليه ان شاء الله اشياء ثانيه في علم الكراك .
الفائده من الموضوع هذا هو كيف نكسر اي برنامج محمي وايش هي الادوات الازمه لعمله ؟؟
الجراح يحتاج مشاريط ومقصات عشان يعمل عمليه ونفس الشي الشخص اللي يبي( يكسر ) برنامج ، لازم يكون عنده بعض الادوات اللي تساعده انه يفتح ويقص ويعدل ، والادوات هذه هي برامج مصممه لهذا الشي . حتكلم عن افضل الادوات اللي يستخدمها (الكاسرون) وراح استبدل تسمية الكاسرون واسميهم ( الكراكرز ) .
الاداه الاولى : وهي برنامج اسمه W32dasm وهذا البرنامج عمله عكس عمل الـCompilers وهو يحول لغة الاله التي يفهمها الكمبيوتر الى اللغه التجميعيه ( Assembly Language ) . الفائده من استخدامه : لكي نكسر برنامج لابد ان نعرف النقطه التي يحدث عندها الشرط البرمجي وهذه الاداه تفيدنا بانها تظهر لنا مكان هذه النقطه ، والشرط البرمجي تعرضه بلغة التجميع (Assembly ). السؤال المهم الان : هل يجب ان اتعلم لغة التجميع Assembly language حتى استخدم هذه الاداه ؟؟ الجواب : لا طبعا ، ولكن ستتعلم بعض الاوامر المهمه فيها وتعليمها سهل جدا . موقع تحميل هذا البرنامج : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
الاداه الثانيه: وهي برنامج HView وعلمه يشبه عمل البرنامج السابق ولكن يختلف عن السابق بانه يوجد فيه ميزة التعديل وهذه الميزه لاتوجد في البرنامج السابق موقع تحميل هذا البرنامج : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
بعد ان تكلمنا عن الادوات سوف نبدأ الان باحد البرامج المحميه ونقوم بكسر حمايته حتى نتعلم كيف يعمل الكراك . البرنامج المراد كسر حمايته هو برنامج Quick View Plus 4.0 [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ولكن بامكانك البحث عنه داخل محركات البحث الشهيره .
الخطوه الاولى : بعد تثبيت برنامج Quick View Plus 4.0 اذهب الي المجلد الذي يوجد بداخله ملفات البرنامج وسوف تجده في مجلد C:\program files\quick view plus ، بعد ان تفتح المجلد سوف تجد ملف تنفيذي باسم Order32.exe ، اعمل نسخه مكرره من هذا الملف بحيث يصبح لديك من هذا الملف نسختين حتى اذا تلف الاول يصبح لديك نسخه احتياطيه تقوم باسترجاعها .
الخطوه الثانيه : اضغط على الملف Order32.exe دبل كلك .
الخطوه الثالثه : سوف يقوم البرنامج بالعمل وسوف تظهر لك شاشه بها خيارات ، اضغط على زر 49$ وبعدها اضغط على زر Accept ثم اضغط على Unlock by phone .
الخطوه الرابعه: سوف يظهر لك مربع لادخال رمز التسجيل ، ادخل اي رمز يخطر على بالك حتى تظهر لك رسالة خطأ بان الرمز خاطئ ، اكتب نص هذه الرساله في ورقه خارجيه حتى تتذكرها ثم اخرج من البرنامج .
الخطوه الخامسه : الان سوف نستخدم الاداه الاولى وهي برنامج w32dasm . قم بتشغيل الاداه ثم اختر من شريط القوائم Disassembler ثم Open file to Disassemble.. ثم اختر ملف النسخه الاحتياطيه من Order32.ex والتي قمنا بعمله في الخطوه الاولى .
الخطوه السادسه : بعد فتح الملف سوف تظهر لك شفرة الملف وهي مكتوبه بلغة التجميع وسوف تندهش من عمل هذا الاداه الهائله . الان اختر من شريط القوائم Refs ثم اختر String Data Refrences . سوف تظهر لك شاشه بها نصوص ورموز غريبه ، قم بالبحث عن نص رسالة الخطأ والتي ظهرت لك عندما ادخلت الرمز العشوائي ( You have entered an incorrect code ) . عندما تجد نص الرساله قم بالضغط عليه نقرتين بزر الفاره . ثم اغلق شاشة الـ String Data Refrences .
الخطوه السابعه : سوف يظهر لك السطر التالي :
* Possible reference to String Resource ID=00041: "You have entered... :004049F8 6A29 push 00000029 :004049FA FF353CCE4000 push dword ptr [0040CE3C]
الخطوه الثامنه : بعد ان ظهرت لك السطور التي بالاعلى بقي الان البحث عن اخر شرط برمجي حدث قبل ظهور رسالة الخطأ . والشرط البرمجي في لغة التجميع يتكون من الاوامر التاليه cmp ، jne ، je ، test ..... الخ ، وسوف ادرج جميع هذه الاوامر في اخر الموضوع باذن الله . الان اضغط على زر السهم الاعلى حتى تتحرك الصفحه الى الاعلى وحتى تجد الشرط البرمجي الذي حدث ، وسوف تظهر لك السطور التاليه :
:004049CD 755A jne 00404A29 * Possible reference to String Resource ID=00032: "You must select... :004049CF 6A20 push 00000020 ... ... * Possible reference to String Resource ID=00040: "Unlock Error"
الخطوه التاسعه : الان انت عرفت اين يقفز البرنامج عندما ندخل الرمز الخطأ . سوف نقوم الان باستبدال أمر jne بالامر الذي يعكسه وهو je . تأكد من الشريط الاخضر على الامر :004049CD 755A jne 00404A29 وبعدها انظر في اسفل شاشة البرنامج حتى تقرأ بعد هذا الامر ( النقطه ) وهو @Offset 00003DCDh. اكتب هذا البعد بورقه خارجيه حتى تتذكره جيدا وهو 0003dcd
الخطوه العاشره : الان يأتي دور الاداه الثانيه وهي برنامج Hview ويعيب هذا البرنامج انه يعمل على الدووس شغل البرنامج Hview وبعدها افتح ملف Order32.exe الاساسي وليس الملف الذي قمنا بنسخه ، سوف يفتح لك الملف على شكل رموز غريبه ، قم بالضغط على زر F4 وبعدها اختر Decode Mode . سوف يقوم البرنامج بتحويل لغة الاله الى لغة التجميع ، قم الان بالضغط على زر F5 وادخل عنوان النقطه الذي كتبناه بالورقه الخارجيه وهو 00003DCD سوف يظهر لك السطور التاليه :
00003DCD: 755A jne 000003E29
00003DCF: 6A20 push 020 00003DD1: FF15 call w,[di]
الخطوه الحاديه عشر : الان وصلنا الى مكان النقطه لنقوم بتعديل الامر فيها ، اضغط على زر F3 ثم قم بالضغط على F2 وحرك المؤشر ناحية jne واكتب بدل منها je ثم اضغط على انتر وبعدها اضغط على F9 لحفظ التغيرات التي قمنا بها .
الخطوه الاخيره : الان اغلق برنامج Hview وارجع الى المجلد الذي بداخله ملفات برنامج Quick View Plus وانقر على الملف الذي قمنا بالتعديل في داخله وهو Order32.exe ثم اعد الخطوات التي ذكرناها بالخطوه الثانيه وادخل اي رمز وسوف تجد ان البرنامج اظهر لك رسالة التهاني والتبريكات
ومابقي الا ان ادرج لكم الاوامر التي يستخدمها الكراكرز في لغة التجميع وهي :
jne jump if not equal je jump if equal jmp jump directly to nop no operation 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 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
| |
|