الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

احصل علي عنوان IP بالأسمبلي تطبيق الدرس #4

بدأه the inventor habib في 26 يوليو 2012 · 0 رد · 1,150 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم :

في هدا الدرس سوف نطبق

برمجة Winsocket الدرس #4

وسوف نبرمج برنامج يقوم بطباعة عنوان IP الخاص بأي موقع وسوف أضع في الدرس موقع ستارتايمز.

البرنامج بسيط.وهدا هو كود البرنامج وسوف أشرحه سطر بسطر.

1343255065221.jpg

السطر رقم:

    1. يتم استدعاء ملف masm32rt الدي بنفسه يستدعي بعض الملفات الأخي المهمة وبه بعض الماكروات التي سنستعملها.
    2. يتم استدعاء ملف wsock32 الدي يحتوي علي syntax الخاص بدوال السوكت.
    3. يتم استدعاء مكتبة wsock32 نقول للمجمع أننا سوف نستعمل تلك المكتبة لكي يتم كتابة هده المعلومة في الملف التنفيدي...
    4. بداية مقطع البينات.
    5. حجز المتغير webs الدي يحمل عنوان الموقع الدي نريد عنوان IP الخاص به.
    6. حجز موقع في الداكرة بحجم sockaddr_in لوسميناه addra
    7. حجز موقع في الداكرة لبنية من نوع WSADATA لنستعملة في دالة WSAStartup.
    8. بداية مقطع الكود.
    9. .............................................
    10. عبارة عن Label وهو نفطة دخول البرنامج.
    11. استدعاء الدالة WSAStartup لتهيئة مكتبة السوكت واستعمالنا الاصدار 2.2.
    12. استعمالنا الدالة gethostbyname التي تقوم بارجاع مؤشر الي البينية hostent البرامتر الوحيد هو عنوان الموقع.
    13. نقوم بمقارنة القيمة المرجعة في eax مع NULL يعني ادا حدت خطأ.
    14. ادا تسواي EAX مع NULL يعني ادا تحقق الشرط السابق قم بالقفز الي ex الأسف يعني الخروج .
    15. نقوم بنقل قيمة h_list الموجود في البينية hostent الي ebx.
    16. نقل مؤشر الي العنوان IP الي eax.
    17. نقل عناون ip الي eax علي هيئة big endian.
    18. استعمال الدالة inet_ntoa التي تقول بالتحويل من big endian الي string والبرامتر الوحيد هو IP علي هيئة big endian والقيمة المرجعة هو مؤشر الي العنوان IP علي شكل STRING.
    19. استعمال الماكرو print الدي يقوم بطباعة IP و قلنا أن EAX يحمل مؤشر الي العناون IP و قمنا بطباعة 10 التي تعني سطر جديد.
    20. عبارة عن عنوان دلك الموقع لكي يتم القفز اليه من الأعلي كما دكرنا.
    21. ماكرو ينتضر حتي يضغط المستخدم علي زر ما
    22. ماكرو يتم الخروج من البرنامج واعطاء التحكم للنضام.
    23. نهاية LABEL.




    الي هنا أنهي هدا الموضوع أتمني أن يستفيد منه الجميع + ملاحضة يمكنك استعمال هده الطريقة كدلك.


    1343256452861.jpg



    السطر 16 نقول للمجمع أن يجعل eax كمؤشر الي بنية hostent الا سوف يحدت خطأ ان لم نفعل هكدا.


    17 نقوم بنقل h_list الي ebx.


    18 نطلب مجددا من المجمع أن يجعل eax يشير الي لا شيئ لكي لا نسبب في الأخطار عندما نستعمل المسجل eax.





    الي اللقاء.

2

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…