اصطياد السيريال - serial fishing

قم بتحميل البرنامج التالي

http://www.4shared.com/file/RlaJV7KC/1_online.html

هذا البرنامج هو برنامج بسيط . وظيفته استقبال مدخلات المستخدم ( الاسم والسيريال )
ومطابقتهم بالسيريال الحقيقي . فاذا كان اسم المستخدم والسيريال صحيحين . يطبع لك رساله
Good



واذا كانت المدخلات خطأ . يطبع لك رساله
Wrong



بهذه البساطه . الان نحن مطلوب منا في هذا الدرس معرفه السيريال الحقيقي من خلال تتبع البرنامج
باستخدام olly
مبدأ اصطياد السيريال او الـ serial fishing بسيط جدا . تقوم بوضع مدخلات خطأ . ثم
تقوم بتتبع اكواد ودوال البرنامج . فاذا وجدت السيريال الصحيح . تأخذه
الان دعونا نبدأ في التطبيق العملي لفهم الفكره بشكل اوضح وابسط


بسم الله نبدأ :-
---------------

بدايتا قم بادخال البرنامج الي olly
(( شغل برنامج olly ثم من القائمه اختر File ومنها Open لاختيار البرنامج ))

اختر البرنامج الذي قمت بتحميله . ستظهر لك الصوره التي تعودنا عليها



الان ما الذي نريده ؟
بما ان البرنامج يقوم بعمل مقارنه بين السيريال الصحيح والاخر الذي ادخلته ( طبعا يكون عشوائي = خطأ )
اذا وبكل بساطه نريد رؤيه السيريال الصحيح
الان دعونا نتفحص الاوامر ونري ماذا يوجد لدينا . وقبل ان نكمل . يجب ان نتعرف علي بعض الدوال
المشهوره والمستخدمه لجلب نص من مربع نص ( اي اخد مدخلات المستخدم من مربع النص في البرنامج )
وهما
GetDlgItemTextA
GetWindowTextA
بالاضافه لذلك . تهمنا الداله MessageBoxA فهي المسؤوله عن اخراج بعض الرسائل اليك
مثل رساله Good و Wrong
وطبعا نحن عادة مهتمون برساله الخطأ
اذن انزل للاسفل قليلا . ستجد داله MessageBoxA . انظر :-



يبدو ان هذه الرساله التي تظهر عن الضغط علي كلمه about . لا بأس لا يهمنا ذلك . فلنتابع
انزل للاسفل قليلا سنجد
التالي



دالتان من نوع
GetDlgItemTextA . وواضح ان احدها لجلب اليوزر والاخري للسيريال
الان نريد ان نعرف ايهم هي المسؤوله عن جلب اليوزر وايهما لجلب السيريال !!
لمعرفه ذلك . اولا لنبدأ بالاولي . قم بوضع نقطه توقف عند بدايتها باستخدام المفتاح F2



الان قم بتشغيل البرنامج باستخدام المفتاح F9 . بعد تشغيل البرنامج . ستظهر لك واجهة البرنامج
قم بادخال اليوزر نيم والسيريال وليكن
albop
123456
ثم اضغط Check كالتالي



ماذا تلاحظ ؟؟ لقد عدنا الي olly . جميل جدا . الان لنقم بعمليه تتبع تعليمات البرنامج ويتم ذلك باستخدام
المفتاح F8 ( كما ذكرنا في الموضوع الاول . F8 تعني تنفيذ تعليمه تعليمه من اكواد البرنامج
بعكس F9 والذي يقوم بتنفيذ كافه التعليمات الي ان يواجه نقطه توقف )
الان قم بتتبع التعليمات واحده تلو الاخري باستخدام F8 الي ان تخرج من الداله الاولي
( اي اننا سنضغط علي F8 خمس مرات )



الان انظر الي قسم المسجلات . وتحديدا المسجل EAX . ما هي القيمه بداخله الان ؟
نعم القيمه هي 5 . وهي عدد المحارف التي ادخلناها في اليوزرنيم albop
(( معظم الدوال بعد تنفيها يتم تخزين القيمه المرجعه الي المسجل EAX ))

الان انظر الي قسم الـ hex dump اسفل برنامج olly الي اليسار . ماذا تلاحظ ؟؟



كما تلاحظ تم اضافه كلمه جديده وهي albop ( اليوزرنيم الذي ادخلناه )
وهذا دليل اخر علي ان الداله الاولي خاصه باليوزرنيم
نفس الشئ بالنسبه للداله الثانيه . فبعد التتبع ستري ان المسجل eax=6 و 6 هو عدد المحارف في
السيريال الذي ادخلناه ( 123456 )
بالمثل ستجد 123456 مخزنه في خانه الـ hex dump اسفل كلمه albop بعده اسطر

علي الرغم من ان كل ما ررد في السابق ليس له علاقه مباشره بالطريقه التي سنحصل فيها علي السيريال
الصحيح . الا ان المعلومات التي تم ذكرها تعتبر اساسيه كي تهيئ لعالم الهندسه العكسيه

الان سنستمر في التتبع . وبما ان هذا الدرس للمبتدئ . فلن نشرح جميع الدوال
الان كل ما نريده هو البحث عن الداله التي تقوم بالمقارنه بين مدخلاتنا والبيانات الصحيحه
وهي الداله lstrcmp ( داله المقارنه )
اعتقد انك رأيتها . انها موجوده بالاسفل . كل ما علينا فعله هو التتبع باستخدام F8 حتي نصل اليها



كما نري . هذه هي داله المقارنه . وهي تجري مقارنه بين (( 123456 و 20E )) اذن .
الامر واضح
السيريال الصحيح هو 20E .

الان قم بفتح البرنامج . ادخل اسم المستخدم albop والسيريال 20E
والنتيجه !!




نجحنا . مبروك عليك اول عمليه serial fishing ناجحة
الان اعتقد اتضحت بساطه الفكره . كل ما علينا فعله هو ادخال البرنامج الي olly . تنفيذ البرنامج .
ادخال بيانات خاطئه . تتبع البرنامج حتي نصل الي السيريال الصحيح .

المشاركات الشائعة من هذه المدونة

بحث مرتقب بخصوص علم البيانات الضخمة Big Data وتحليلها - تدوينة للإعداد

توضيحات بخصوص اساليب التخفي - The Onion Router

أسئلة شائعة حول إضافة Mailvelope والإجابة عليها