السبت، 14 أغسطس 2021

QOTD : حكمة اليوم

حكمة اليوم

QOTD

اعتقد أن العنوان يوحي بأن الموضوع يحتوي حكمة اليوم , لكن الموضوع هو عن خدمة من مجموعة اتصالات الانترنت موثقة تعمل على المنفذ 17 للبرتوكول TCP و UDP , و كما يوحي الأسم فهدفها تمكين مدير النظام من بث رسالة تحتوي على حكمة اليوم على أجهزة المستخدمين في الشبكة , هذه الخدمة حاليا غير معروفة لدى الكثيرين و غير مستخدمة , لكن يمكنك تجريبها بأستخدام أحد هذه الخوادم التي لا زالت توفر الخدمة و بدون أي برامج اضافية على جهازك و هذه قائمة الخوادم :
  1. djxmmx.net
  2. alpha.mike-r.com
  3. cygnus-x.net
 
 من موجه الأوامر في جهازك ( ويندوز أو لينكس ) أكتب الأمر التالي :
 
telnet djxmmx.net 17

سيتم طباعة حكمة اليوم ثم انهاء الاتصال :

لمستخدمي جهاز ويندوز الأمر telnet معطل بشكل افتراضي في ويندوز 10 , لتفعيل اتبع الخطوات التالية :

  • من قائمة ابدأ اكتب في مربع البحث Windows features ,  و اختر Turn Windows features on or off
  • من القائمة التي ستظهر لك ابحث عن Telnet Client و تأكد من اختياره , ثم اضغط على الزر Ok


انصحك بزيارة هذه الصفحة التي استفدت منها في هذا الموضوع , تحتوي على مثال باللغة بايثون لعميل و خادم لهذه الخدمة :

الجمعة، 13 أغسطس 2021

بديل برنامج netstat في ويندوز : استخدم powershell للتحقق من اتصالات الجهاز

 بسم الله الرحمن الرحيم

لغة السكريبت powershell التي طورتها  مايكروسوفت تعطيك القدرة على التحكم الكامل في نظامك و أنشاء برامج تمكنك من تحويل الوظائف المملة إلى ألية بشكل كامل، في هذا المقال سوف استعرض الاوامر الاساسية مع بعض الاستخدامات لها، هذا الأوامر سوف تساعدك على استبدال الأمر netstat الذي ما زال موجوداً في نظام ويندوز 10 .
  • الوصول إلى موجه أوامر powershellمن نظامك أختر قائمة إبدأ (Start) :
     

  • أختر  Windows Power Shell


و الأن إلى أول أمر في سطر الأوامر :
Get-NetTCPconnection
 
ملاحظة سطر الأوامر في powershell لا يهتم بحالة الأحرف فأذا كتبت الأمر كالتالي get-nettcpconnection فسينجح تنفيذ الأمر 


هذه الصورة مثال لما سيظهر لك عند تنفيذ الأمر , طبعا ستكون القائمة طويلة لذا اذا اردت ان تظهر لك بالتدريج استخدم هذا الأمر :
Get-NetTCPconnection | more
 و الأن لما هو معنى كل هذا البيانات  لنبدأ بالسطر الأول :


 هذا السطر يظهر العنوان المحلي في الاغلب في الحالات يكون العنوان الخاص بالجهاز على الشبكة المحلية أو العنوان 127.0.0.1 أو العنوان الخاص 0.0.0.0  ( هذا العنوان خاص في حالات مثل عرض عنوان غير معروف كمثال المنفذ في حالة انتظار الانتصال Listen  يعرض العنوان المتصل بهذا العنوان ) .

 

 هذا السطر يعرض رقم المنفذ المحلي , و بالنسبة للأهمية هذا السطر فالمنفذ المحلي للأستخدام النظام للتميز بين الاتصالات الواردة  و لكن قد تحتاجه لمعرفة أذا كان نظامك يعاني من مشكلة تسمى ports exhaustion أو ما يمكن ترجمته لإستهالاك المنافذ , حيث أن عدد المنافذ المحلية و الخارجية محدود ( 0 - 65535 ) , و في بعض الاحيان بسبب برنامج يعاني خطأ برمجي يتسبب في عدم تحرير موارد النظام يستهلك جميع المنافذ المحلية المتاحة  .

 

هنا يأتي العنوان الذي يتم الأتصال به , و في الصورة سوف تجد العنوانين 0.0.0.0 ( الخاص ببرتوكول IP النسخة الرابعة ) و :: ( الخاص ببرتوكول IP النسخة السادسة ) و يكون هذا في حالة عدم معرفة العنوان في حالة المنافذ التي تنتظر الاتصال (listen) .

هنا ترى المنفذ الذي يقوم جهازك فيه بالاتصال بالعنوان الخارجي (Remote Address) وتلاحظ أنه في اخر الصورة تجد المنفذ 443 الخاص ببرتوكول HTTPS .

و هذا السطر يحتوي على حالات الأتصال و الان لشرح هذه الحالات :

  • Bound : هي حالة انتقالية عند حجز المنفذ و العنوان المحلي (Bind) قبل وضعية انتظار الانتظار (Listen) .
عملية انشاء مقبس لخادم , العملية متشابه في جميع لغات البرمجة , و قد تختلف بشكل بسيط


  • هنا سوف تجد مجموعة حالات خاصة بأنشاء الاتصال , أو ما يسمى في برتوكول TCP بالمصافحة (handshake) , و سوف تختصر هذا الصورة معنى كل مرحلة :
  •  
  •  عند بدأ الاتصال يقوم الجهاز الراغب في الاتصال (Client) بحجز منفذ محلي و عنوان ويحول حالته إلى SynSent بعد إرسال رسالة SYN إلى الهدف .
  • في حالة كون المنفذ متاح في الهدف يقول الجهاز المتصل به (Server) بحجز منفذ محلي و وضع حالته  SynRecevied وإرسال رسالة SYN-ACK التي تدل على قبول الاتصال إلى العميل (Client) .
  • بعد ذلك يحول العميل (Client) حالة الاتصال إلى Established و يرسل رسالة تتختم عملية المصافحة و هي رسالة SYN اخرى ليتحول حالة Established و يبدأ تبادل البيانات .
الحالات التي ترتبط بالاتصال بالترتيب و حسب الاسم المستخدم في Powershell :
  1. SyncSent
  2. SynReceived
  3. Established

و الأن إلى شرح الحالات المرتبطة بعملية انهاء الاتصال و سنبدأ بصورة تشرح خطوات إنهاء الاتصال في برتوكول TCP :

  • يقوم الجهاز الذي يرغب بأنهاء الاتصال بأرسال رسالة FIN و تحويل حالة الاتصال إلى FINWAIT1 .
  • عند وصول الرسالة إلى الهدف يتم تحويل حالة الاتصال إلى CloseWait و إرسال رسالة ACK.
  • عند وصول الرسالة إلى الجهاز الراغب بإنهاء الاتصال يتم تحويل حالة الاتصال إلى FINWAIT2 , في هذه الحالة لا يزال الخادم يرسل البيانات .
  •  عند نهاية الارسال يرسل الخادم رسالة LastAck , ليحول الاتصال في الطرف المنهي للاتصال إلى الحالة TimeWait و يتم أرسال رسالة ACK ليتم أنهاء الاتصال في الطرفين .
و هذا ترتيب هذه الحالات بحسب الاسم المستخدم في Powershell :
  1. FinWait1
  2. CloseWait
  3. FinWait2
  4. LastAck
  5.   TimeWait
  6. Closing - حالة انتقالية تخص نظام التشغيل عندما يحاول اغلاق الاتصال
  7. Closed
 قد تتساءل عن سبب وجود هذه الحالات المتعددة للاتصال في بروتوكول TCP , السبب هو انه تم تصميم هذا البروتوكول لضمان وصول جميع البيانات مهما كلف الأمر. 

هناك حالة واحدة لم اتطرق لها بالاسم DeleteTCB و TCB اختصار لـ(Transmission control block) و وفقاُ لموقع  
ietf.com  في TCB هو بيانات الاتصال المحفوظة على الجهاز و التي تحتوي جميع بيانات الاتصال , و بعد أغلاق الاتصال يتم تحرير هذه الذاكرة , و لكن لم يمر على أي اتصال في هذه الحالة , لا اعلم السبب بالتحديد و لكن أتوقع بأن العملية تتم بسرعة في يتمكن الامر من اعادة أي اتصال في هذه الحالة , طبعا هذا مجرد افتراضية .
 
و الأن سننتقل إلى السطر الخاص بالإعدادات الخاصة بالاتصال :
 

هذه العمود خاص بقوالب للاعدادات برتوكول TCP , تسطيع التحكم من خلالها بإعدادت البرتوكول , لعرض القوالب الموجودة في نظامك اكتب الامر التالي :
 
Get-NetTCPSetting | more

هذه الإعدادت تخص وقت الإستجابة (Network latency) و التعامل مع إزدحام الشبكة (congestion) و تخصيص وقت إنهاء الاتصال , هذا الموضوع سأفرد له موضوع كامل في المستقبل القريب ( أن شاء الله ) .
 
و العمود الأخير و هو OwingProcess و هو معرف العملية (Process Id) التي قامت بفتح المنفذ .

هذا المعرف سيمكنك من التعرف على البرنامج الذي قام بأنشاء الاتصال .


والأن بعدما تعرف على الأمر بشكل عام سنعرض بعض الأمثلة التي ستفيدك :
 
  • عرض الاتصالات بشكل تدريجيا
 
Get-NetTCPSetting | more

 
  •  عرض الاتصالات بحسب الحالة :
     
    Get-NetTCPSetting -state CloseWait 
    

    قائمة بالحالات الموجودة في PowerShell:
    1. Bound
    2. Closed
    3. CloseWait
    4. Closing
    5. DeleteTCB
    6. Established
    7. FinWait1
    8. FinWait2
    9. LastAck
    10. Listen
    11. SynReceived
    12. SynSent
    13. TimeWait 
     

    •  عرض الاتصالات بحسب معرف البرنامج (PID) :
     
     لنفترض أنك تريد أن تعرف الاتصالات التي تحصل من جهازك و البرنامج التي تستخدم هذه الاتصالات يوفر الأمر اختيار لعرض الاتصالات بحسب رقم معرف العملية (PID) :
     
    Get-NetTCPSetting -OwningProcess ProcessIDNumber 
    

    لكنني سوف اعطيك طريقة أعتقد بأنها أفضل بكثير من أنك تبحث بشكل يدوي على رقم المعرف , أنظر لها الأمر التالي:

     
    Get-Process -Id (Get-NetTCPConnection -State Established ).OwningProcess
    

    هنا سيعرض جميع البرامج التي تمتلك اتصالات في حالة اتصال (Established) , كما تستطيع تغير الحاله كما تريد كمثال التالي لعرض البرامج التي تتنظر الاتصال (Listen):
    Get-Process -Id (Get-NetTCPConnection -State Listen ).OwningProcess
    


     و الأن لنجعل الأمر اكثر تحديد و نحصل على الاتصالات الجارية (Established) على المنفذ 443 (HTTPS) :
     
    Get-Process -Id (Get-NetTCPConnection -State Established -RemotePort 443 ).OwningProcess
    


     و الأن لهذا المثال الذي سيظهر لك وقت بدأ الاتصالات في حالة Established و ترتيبه بحسب الوقت :
     
    Get-NetTCPConnection -State Established | Sort-Object CreationTime |Format-Table local*,remote*,State,CreationTime
    

    تراه هنا القوة و المرونة التي تعطيك لغة Powershell , تستطيع القيام بتعديل المخرجات بحسب ما تريده , يجب أن انبه على مشكلة في بعض المعطيات بهذا الأمر خاصة , في بعض الحالات لا يقوم النظام بتعديل القيمة الخاصة بوقت الإنشاء فتحصل على الوقت :
    1/1/1601 4:00:00 AM


    طبعا هنالك الأوامر الأبسط مثل تحديد عنوان أو منفذ كان محلي أو خارجي باستخدام هذه الأوامر :

    • Get-NetTCPConnection  -LocalPort 443 
    • Get-NetTCPConnection -LocalAddress 127.0.0.1
    • Get-NetTCPConnection -RemotePort 443
    •  Get-NetTCPConnection -RemoteAddress 8.8.8.8
     
    تستطيع أن تحدد مثل نوع الحالة مع المنفذ و العنوان :
     
    Get-NetTCPConnection -State Listen -LocalPort 139 -LocalAddress 127.0.0.1 -State Listen
    
     
    و الأن إلى المثال الأخير الذي سيطبع لك مسار البرنامج و معرف العملية و تاريخ الإنشاء مع المنفذ :

    Get-NetTCPConnection |Select-Object LocalPort,OwningProcess,CreationTime,@{name='ProcessName';expression={(Get-Process -Id $_.OwningProcess).Path}}
    
     
     
    و الأن إلى الأمر الخاص ببرتوكول UDP , طبعا هنالك اختلاف جوهري في التصميم ما بين برتوكول TCP و برتوكول UDP , كما لاحظت في برتوكول TCP فهنالك الكثير من الحالات و التحقق من بدأ الاتصال و عملية لبدأ الاتصال و أنهاءه , أما في برتوكول UDP فتم تصميمه بطريقة (Fire and Forget) , فالمرسل للبيانات يرسلها بدون الاهتمام بوصول البيانات و الطرف الثاني يكون في حالة واحده فقط و هي Listen  و الهدف من هذا هو السرعة لذا يستخدم في تطبيقات الوسائط عبر الانترنت .
     
    الأمر التالي يعرض لك المنافذ في وضعية Listen :
     
    Get-NetUDPEndpoint
     
    سترى هذا القائمة التي تظهر فقط العنوان و المنفذ المحلي :
     

     
     و الأن إلى الأمر الذي سيعرض لنا تاريخ الإنشاء ومعرف العملية للبرنامج ( PID ) :

    Get-NetUDPEndpoint  | select local*,CreationTime,OwningProcess
     
     و لمعرفة اسماء العمليات (PID) سنستخدم هذا الأمر :

    Get-Process -id (Get-NetUDPEndpoint).OwningProcess
     
     و الأن للمثال الأخير :
     
    Get-NetUDPEndpoint |Select-Object LocalPort,OwningProcess,CreationTime,@{name='ProcessName';expression={(Get-Process -Id $_.OwningProcess).Path}}
     
    هذه نسخة الأمر الخاصة UDP المشابه لذي استخدمناه في برتوكول TCP , سيتم طباعة تاريخ الإنشاء و مسار البرنامج و معرف العملية (PID) و المنفذ المحلي .
     
    و الأن في الختام أريد أن اجيب على سؤال تكرر في المدونة , وهو كيف أعرف من هذه المعطيات بأنه تم أختراق جهازي ؟ , الجواب مع تطور عمليات الأختراق اصبح الأمر ليس بالسهولة كما في كان في السابق , لكن قد يفيد في حالة أن المخترق يستخدم برنامج مستقل و قام بأنشاء خادم في جهازك يتصنت على أحد المنافذ , لكم ماذا لو كان المخترق محترفا و قام باستخدام ثغرة في احد البرامج الموجودة على جهازك , فعندما تقوم بالتدقيق فيظهر لك بأن البرنامج الذي يحاول الاتصال هو احد برامج المعروفة لديك , لذا فالتأكيد وجود أختراق لجهازك يتطلب أكثر من هذا الأمر , كما ان الكثير من برامج الاختراق تقوم بالاتصال بخوادم ويب (HTTPS) بدل أن تقوم بتنصت على منفذ على جهازك (Reverse Shell) كما أن البيانات المرسلة مشفرة فيصعب اعتراضها و تحليلها .
     

     
     
     

الأربعاء، 21 يوليو 2021

 بسم الله الرحمن الرحيم

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

حدث الكثير في عالم التكنولوجيا , اصبح الكثير مما كتبته يحتاج للتحديث و التطوير و هذا ما سأعمل عليه أن شاء الله تعالى

و أن شاء الله نعود افضل و نواصل في نشر العلم النافع

 

 

الجمعة، 30 أغسطس 2013

ملف مضغوط بحجم 4.2 كيلوبايت يحتوي على بيانات بحجم 43000 تيربايت

بسم الله الرحمن الرحيم

قد يبدو لك العنوان مستحيلاً و رائعا في نفس الوقت , حيث أن برنامج للضغط يعمل بهذه الكفاءة قد يوفر عليك الكثر من الوقت في نفل البيانات في الشبكة .
و لكن هذا الملف ليس من صنع برنامج ضغط خارق بل من صنع مخترقي الأنظمة للتعطيل النظام و برامج معينة (  برامج مكافحة الفيروسات في معظم الحالات ) .

  • كيف يعمل هذا الملف ؟
يكون مساحة الملف في الغالب صغيرة جداُ مما يصعب اكتشافه , ويحتوي على كمية من البيانات العديمة النفع و ذلك للاستهلاك موارد النظام عند فك الملف .


  • كيف يؤثر هذا الملف على برنامج حماية الفيروسات ؟
 
كجزء من اساليب الحماية يقوم معظم برامج الحماية الحديثة بمسح الملفات الجديدة في النظام بشكل ألي للبحث عن الفيروسات , و بالنسبة للملفات المضغوطة يتم أولا فك ضغط الملف و في حالة الملف المحتوي على الثغرة سوف يتم استهلاك مساحة القرص الصلب و حدوث انهيار للنظام .


  • كيف يمكن ان يحتوي ملف بهذا المساحة على هذه الكميات من البيانات ؟
لفهم هذا اللغز لابد لك من فهم كيفية عمل خوازمية الضغط المستخدمة في ملفات (zip) , و لنبدأ بسلسلة البيانات التالية كمثال عن البيانات الغير مضغوطة :

AAAAABBBBCCCCBAAAA

تلاحظ بأن هنالك تكرار للأحرف بشكل كبير مما يؤدي لزيادة طول السلسلة ,  و لكن ماذا لو قمنا بأعادة كتابة سلسلة الحرف A في بداية السلسلة من (AAAAA) إلى (5A) حيث يرمز العدد في أول السلسلة لتكرار القيمة يليه القيمة المكررة , و الأن لنعد كتابة السلسلة السابقة باستخدام هذه الخوازمية :

5A4B4C1B4A

تلاحظ هنا حدوث تطلق لطول السلسلة بعد تطبيق الخوازمية , و الأن بعد أن أصبحت لديك فكرة عن عمل الخوازمية الخاصة ببرنامج الضغط , لنفترض بأننا قمنا بأرسال سلسلة نصية تتكون من الحرف A بطول 10000 سيكون تمثيلها بعد تطبيق خوازمية الضغط عليها كالتالي :
 10000A

تلاحظ هنا فعالية خوازمية الضغط في حالة كان الملف يتكون من سلسلة ضخمة من نفس القيمة , مما يكون عديم النفع للمستخدم العادي و لكن ليس للمخترق , حيث يقوم بأرسال كمية هائلة من البيانات التي تتكون من نفس القيمة ( صفر في العادة ) لبرنامج الضغط لتكوين ملف مضغوط مشبوه .


  • هل زال هذا الملف يشكل خطراً على برامج حماية الفيروسات ؟
معظم برامج الحماية الحديثة تقوم بالتعرف على هذا النوع من الملفات مباشرة و تتجنب فتحها .

  • هل يوجد مثال على هذا النوع من الملفات ؟
يوجد مثال عملي على الموقع http://www.unforgettable.dk , و الملف الموجود في هذا الموقع تم تصميمه بتضمين العديد من الملفات المضغوطة معاُ مما يزيد من فعاليته في ايقاف عمل برنامج الحماية من الفيروسات .

ملا حظة : تم تزويد الملف الموجود في الموقع بكلمة سر لمنع برنامج الحماية من الفيروسات من فتحه .

  • المصادر :
  1. http://en.wikipedia.org/wiki/Decompression_bomb
  2. http://research.swtch.com/zip
  3. http://www.steike.com/code/useless/zip-file-quine

الأربعاء، 3 يوليو 2013

المقارنة بين محتويات مجلدين في لينكس

بسم الله الرحمن الرحيم

يتواجد في نظام لينكس الأمر diff الذي يستخدم للمقارنة بين ملفين نصين و طباعة السطور المختلفة بين الملفين كالتالي :
diff 1.txt 2.txt

و في مثالنا لنفترض بأن الملف الأول 1.txt يحتوي على خمس أسطر و كل سطر يحتوي على الأعداد من 1 إلى 5 و الملف الثاني يحتوي على الأعداد من 1 إلى 6 :



و من الممكن أستخدام الأمر diff للمقارنة بين الملفات الموجودة في مجلدين مختلفين و طباعة الأختلاف بينهما بأستخدام الأمر التالي:

diff -rq 1/ 2/

يقوم هذا الأمر بالمقارنة بين المجلدين بواسطة أسماء الملفات الموجودة في كليهما بأستخدام إسم الملف و المحتوى , و هذه مثال عن تنفيذ هذا الأمر :

لماذا لا يوجد في نظام لينكس برنامج إلغاء التجزئة ؟

بسم الله الرحمن الرحيم

أذا كنت من مستخدمي نظام ويندوز المخضرمين فلا بد أنك تعاملت مع برنامج إلغاء التجزئة لزيادة سرعة و إنتاجية القرص الصلب :




لكي تفهم ما فائدة هذا البرنامج , يجب أن تفهم بأن نظام التشغيل يقوم بتقسيم القرص الصلب إلى واحدت محدودة المساحة , مشابهه بأدراج حفظ الملفات.
 و في أغلبية الأحيان فأن أي ملف سيشغل أكثر من درج , و من المنظور المنطقي فأن كلما كانت الأدراج متقاربة  و متسلسلة زادت سرعة الوصول للملف و العكس صحيح .

 و الأن لنشبه نظام الملفات في ويندوز بموظف يفتقر لمهارة التنظيم حيث يقوم بأخلاء الأدراج في حالة حذف الملف , و يقوم بتقسيم أجزاء الملفات الجديدة على أي درج خالي بغض النظر عن ترتيب الأدراج و المسافة بينهما, مما يؤدي تقسم الملف و بطأ الوصول للملفات و يستدعي أستخدام برنامج إلغاء التجزئة .

أما بالنسبة لنظام  الملفات في لينكس فسوف أشبه بموظف أكثر تنظيماُ يقوم بالبحث عن أفضل سلسلة من اﻷدراج و الأكثر تقارباً مما يسرع عملية الوصول للملف .

السبت، 22 يونيو 2013

مشكلة العام 2038

بسم الله الرحمن الرحيم


  • ما هي مشكلة العام 2038 ؟

التاريخ الذي يتم عرضه في أنظمة التشغيل التي هو عبارة عن عدد الثواني منذ التاريخ 1 يناير 1970 , و يتم أستخدام رقم ثنائي بطول 32 بت يمثل عدد عشري مع الأشارة (singed number ) , و المشكلة بأن قدرة هذه العدد الثنائي على تمثيل الأعداد العشرية محدودة و سوف يصل إلى القيمة القصوى له بتاريخ 19 يناير 2038 .


هذه الصورة تمثل ماذا سيحصل في تاريخ 19 يناير 2038 , حيث أن العدد الثنائي سوف يعرض قيمة سالبة لعدد الثواني مما يؤدي لحدوث خطأ في النظام و من الممكن توقف النظام .

  • الحل 
عرض المبرمجون العديد من الحلول المختلفة للمشكلة مثل :

  1. استخدام عدد بدون الأشارة (unsigned number) مما يسمح للرقم بتمثل الأعداد الموجبة فقط , كما سيسمح بمثل مدى أقصى للأعداد .
  2. أستخدام عدد ثنائي بطول 64 بت بدل العدد الثنائي المستخدم في الأنظمة الحالية .

الثلاثاء، 9 أبريل 2013

مقدمة في لغة awk

بسم الله الرحمن الرحيم




كتيب من تأليفي عن لغة awk يحتوي معلومات مبسطة عن هذه اللغة و استخدمتها بالأمثلة العملية .


الاثنين، 1 أبريل 2013

كذبة إبريل : Google nose

أعلن محرك البحث Google على خدمة جديدة و هي Google nose و هذه الخدمة متخصص في البحث عن الروائح



بكل بساطة أدخل الرابط و أختر الرائحة لكي يتم عرضها لك بواسطة موجات الصوت الصادرة عن جهازك التي ستكون أيونات الرائحة .


أذا صدقت هذا الخبر فأعلم بأنك وقعت لمقلب من قبل مبرمجي قوقل فالتقليد المعروف لدى الأجانب بكذبة أبريل (April fools).

* للذين يقومون بتقليد الأجانب في هذه العادة تذكر حديث الرسول صلى الله عليه وسلم: "ويل للذي يحدث، فيكذب ليضحك به القوم، ويل له، ثم ويل له"

الثلاثاء، 11 ديسمبر 2012

برمجة الألعاب مباشرة على الأي باد (ipad)

يتطلب تطوير البرامج لجهاز ipad حصولك على جهاز apple ماكنتوش و تسجيل حساب في موقع المطورون الخاص بشركة أبل , ثم رفع البرنامج لمتجر أبل و أنتظر الموافقة على البرنامج . 

هذه الخطوات يمكن أختصارها بالبرمجة مباشرة على ipad بأستخدام برنامج codea ( المعروف سابقاً بأسم codify) .

البرنامج يستخدم لغة lua للبرمجة , و يتميز بالعديد من الخصائص مثل الأكمال التلقائي و العديد من الخصائص الرائعة , و في النهاية هذا فيديو للبرنامج و رابط التنزيل لمتجر أبل