‏إظهار الرسائل ذات التسميات البرمجة. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات البرمجة. إظهار كافة الرسائل
الثلاثاء، 29 أكتوبر 2013
كتابان لتعلم الهندسة العكسية

السلام عليكم و رحمة الله
اليوم ان شاء الله سأقدم كتابان يتطرقان للهندسة العكسية

الهندسة العكسية هي فن مراقبة تصرف البرنامج الهدف منها كسر حمايته
لها عدة أهداف ، كتوليد كراكات و باتشات بما يعود على شركات و مبرمجين بخسائر مادية ، تمكن أيضا من اكتشاف ثغرات كال xbuffer overflow التي تمكن من اختراق النظام كاملا ...
طبعا لا تأخذوا الأمر بسلبية ، فمن ايجابياتها أنه اذا كان المبرمج يجيد الهندسة العكسية فسيبني ليس فقط برنامجا قويا بل آمنا على النظام أيضا . و كذلك كشف بعض البرامج التجسسية (كشفت برامج بها ملفات خبيتة لعل أشهرها real player ) ، و لعل من أخير الأمثلة ، توظيف الهندسة العكسية على فايروس stuxnet الذي استخدمته الولايات المتحدة الأمريكية لمهاجمة المفاعلات النووية الايرانية ، فقد تمكن خبراء أمنيون (مهندسون عكسيون) من تحليل الفايروس باستخدام الهندسة العكسية للوصول لأكواد سي ++ الفايروس ،و بالتالي أصبح من الممكن تطوير الفايروس ليصبح أكثر فتكا ...
الهندسة العكسية تكون بثلاث طرق ، white box أو grey box أو black box ، الصندوق الأبيض و هو عند تحليل برنامج مفتوح المصدر ، و الصندوق الأسود و هو عند عدم توافر الشفرة المصدرية ، حيث نظطر لاستخدام برامج كال  ..... كل هذا و أكثر في الكتب المرفقة
الخميس، 17 أكتوبر 2013
كتاب لاختبار الاختراق بلغة بايثون

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

الآن مع التحميل : انقر هنا
كتاب لتعلم البرمجة بلغة بايثون (نسخة عربية و فرنسية)

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


الآن مع روابط التحميل
كتاب لتعلم البرمجة بلغة C++

السلام عليكم و رحمة الله 
كما هو ظاهر من العنوان ، اليوم سأضع بين أيديكم كتاب رائع لتعلم أساسيات البرمجة بالغة سي ++ 
لغة سي ++ هي نسخة منقحة من لغة السي و ال ++ تعني الزيادة (incrementation) في البرمجة 
لغة السي من أقوى اللغات ن لكونها تتعامل بديناميكية مع الهاردوير ، كما قد بنيت عليها عدة لغات برمجية كجافا و بي اتش بي ، كما أن أنظمة التشغيل تعتمد عليها (للتعامل مع الهاردوير خصوصا) و خير مثال كيرنل نظام التشغيل جنو/لينكس . كما أن سي ++ تتعامل مع عدة مكتبات مهمة ك Qt و GTK
الكتاب رائع جدا و ينطلق معك من الصفر تدريجيا حتى مستوى متقدم
الآن أترككم مع رابط التحميل : انقر هنا للتحميل
الثلاثاء، 17 سبتمبر 2013
بدايتك للدخول في عالم برمجة الويب

السلام عليكم و رحمة الله
اليوم ان شاء سأوضح لك الطريق الى برمجة الويب ، لن نتعامل مع أكواد برمجية لكن سأوضح لك ما عمل كل لغة في الموقع ، لتتوضح لك الرؤية ، فللأسف الفرق بين المبرمج العربي و الأجنبي هو أن العربي تعلم لغة لأنه رأي أن كثيرون يتقنونها دون أن يحدد ما يريده بالظبط و لا سييحتاج اللغة ،و كما هو موضح في العنوان لن نتطرقة الى كل اللغات بل الى لغات الويب فقط
أولا لنأخذ أي صفحة ويب ، و لتكن صفحة الفايسبوك
1-كما ترون الصفحة بها حقول للكتابة ، و رابط ، و صور ، و نصوص ... ، و هذا ما نسيمه بهيكل الصفحة ، أي أنه هو الأساس ، و لادخال هذه الأشياء (الصور و الراوبط و النصوص ...) سنحتاج الى لغة هيكلة و التي هي ال html .
ال  لغة هيكلة و ليست لغة برمجة لأنه ليس بها دوال و بارامترات ... ، المهم ال html هي لادراج الأشياء في الصفحة لا غير
2-هنالك من سيقول لي ، ان أدرجت الأشياء في الصفحة (الجداول و الصور ...) فهذا كل شئ ، أقول لك لا ، لأنه بادراج الأشياء لا نتحكم فيها ، مثلا كالعرض و و المحاذاة و الارتفاع ...، و لأوضح أهمية ما أقوله ، سآخد نفس الصفحة لكن من دون تزيين

نعم ، هكذا ستبدو صفحاتكم من دون تزيين (يمكن التحكم في بعض الخصائص من ال  لكنها محدودة و أغلبها في النسخ القديمة أي أنها ألغيت رغم أنها ما زالت شغالة في الكثير من المتصفحات)
اذا نحتاج للغة تزيين ، اذا نحن في حاجة ل css ، و مرة أخرى ال css ليست لغة برمجة بل لغة تزيين فقط و هي فقط مكملة للغة الهيكلة html ، (يمكن قيام بها أشياء أخرى بها فمثلا توجد واجهة على لينكس اسمها cinnamon تمت برمجتها ب css)
3-هل هذا كل شئ ؟ ممكن ، لكن لصفحات احترافية ستحتاج لأن تتفاعل الصفحة مع المستخدم ، و سنبقى في نفس الصفحة(facebook) ، لأوضح معنى تفاعل الصفحة

لاحظ أنه عندما ضغطت على زر في أعلى الصفحة ظهرت قائمة لم تكن موجودة في الصفحة دون اعادة تحميل الصفحة ، أي أنه ظهرت قائمة بلغة الهيكلة html و مزينة بال css ، لكنها لم تكن موجودة الا عند الضغط و ستختفي مرة أخرى عند الضغط مرة ثانية
لاحظ أيضا أنها قد أخبرتني بوصول رسالة لم تكن موجودة من قبل و دون تحميل الصفحة , نفس الشيئ بالنسبة للأصدقاء المتصلين و ما الى ذلك ...
ما يحدث هنا هو أنه توجد لغة تجمع بين ال html و ال css و لاتنفذ الا عند حدوث شئ معين أو وقت معين ، أي أنها تنتظر حدثا (كالضغط مثلا) لتقوم بعمل ما (اظهار القائمة مثلا) ، توجد العديد من اللغات تقوم بهذا العمل لكن أشهرها هي javascript , كما يمكنك القيام بنفس الشيئ بمكتبات مشتقة من ال javascript نفسها و لعل أشهرها ال jQuery و ال MooTools
أريد أن أشير لشيئ آخر هو أن الرسائل يتم جلبها من قاعدة البيانات أولا ، ثم اظهارها بالجافاسكريبت هذه التقنية تسمى بالأجاكس ، و هي تعتمد على الجافاسكريبت ، كما توجد دوال في الجيكويري تسهل الأجاكس
4- هل صفحتنا الآن كاملة ؟ أكيد ، لكن لم ننته بعد ، فأين الايميلات و الباسوردات و الرسائل و البوستات ... انها في قاعدة البيانات :) ، أي أننا سنحتاج لقاعدة بيانات ، أها ، يوجد الكثير منها و لعل أشهرها ال mysql و ال mysqli ، و هي التي بها جداول مقسمة على صفوف و أعمدة ، و هي التي تحتفظ و تنظم كلمات المرور و الرسائل و البوستات ... اذن سنحتاج لتعلم ال mysql أو ال oracle أو ال mysqli
5-هل انتهينا ؟ لا ، لكن هذا آخر شيئ أعدكم ، الآن لدينا الصفحة ، و قاعدة البيانات ، كيف سنأخذ ما في الصفحة و نقارنه ما في قاعدة البيانات و نجلب ما في قاعدة البيانات و نعرضه في الصفحة ...؟
في هذه الحالة سنحتاج لاحدى اللغات البرمجية التي تتعامل مع صفحات الويب و قواعد البيانات ، و أشهر لغة ويب هي ال php ، اذن ستحتاج للغة ال  لتأخد المدخلات من الصفحة (الرسائل ، كلمات المرور ...) لتدخلها الى قاعدة البيانات و العكس ، كما ستتحق من المدخلات ، أي مطابقة كلمات المرور ، و كذلك هل تم تسجيل الدخول ، و كذلك عدم وجود استعلامات لاختراق قاعدة البيانات ...
الآن انتهينا :) ، ان فهمت هذه الأشياء و أتقنتها فعند ذلك يمكنك القول أنك مبرمج ويب
الى هنا تنتهي تدوينتي ، انتظروني في درس آخر
السبت، 14 سبتمبر 2013
برمجة : تعلمت الأساسيات و لا زلت غير قادر على بناء برامج ؟

أن تتعلم أساسيات لغة برمجية ما و أن لا تتمكن من بناء برنامج لأمر طبيعي (يمكن بناء برامج لكن ستكون ضعيفة و امكانياتها محدودة) ، و هذا راجع لكون أي لغة برمجة مقسمة إلى قسمين أساسيين : الأساسيات و المكتبات .
1 : الأساسيات و هي طريقة كتابة اللغة (syntax) و قواعدها أي كيفية انشاء المتغيرات و الدوال و تمرير البارامترات و الحلقات التكرارية و الشروط ... ان فهمت هذه الأشياء جيدا فقد قطعت شوطا كبيرا لكنك لا زلت غير قادر على بناء برامج ، لأنك ما زلت بحاجة للقسم الثاني (المكتبات).
2 : المكتبات ، هذا القسم لا يمكن لأي شخص في العالم أن يعرف المكتبات كلها للغة برمجية ما ، حتى صانع اللغة نفسه ، لأنه مبرمجين و مطورين آخرين من يكتبون شفرات هذه المكتبات (صانع اللغة أيضا يكتب مكتبات) ، ما هي هذه المكتبات اذا ؟؟!!
المكتبات هي مجموعة من الكلاسات(classes) و الباكاجز (packages) و مجالات الأسماء (namespaces) و الدوال ... ، كتبها مبرمجون آخرون لتسهل علينا التعامل مع عدة أشياء ، كالشبكات و الواجهات الرسومية GUI و ملفات ال pdf و قواعد البيانات .....
اذا وجب عليك كمبرمج ، تعلم الأساسيات ثم تحديد البرنامج الذي تريد برمجته ، فان كان مثلا سيفتح ملفات و يغير محتواها و يحفظ ما فعله ، فعليك البحث عن مكتبات تتعامل مع الملفات و هكذا ، لكن تعلم كيفية التعامل مع هذه المكتابت لن يطول ، لأن الدوال و الكلاسات مبنية ما عليك الا معرفة البارامترات التي ستمررها للدوال و الكلاسات التي يجب أن ترثها ... و هذه أشياء تعلمتها في مرحلة الأساسيات 
كخلاصة ، يجب التركيز في مرحلة الأساسيات جيدا ، لأنها هي أهم مرحلة و هي الأصعب لأنك أنت من سيبني كل شيئ ، أما المرحلة الثانية فكل شيئ جاهز ما عليك سوى استدعاؤه و التعامل معه .