إعداد رأس Authorization يدويًا
ممكن كمان نضيف رأس Authorization يدويًا من غير ما ندي بيانات الاعتماد بشكل مباشر، زي كده:
وهنشوف نفس الاستجابة زي ما كانت، وبالتالي هنقدر نوصل للصفحة.
في التطبيقات الحديثة، بيتم استخدام نماذج تسجيل الدخول اللي بتعتمد على لغات البرمجة الخلفية زي PHP. النماذج دي بتستخدم طلبات POST عشان تتحقق من المستخدمين، وبعد كده بترجع كوكيز (ملفات تعريف الارتباط) عشان تحافظ على الجلسة.
معاملات GET
بعد تسجيل الدخول بنجاح، هتلاقي ميزة بتسمحلك تدخل نص معين، والصفحة هتعرض النتيجة المناسبة.
الصفحة بتجيب البيانات منين؟
لما بتدخل النص وتضغط على البحث، الصفحة ممكن تتواصل مع السيرفر عشان تجيب البيانات المطلوبة. عشان تتأكد من ده، افتح أدوات المطور في المتصفح (DevTools) وروح على تبويب Network باستخدام [CTRL+SHIFT+E].
قبل ما تدخل أي نص، اضغط على أيقونة سلة المهملات لمسح الطلبات القديمة ومتابعة الجديدة بس (جرب علي موقع hiddenlockteam.com).
ملاحظة الطلبات الجديدة
لما تضغط على بحث، هتشوف طلب جديد بيتبعت للسيرفر، بيكون موجه لملف معين زي search.php (مش شرط يظهر امتداد الملف) مع معاملات GET في الرابط. المعاملات دي بتكون في صيغة:
?search=الكلمة
ده بيوضح إن الصفحة بتعتمد على طلب GET لجلب النتائج.
إرسال طلب GET باستخدام cURL
ممكن تبعت نفس الطلب باستخدام cURL بالشكل التالي:
الاستجابة هتكون النتيجة اللي السيرفر بيرجعها بناءً على النص اللي أدخلته.
نسخ طلب GET باستخدام المتصفح
المتصفح بيوفر خيار لنسخ الطلب بسهولة. كليك يمين على الطلب في تبويب Network واختار Copy > Copy as cURL. تقدر تلصق الأمر في التيرمينال وتنفيذه عشان تشوف نفس الاستجابة. كمان تقدر تستخدم Copy as Fetch وتنفذه من Console.
عرض تفاصيل الاستجابة
لما تنفذ الطلب، الاستجابة هتظهر بالكامل. تقدر تضغط عليها وتشوف تفاصيل كل جزء عشان تفهم أكتر ازاي السيرفر بيرد على الطلبات.
ممكن كمان نضيف رأس Authorization يدويًا من غير ما ندي بيانات الاعتماد بشكل مباشر، زي كده:
$ curl -H 'Authorization: Basic YWRtaW46YWRtaW4=' http://<SERVER_IP>:<PORT>/
وهنشوف نفس الاستجابة زي ما كانت، وبالتالي هنقدر نوصل للصفحة.
في التطبيقات الحديثة، بيتم استخدام نماذج تسجيل الدخول اللي بتعتمد على لغات البرمجة الخلفية زي PHP. النماذج دي بتستخدم طلبات POST عشان تتحقق من المستخدمين، وبعد كده بترجع كوكيز (ملفات تعريف الارتباط) عشان تحافظ على الجلسة.
معاملات GET
بعد تسجيل الدخول بنجاح، هتلاقي ميزة بتسمحلك تدخل نص معين، والصفحة هتعرض النتيجة المناسبة.
الصفحة بتجيب البيانات منين؟
لما بتدخل النص وتضغط على البحث، الصفحة ممكن تتواصل مع السيرفر عشان تجيب البيانات المطلوبة. عشان تتأكد من ده، افتح أدوات المطور في المتصفح (DevTools) وروح على تبويب Network باستخدام [CTRL+SHIFT+E].
قبل ما تدخل أي نص، اضغط على أيقونة سلة المهملات لمسح الطلبات القديمة ومتابعة الجديدة بس (جرب علي موقع hiddenlockteam.com).
ملاحظة الطلبات الجديدة
لما تضغط على بحث، هتشوف طلب جديد بيتبعت للسيرفر، بيكون موجه لملف معين زي search.php (مش شرط يظهر امتداد الملف) مع معاملات GET في الرابط. المعاملات دي بتكون في صيغة:
?search=الكلمة
ده بيوضح إن الصفحة بتعتمد على طلب GET لجلب النتائج.
إرسال طلب GET باستخدام cURL
ممكن تبعت نفس الطلب باستخدام cURL بالشكل التالي:
$ curl 'http://<SERVER_IP>:<PORT>/search.php?search=النص' -H 'Authorization: Basic YWRtaW46YWRtaW4='
الاستجابة هتكون النتيجة اللي السيرفر بيرجعها بناءً على النص اللي أدخلته.
نسخ طلب GET باستخدام المتصفح
المتصفح بيوفر خيار لنسخ الطلب بسهولة. كليك يمين على الطلب في تبويب Network واختار Copy > Copy as cURL. تقدر تلصق الأمر في التيرمينال وتنفيذه عشان تشوف نفس الاستجابة. كمان تقدر تستخدم Copy as Fetch وتنفذه من Console.
عرض تفاصيل الاستجابة
لما تنفذ الطلب، الاستجابة هتظهر بالكامل. تقدر تضغط عليها وتشوف تفاصيل كل جزء عشان تفهم أكتر ازاي السيرفر بيرد على الطلبات.
👍9❤🔥3❤3🔥2⚡1🏆1💘1
طلبات POST
في الجزء اللي فات، شفنا إزاي طلبات GET بتتستخدم في تطبيقات الويب عشان تعمل حاجات زي البحث أو الوصول لصفحات معينة. لكن لما تطبيقات الويب تحتاج تبعت ملفات أو تخلي بيانات المستخدم تبقى بعيد عن اللينك (URL)، بتستخدم طلبات POST.
الفرق بين GET وPOST هو إن GET بيحط البيانات اللي بتدخلها في اللينك اللي بتشوفه فوق في المتصفح، إنما POST بيخلي البيانات جوه جسم الطلب (HTTP Request body)، وده ليه ٣ مميزات:
1. مفيش تسجيل للبيانات (Logging): لأن طلبات POST ممكن تنقل ملفات كبيرة زي لما ترفع ملف على موقع، فمش عملي إن السيرفر يسجل كل البيانات دي في اللينك زي ما كان هيحصل لو استخدمت GET.
2. ترميز أقل (Less Encoding): اللينكات مصممة عشان تتشارك بسهولة، فلازم تكون مكتوبة بحروف معينة. بس POST بيخلي البيانات جوه جسم الطلب، فممكن تستخدم أي نوع بيانات حتى لو كانت صور أو ملفات، والترميز بيكون بس للفواصل بين البيانات.
3. تقدر تبعت بيانات أكتر: المتصفحات والخوادم بيحددوا حد أقصى لطول اللينك (URL)، وعادةً مش لازم تعدي 2000 حرف. لكن مع POST تقدر تبعت كميات أكبر من البيانات لأن الطول مش مشكلة زي GET.
نماذج تسجيل الدخول
لما نجرب ندخل علي صفحة باسم المستخدم admin وكلمة السر admin، بننجح في الدخول، وبيظهرلنا الصفحة.
لو مسحنا كل البيانات اللي في تبويب الشبكة (Network) في أدوات المطور في المتصفح وجربنا نسجل دخول تاني، هنلاقي طلبات كتير بتتبعت. نقدر نصفي الطلبات ونخليها بس اللي رايحة لخادم تطبيق الويب بتاعنا (يعني نستبعد الطلبات الخارجية)، وهنلاحظ طلب POST مبعوت بالشكل ده: web_requests_login_request
نقدر نضغط على الطلب ده، وبعدين نروح لتبويب Request عشان نشوف جسم الطلب (Body)، وبعد كده نضغط على زر Raw عشان نشوف البيانات اللي اتبعتت. هنلاقي البيانات المبعوتة شكلها كده:
username=admin&password=admin
دلوقتي معانا بيانات الطلب، نقدر نحاول نبعت طلب زي ده باستخدام cURL ونشوف هل هنقدر نسجل الدخول ولا لأ. زي ما عملنا قبل كده، ممكن نضغط كليك يمين على الطلب ونختار Copy>Copy as cURL. لكن مهم نتعلم إزاي نبني طلبات POST بإيدينا، فتعالوا نجرب نعمل كده.
هنستخدم الخيار -X POST عشان نبعت طلب POST. وبعدين نستخدم -d لإضافة البيانات اللي هنبعتها، زي المثال ده:
$ curl -X POST -d 'username=admin&password=admin' http://<SERVER_IP>:<PORT>/
<!DOCTYPE html>
<html lang="en">
<head>
...SNIP...
لما نبص على كود الـ HTML، مش هنلاقي كود نموذج تسجيل الدخول، لكن هنشوف كود الصفحة بعد التسجيل.
ملاحظة: في نماذج تسجيل دخول كتير، ممكن يحصل إعادة توجيه لصفحة تانية لما ندخل بنجاح (زي /dashboard.php). لو عاوزين نتابع إعادة التوجيه دي باستخدام cURL، ممكن نستخدم الخيار -L.
الكوكيز (Cookies) بعد تسجيل الدخول
لما بنسجل دخول بنجاح، المتصفح بياخد حاجة اسمها كوكيز عشان يفضل فاكر إننا متسجلين دخول. ده بيسهل علينا استخدام الموقع من غير ما ندخل بياناتنا كل مرة. ممكن نستخدم الأمر -v أو -i مع cURL عشان نشوف الاستجابة، وهنلاقي جزء فيها بيقول Set-Cookie مع الكوكي اللي بتثبت إننا متسجلين:
$ curl -X POST -d 'username=admin&password=admin' http://<SERVER_IP>:<PORT>/ -i
HTTP/1.1 200 OK
Date:
Server: Apache/2.4.41 (Ubuntu)
Set-Cookie: PHPSESSID=c1nsa6op7vtk7kdis7bcnbadf1; path=/
دلوقتي، عندنا الكوكيز اللي بتأكد إننا متسجلين دخول. ممكن نستخدمها بدل ما نكتب اسم المستخدم والباسورد كل مرة. نعمل ده باستخدام الخيار -b في cURL كده:
$ curl -b 'PHPSESSID=c1nsa6op7vtk7kdis7bcnbadf1' http://<SERVER_IP>:<PORT>/
هنلاقي إننا مسجلين دخول وبنوصل للبحث من غير ما نرجع نسجل تاني. كمان ممكن نستخدم الكوكي كـ Header بالطريقة دي:
$ curl -H 'Cookie: PHPSESSID=c1nsa6op7vtk7kdis7bcnbadf1' http://<SERVER_IP>:<PORT>/
لو جربنا بنفسنا في المتصفح، بنعمل Logout الأول ونرجع لصفحة تسجيل الدخول. بعدين نفتح أدوات المطور (DevTools) ونروح على علامة تبويب Storage باستخدام [SHIFT+F9]. بنشوف الكوكيز تحت Cookies ونختار موقعنا. لو مش مسجلين، الكوكي بتاع PHPSESSID مش هيكون فعال، وهنشوف صفحة تسجيل الدخول بدل البحث.
عشان نستخدم الكوكي اللي معانا، ممكن نغير قيمته أو نحذف كل الكوكيز ونعمل واحدة جديدة بالضغط على +. بنكتب اسم الكوكي PHPSESSID والقيمة c1nsa6op7vtk7kdis7bcnbadf1. بعد ما نحدث الصفحة، هنلاقي إننا مسجلين دخول من غير ما نكتب بيانات تاني.
بالتالي، وجود كوكي صالح ممكن يخليك تدخل تطبيقات ويب كتير من غير كلمة سر، وده بيستخدم في بعض الهجمات زي XSS (Cross-Site Scripting).
❤4🔥4👍3❤🔥1⚡1💘1
التعامل مع بيانات JSON
لما بنستخدم وظيفة البحث في الموقع، ممكن نتابع الطلبات اللي بتتبعت باستخدام أدوات المطور في المتصفح. بنروح على علامة تبويب الشبكة (Network) ونضغط على سلة المهملات لتفريغ الطلبات القديمة. بعد كده، بنعمل بحث بأي مدينة ونشوف الطلبات اللي اتبعتت.
هنلاقي إن الطلب بيتبعت كـ POST لملف اسمه search.php، والبيانات اللي بيتعامل معاها مكتوبة بالشكل ده:
{"search":"london"}البيانات دي مكتوبة بصيغة اسمها JSON، وعلشان الموقع يعرف يتعامل مع الصيغة دي، لازم يكون في رأس (Header) اسمه Content-Type متظبط على application/json. نقدر نتأكد من الكلام ده لو ضغطنا كليك يمين على الطلب واخترنا Copy>Copy Request Headers، وهنشوف معلومات الطلب زي كده:
Content-Type: application/json
Cookie: PHPSESSID=c1nsa6op7vtk7kdis7bcnbadf1
دلوقتي هنكرر نفس الطلب باستخدام cURL، بس هنضيف الرأس اللي بيحدد نوع المحتوى ورأس الكوكيز عشان نوصل للبحث من غير ما نسجل دخول تاني:
$ curl -X POST -d '{"search":"london"}' -b 'PHPSESSID=c1nsa6op7vtk7kdis7bcnbadf1' -H 'Content-Type: application/json' http://<SERVER_IP>:<PORT>/search.phpالنتيجة هتكون:
["London (UK)"]
كده إحنا قدرنا نوصل لنتيجة البحث بشكل مباشر ومن غير ما نستخدم واجهة الموقع. الطريقة دي مفيدة جدًا لو بنجري اختبارات أمان أو بندور على أخطاء برمجية، لأنها أسرع بكتير من التعامل مع الموقع بشكل يدوي.
🔥8👍4❤3⚡1❤🔥1💘1
CRUD API
شفنا في الأمثلة اللي فاتت تطبيق ويب للبحث عن المدن بيستخدم PHP parameters علشان يدور على اسم مدينة. في القسم ده، هنبص على إزاي تطبيق الويب ده ممكن يستخدم APIs علشان يعمل نفس الحاجة، وهنتعامل بشكل مباشر مع واجهة API endpoint.
الـ APIs
فيه أنواع كتير من الـ APIs. كتير منها بيستخدم للتعامل مع قواعد البيانات بحيث نقدر نحدد الجدول والسطر اللي عايزين نشتغل عليه في استعلام الـ API، وبعدين نستخدم طريقة HTTP المناسبة لتنفيذ العملية المطلوبة. على سبيل المثال، لو عندنا endpoint باسم api.php في المثال بتاعنا، وعايزين نعمل تحديث لجدول المدن (city table) في قاعدة البيانات، والسطر اللي هنحدثه هو المدينة اللي اسمها لندن، هيبقى الـ URL بالشكل ده:
curl -X PUT http://<SERVER_IP>:<PORT>/api.php/city/london
❤4👍4❤🔥1🔥1💘1
CRUD
زي ما شفنا، بسهولة نقدر نحدد الجدول والسطر اللي عايزين ننفذ عليه العملية باستخدام الـ APIs. بعد كده نقدر نستخدم طرق HTTP مختلفة لتنفيذ العمليات المطلوبة على السطر ده. بشكل عام، الـ APIs بتنفيذ أربع عمليات أساسية على الكيانات المطلوبة في قاعدة البيانات:
العمليات الأربعة اللي في الصورة هي الأساس في الـ CRUD APIs، وبتستخدم نفس الفكرة في REST APIs وأنواع تانية كتير من الـ APIs. طبعا مش كل الـ APIs بتشتغل بنفس الطريقة، والتحكم في صلاحيات المستخدم بيحدّد العمليات اللي نقدر ننفذها والنتائج اللي نقدر نشوفها.
❤5⚡1❤🔥1🔥1💘1
قراءة البيانات (Read)
أول حاجة بنعملها لما نتعامل مع API هي قراءة البيانات. زي ما اتكلمنا قبل كده، ممكن ببساطة نحدد اسم الجدول بعد رابط الـ API (زي /city) وبعد كده نحدد مصطلح البحث (زي /london) بالشكل ده:
مثال CRUD API:
النتيجة:
النتيجة بتيجي على شكل نص JSON. علشان نخلي الناتج متنسق في صيغة JSON بشكل مناسب، ممكن نوجه الإخراج إلى أداة jq، ونستخدم الخيار -s مع curl لتجنب أي إخراج غير ضروري، زي كده:
مثال CRUD API باستخدام jq:
النتيجة:
دلوقتي حصلنا على نتيجة منظمة وجميلة. كمان نقدر نحدد مصطلح بحث ونشوف كل النتائج المتطابقة:
مثال بحث متعدد:
النتيجة:
وأخيرًا، لو مررنا سلسلة فارغة، نقدر نسترجع كل البيانات الموجودة في الجدول:
استرجاع كل الإدخالات:
النتيجة:
أول حاجة بنعملها لما نتعامل مع API هي قراءة البيانات. زي ما اتكلمنا قبل كده، ممكن ببساطة نحدد اسم الجدول بعد رابط الـ API (زي /city) وبعد كده نحدد مصطلح البحث (زي /london) بالشكل ده:
مثال CRUD API:
$ curl http://<SERVER_IP>:<PORT>/api.php/city/london
النتيجة:
[{"city_name":"London","country_name":"(UK)"}]النتيجة بتيجي على شكل نص JSON. علشان نخلي الناتج متنسق في صيغة JSON بشكل مناسب، ممكن نوجه الإخراج إلى أداة jq، ونستخدم الخيار -s مع curl لتجنب أي إخراج غير ضروري، زي كده:
مثال CRUD API باستخدام jq:
$ curl -s http://<SERVER_IP>:<PORT>/api.php/city/london | jq
النتيجة:
[
{
"city_name": "London",
"country_name": "(UK)"
}
]
دلوقتي حصلنا على نتيجة منظمة وجميلة. كمان نقدر نحدد مصطلح بحث ونشوف كل النتائج المتطابقة:
مثال بحث متعدد:
$ curl -s http://<SERVER_IP>:<PORT>/api.php/city/le | jq
النتيجة:
[
{
"city_name": "Leeds",
"country_name": "(UK)"
},
{
"city_name": "Dudley",
"country_name": "(UK)"
},
{
"city_name": "Leicester",
"country_name": "(UK)"
},
...SNIP...
]
وأخيرًا، لو مررنا سلسلة فارغة، نقدر نسترجع كل البيانات الموجودة في الجدول:
استرجاع كل الإدخالات:
$ curl -s http://<SERVER_IP>:<PORT>/api.php/city/ | jq
النتيجة:
[
{
"city_name": "London",
"country_name": "(UK)"
},
{
"city_name": "Birmingham",
"country_name": "(UK)"
},
{
"city_name": "Leeds",
"country_name": "(UK)"
},
...SNIP...
]
❤7👍2🔥1😍1💘1
تحديث البيانات (Update)
دلوقتي بعد ما عرفنا إزاي نقرأ ونضيف بيانات باستخدام الـ APIs، خلينا نتكلم عن طريقتين لسه ما استخدمناهمش: PUT وDELETE. زي ما ذكرنا في الأول، PUT بتستخدم لتحديث الإدخالات وتعديل تفاصيلها، بينما DELETE بتستخدم لحذف كيان معين.
ملاحظة
طريقة PATCH ممكن تُستخدم بدل PUT لتحديث جزئي للبيانات (زي تعديل city_name بس)، أما PUT بتحدث كل البيانات. ممكن نستخدم OPTIONS علشان نعرف أي طريقة مدعومة من السيرفر. هنا، هنركز على PUT لأنها مشابهة جدًا في الاستخدام لـ POST.
استخدام PUT
لازم نحدد اسم الكيان اللي هنحدثه في الـ URL، غير كده الـ API مش هيعرف إيه اللي محتاج يتعدل. بنغير طريقة الطلب لـ PUT ونبعت البيانات بتنسيق JSON زي المثال ده:
مثال CRUD API:
$ curl -X PUT http://<SERVER_IP>:<PORT>/api.php/city/london -d '{"city_name":"New_Rabbit_City", "country_name":"Rabbit"}' -H 'Content-Type: application/json'هنا حددنا /city/london في الـ URL وبعتنا بيانات JSON فيها "city_name":"New_Rabbit_City". بعد التحديث، مدينة london مش هتبقى موجودة، وبدلها هيبقى فيه مدينة جديدة باسم New_Rabbit_City.
ملاحظة:
في بعض الـ APIs، ممكن تستخدم عملية التحديث لإنشاء إدخالات جديدة لو البيانات مش موجودة أصلا.
❤6❤🔥2👍1🔥1😍1💘1
حذف البيانات (DELETE)
أخيرا، خلينا نجرب نحذف مدينة، وهي عملية بسيطة زي قراءة المدينة. كل اللي علينا هو تحديد اسم المدينة في الـ API واستخدام طريقة طلب HTTP DELETE، كالتالي:
مثال CRUD API:
$ curl -X DELETE http://<SERVER_IP>:<PORT>/api.php/city/New_Rabbit_City
بعد كده، هنحاول نقرأ بيانات المدينة اللي حذفناها للتأكد إنها مش موجودة:
$ curl -s http://<SERVER_IP>:<PORT>/api.php/city/New_Rabbit_City | jq
النتيجة:
[]
زي ما شفنا، المحاولة لقراءة المدينة New_Rabbit_City بعد حذفها رجعت مصفوفة فاضية، يعني إن المدينة ما بقتش موجودة.
ملاحظة:
دلوقتي عرفنا نستخدم كل عمليات CRUD باستخدام cURL. في تطبيق ويب حقيقي، مش كل المستخدمين هيبقى ليهم صلاحية تعديل أو حذف البيانات. السماح للجميع بالتعديل أو الحذف بيُعتبر ثغرة أمنية. لازم يكون لكل مستخدم صلاحيات محددة لتحديد العمليات اللي يقدر يعملها. لتأكيد هوية المستخدم عند التعامل مع الـ API، بنستخدم ملفات تعريف ارتباط (cookies) أو ترويسات تصريح مثل JWT، زي ماشرحنا ف مقال قبل كدة.
و كده نكون شرحنا كل حاجة تقريبا في اداه cURL.
❤6❤🔥2👍2🔥1😍1💘1
بعد مافهمت طلبات الويب, دلوقتي هبدء اتكلم عن إزاي تتخطى مشكلة الخطا 403 (دي حاجه هتقابلك بالعبط و انت بتخترق موقع).
لو مش فاكر يعني إيه خطأ 403؟
لما يجي لك خطأ 403 وانت بتحاول تدخل على موقع، ده معناه إنك مش مسموح لك تدخل على الصفحة دي. بيكون ده إجراء أمني، لكن فيه إعدادات غلط ممكن تسمح للمهاجمين يتخطوا الحماية دي. لو إنت مختبر اختراق، لازم تعرف الحيل اللي بتساعدك تتجاوز القيود دي.
إيه أشهر أسباب الخطأ 403؟
1. حظر عناوين IP: بعض المواقع بتحظر الدخول لعناوين معينة.
2. تصفية حسب User-Agent: الموقع بيمنع الطلبات اللي شكلها جاي من أدوات معينة (زي أدوات الاختبار).
3. منع طرق HTTP معينة: زي لما الموقع يسمح باستخدام POST بس ويمنع GET.
4. أذونات ملفات غلط: بيكون فيه فايلات مش مسموح تتفتح بسبب إعدادات الأذونات.
إزاي نتجاوز الخطأ 403؟
1. تغيير الترويسات (Headers)
- غير الـ User-Agent اللي بتستخدمه، لأن الموقع ممكن يمنع أدوات زي Burp Suite او cURL.
- مثال باستخدام curl:
curl -A "Mozilla/5.0" http://example.com/secret/
2. جرّب طرق HTTP مختلفة
- جرب تستخدم طرق زي OPTIONS أو HEAD بدل الطرق العادية.
- مثال:
curl -X OPTIONS http://example.com/secret/
3. تشفير العناوين (URL Encoding)
- بدل ما تكتب /secret، اكتبها مشفرة كده %2Fsecret.
curl http://example.com/%2Fsecret/
4. استخدم رموز إضافية
- أحيانًا إضافة / أو . في آخر العنوان بتكسر الحماية.
- مثال:
http://example.com/secret/
http://example.com/secret..;/
http://example.com/secret.
5. تغيير الأحرف الكبيرة والصغيرة في العنوان
- بعض المواقع بتفرق بين الحروف الكبيرة والصغيرة في العنوان. لو غيرت الحروف، ممكن تتخطى الحظر.
- مثال:
http://example.com/SeCrEt/
6. استخدام Proxy او VPN
- لو الموقع حظر عنوان IP بتاعك، ممكن تستخدم بروكسي أو VPN عشان تغير الـ IP.
- مثال باستخدام proxychains:
proxychains curl http://example.com/secret/
7. تغيير ترويسة Host
- ممكن تغير ترويسة الـ Host في الطلب علشان تعدي قيود بتعتمد على اسم الاستضافة.
- مثال:
curl -H "Host: alternative.example.com" http://example.com/secret/
8. تخطي الأدلة (Directory Traversal)
- استخدم تقنية الانتقال بين المجلدات للوصول لحاجة المفروض تكون ممنوعة.
- مثال:
curl http://example.com/../secret/
9. تغيير ترويسة Referer
- بعض المواقع بتعتمد على الترويسة دي لتأكيد الطلب جاي منين. لو غيرتها بشكل مناسب، ممكن تعدي الحظر.
- مثال:
curl -H "Referer: http://example.com/" http://example.com/secret/
10. البحث عن نسخ احتياطية أو نقاط نهاية بديلة
- ممكن تلاقي نسخ احتياطية لملفات أو نهايات URL تانية مش محمية.
- مثال:
curl http://example.com/secret.bak
11. التبديل بين HTTP وHTTPS
- أحيانا الموقع بيبقى عامل قيود على واحد من البروتوكولين، ولو جربت تستخدم البروتوكول التاني ممكن تتخطى الحظر.
- مثال:
http://example.com/secret/
https://example.com/secret/
12. التجاوز باستخدام شبكات CDN أو التخزين المؤقت
- لو الموقع بيستخدم CDN، ممكن تلاقي نسخ مخزنة من صفحات محظورة لسه متاحة.
- مثال: جرب توصل للخادم الأصلي باستخدام عنوان IP بدل الدومين.
أدوات تساعدك في تخطي الخطأ 403 بشكل أوتوماتيكي
1. ffuf
- دي أداة بتعمل fuzzing، وده معناه إنها بتجرب مسارات كتيرة تلقائيًا.
- مثال:
ffuf -u http://example.com/FUZZ -w /path/to/wordlist.txt
2. Nmap
- استخدم سكريبت http-methods عشان تعرف الطرق اللي الخادم بيدعمها.
- مثال:
nmap --script http-methods -p80,443 example.com
لو في اداة من دول مش فاهمها كويس متقلقش هشرحهم قريب.
❤10❤🔥5👍4🔥2⚡1😍1💘1
شرح OSI Model
ال OSI Model هو اختصار لـ Open Systems Interconnection، وده عبارة عن نظام (أو موديل) اتعمل عشان يساعدنا نفهم إزاي الأجهزة في الشبكات بتتواصل مع بعضها.
تقدر تعتبره خارطة طريق بتشرح كل خطوة بتمر بيها البيانات لما تنتقل من جهاز لجهاز.
اتعمل ليه؟
1- تنظيم التواصل:
قبل ما يتعمل الـ OSI Model، كل شركة كانت بتعمل نظام خاص بيها للتواصل بين الأجهزة، وده كان عامل مشاكل كتير؛ الأجهزة من شركات مختلفة مش بتعرف "تتكلم مع بعض".
الـ OSI Model جه عشان يوحد الطريقة دي ويخلي كل الأجهزة تتفاهم مهما كانت الشركات اللي صنعتها.
2- تقسيم المهام:
تخيل لو البيانات اللي بتتنقل هي لعبة تركيب "Puzzle"، وكل جزء من اللعبة ليه دور معين. الموديل قسم العملية دي لـ 7 مستويات (Layers)، وكل مستوى بيعمل شغل معين.
3- سهولة الإصلاح والتطوير:
لما كل حاجة تكون متقسمة بشكل واضح، أي مشكلة تحصل هتعرف هي فين بالضبط. كمان لو عايزين نطوّر جزء معين، بنقدر نعمل كده من غير ما نبوّظ باقي النظام.
النموذج ده متقسم ل7 طبقات الطبقات دي زي ساندوتش، كل طبقة فوق التانية، وكل واحدة ليها دور معين. وهنمشي بالترتيب من تحت لفوق (يعني من الأساس لحد ما نوصل للمستخدم).
1. الطبقة الفيزيائية (Physical Layer)
دي أول طبقة في OSI Model، وبتتعامل مع الجزء الفيزيائي الملموس في الشبكة، زي الأسلاك، الإشارات، والأجهزة اللي بتوصل الشبكات ببعضها.
دور الطبقة الفيزيائية:
1. نقل البيانات كإشارات:
البيانات اللي بتكتبها أو بتستخدمها (زي الرسالة اللي بتقراها دلوقتي) بتتحول لإشارات (إما كهربائية أو ضوئية أو موجات راديو) عشان تتحرك من جهاز للتاني.
تخيلها زي الطريق اللي بتنقل فيه السيارات (البيانات هي العربيات، والطريق هو الـ Physical Layer).
2. الوسائط الناقلة:
الطبقة دي بتحدد إيه الوسيط المستخدم لنقل البيانات:
سلكي: زي كابلات Ethernet أو الألياف الضوئية.
لاسلكي: زي الواي فاي أو البلوتوث.
3. الإشارات:
مسؤولة عن تحويل البيانات لإشارات:
إشارات كهربائية: لما تستخدم كابلات نحاسية (Copper Cables).
إشارات ضوئية: لما تستخدم الألياف الضوئية (Fiber Optics).
موجات راديو: لما تتعامل مع الواي فاي.
4. سرعة النقل (Bandwidth):
بتحدد السرعة اللي البيانات تتحرك بيها (زي إنك تختار طريق سريع للعربيات أو طريق عادي).
وظائف الطبقة الفيزيائية:
التوصيل الفيزيائي: توصل الأجهزة ببعض فعليًا (كابلات، مودم، محولات).
الإرسال والاستقبال: تبعت الإشارات من جهاز وتستقبلها في جهاز تاني.
التشفير (Encoding): تحول البيانات الرقمية (0s و 1s) لإشارات يفهمها الكابل أو الشبكة.
تحديد السرعة: تحدد معدل نقل البيانات (مثل 100 Mbps أو 1 Gbps).
2. طبقة ربط البيانات (Data Link Layer)
وظائف الطبقة:
1. تجهيز البيانات:
بتقسم البيانات اللي جاية من الطبقة اللي فوقها (Network Layer) لقطع صغيرة اسمها Frames (الإطار).
كل Frame فيه جزء من البيانات ومعاه معلومات إضافية زي عناوين الأجهزة.
2. التأكد من صحة البيانات:
الطبقة دي بتضيف حاجة اسمها Error Detection (كشف الأخطاء) عشان تقدر تعرف لو البيانات اتبعتت بشكل صحيح أو لا.
لو حصلت مشكلة أثناء النقل، الجهاز يعيد إرسال الـ Frame المفقود.
3. تحديد الهوية:
كل جهاز في الشبكة عنده عنوان فريد اسمه MAC Address (زي البطاقة الشخصية للأجهزة)، والطبقة دي بتستخدمه عشان تعرف مين يبعت لمين.
4. تنظيم الوصول:
لو فيه أكتر من جهاز بيستخدم نفس الوسيط (زي كابل مشترك أو واي فاي)، الطبقة دي بتعمل نظام عشان البيانات ما تتصادمش (Collision).
تقسيم الطبقة:
الطبقة دي بتنقسم لجزئين:
1. Logical Link Control (LLC):
الجزء ده مسؤول عن التحكم في تدفق البيانات وكشف الأخطاء.
بيشتغل مع البروتوكولات اللي فوقه (زي IP).
2. Media Access Control (MAC):
الجزء ده مسؤول عن العناوين الفيزيائية (MAC Address) وتنظيم إرسال البيانات في الشبكة.
3. طبقة الشبكة (Network Layer)
وظائف Network Layer:
1. تحديد العناوين (Addressing):
الطبقة دي بتستخدم حاجة اسمها IP Address لتحديد مين اللي بيبعت البيانات ومين اللي هياخدها.
يعني كل جهاز على الشبكة لازم يكون عنده عنوان IP مميز.
2. التوجيه (Routing):
مسؤولة عن تحديد أفضل طريق تمشي فيه البيانات من المرسل للمستقبل.
لو فيه أكتر من طريق، الطبقة دي بتختار الأسرع أو الأفضل.
3. تقسيم البيانات (Packetizing):
الطبقة دي بتستلم Frames من الطبقة اللي فوق (Data Link Layer)، وتشتغل على إعادة تغليف البيانات.
4. نقل البيانات بين الشبكات المختلفة:
الطبقة دي بتسهل التواصل بين شبكات مختلفة (زي LAN وWAN) من خلال الـ Router.
❤6👍3⚡1🔥1👌1😐1🫡1
إزاي Network Layer بتشتغل؟
1- البيانات اللي جاية من الطبقة اللي تحت (Data Link Layer) بتتفك من الـ Frame وتتحول لـ Packets.
2- كل Packet بياخد عنوان IP للجهاز المرسل وعنوان IP للجهاز المستقبل.
3- الطبقة دي تحدد أفضل طريق للـ Packets بناءً على الشبكة.
4- لو الـ Packets محتاجة تعدي على أكتر من شبكة (مثلاً، راوترات مختلفة)، الطبقة دي بتساعدها توصل للهدف.
بروتوكولات Network Layer:
1. IP (Internet Protocol):
- البروتوكول الأساسي اللي بيشتغل في الطبقة دي.
- عندنا نوعين:
- IPv4: الشكل التقليدي (زي 192.168.1.1).
- IPv6: الشكل الأحدث والأطول.
2. ICMP (Internet Control Message Protocol):
- بيستخدم عشان يبلغ عن مشاكل زي لو فيه Packet ضاعت.
- أداة زي الـ Ping بتعتمد على البروتوكول ده.
3. ARP (Address Resolution Protocol):
- بيحول العناوين من IP Address لـ MAC Address لما يحتاج يوصل لجهاز معين.
باقي الشرح ف يوم تاني. 🫡
1- البيانات اللي جاية من الطبقة اللي تحت (Data Link Layer) بتتفك من الـ Frame وتتحول لـ Packets.
2- كل Packet بياخد عنوان IP للجهاز المرسل وعنوان IP للجهاز المستقبل.
3- الطبقة دي تحدد أفضل طريق للـ Packets بناءً على الشبكة.
4- لو الـ Packets محتاجة تعدي على أكتر من شبكة (مثلاً، راوترات مختلفة)، الطبقة دي بتساعدها توصل للهدف.
بروتوكولات Network Layer:
1. IP (Internet Protocol):
- البروتوكول الأساسي اللي بيشتغل في الطبقة دي.
- عندنا نوعين:
- IPv4: الشكل التقليدي (زي 192.168.1.1).
- IPv6: الشكل الأحدث والأطول.
2. ICMP (Internet Control Message Protocol):
- بيستخدم عشان يبلغ عن مشاكل زي لو فيه Packet ضاعت.
- أداة زي الـ Ping بتعتمد على البروتوكول ده.
3. ARP (Address Resolution Protocol):
- بيحول العناوين من IP Address لـ MAC Address لما يحتاج يوصل لجهاز معين.
باقي الشرح ف يوم تاني. 🫡
❤16👍2👌2⚡1🔥1🏆1💘1
طبقه Transport Layer
هي الطبقة الرابعة في OSI Model، ووظيفتها الأساسية هي نقل البيانات بين الأجهزة بشكل منظم وموثوق، بحيث تضمن وصولها للتطبيقات الصحيحة بدون أخطاء.
1. استلام البيانات من Network Layer:
الطبقة دي بتستقبل البيانات على هيئة Packets جاية من Network Layer.
كل Packet بيحتوي على IP Header وعليه عنوان المرسل والمستقبل.
ال Transport Layer بتفك الـ Packet وتستخرج Payload، وهي البيانات الفعلية اللي المفروض تتنقل.
2. إعادة تجميع البيانات (Reassembly):
لو البيانات متقسمة على أكتر من Packet، الطبقة دي تعيد ترتيبهم بالاعتماد على أرقام التسلسل (Sequence Numbers).
ده بيضمن إن البيانات توصل بالترتيب الصحيح بدون أي أجزاء ناقصة.
لو في Packet ضاع أثناء النقل، ممكن طلب إعادة الإرسال (Retransmission) لو البروتوكول المستخدم هو TCP.
3. التحقق من الأخطاء (Error Checking & Reliability):
لو البروتوكول المستخدم هو TCP، الطبقة دي بتأكد إن كل البيانات وصلت سليمة وبدون فقدان.
المرسل بيبعت Segments، والمستقبل يرد بإشعارات استلام (ACK - Acknowledgment).
لو المستقبل ما استلمش بيانات معينة، بيطلب إعادة إرسالها تلقائيًا.
أما لو البروتوكول هو UDP، البيانات بتتبعت بدون تأكيد استلام، وده بيخليها أسرع لكن أقل موثوقية.
4. تحديد التطبيق المستهدف (Multiplexing & Demultiplexing):
كل Segment بيكون عليه رقم منفذ (Port Number) عشان يحدد التطبيق اللي البيانات تخصه.
الطبقة دي بتقرأ رقم المنفذ وتمرر البيانات للتطبيق الصحيح في الجهاز.
أمثلة على أرقام المنافذ الشائعة:
80 → لمتصفح الإنترنت (HTTP).
443 → لتصفح الإنترنت الآمن (HTTPS).
25 → لإرسال الإيميلات (SMTP).
53 → لخدمة DNS.
طبقة Session Layer
هي الطبقة الخامسة في OSI Model، ومسؤولة عن إدارة الجلسات (Sessions) بين الأجهزة أثناء تبادل البيانات، بحيث تضمن استمرار الاتصال بين التطبيقات وإدارته بشكل منظم.
1. استلام البيانات من Transport Layer:
طبقة Transport Layer بتوصل البيانات على هيئة Segments جاهزة للنقل.
طبقة Session Layer تستلم البيانات وتبدأ في إدارة الجلسة اللي بتتم بين الأجهزة المتصلة.
2. إنشاء الجلسة (Session Establishment):
قبل ما يبدأ أي نقل للبيانات، Session Layer بتفتح جلسة اتصال بين المرسل والمستقبل.
بتضمن إن الاتصال بين الجهازين ثابت ومتاح قبل إرسال البيانات.
3. إدارة الجلسة (Session Maintenance):
الجلسة بتفضل مفتوحة أثناء نقل البيانات، والطبقة دي بتراقبها.
لو حصل انقطاع في الاتصال، الطبقة دي ممكن تعيد تشغيل الجلسة من آخر نقطة تم الإرسال منها.
4. إنهاء الجلسة (Session Termination):
بعد ما ينتهي تبادل البيانات، Session Layer بتقفل الجلسة عشان تحافظ على موارد الجهاز.
طبقة Presentation Layer
هي الطبقة السادسة في OSI Model، ووظيفتها الأساسية هي تجهيز البيانات بحيث تكون مفهومة للتطبيقات والمستخدم. بمعنى تهيئة البيانات لتكون قابلة للعرض أو المعالجة.
1. استلام البيانات من Session Layer:
طبقة Session Layer بتنظم الجلسة، لكن البيانات لسه مش بالضرورة في شكل مفهوم للتطبيقات.
هنا Presentation Layer بتاخد البيانات وتجهزها للتطبيق النهائي.
2. تحويل صيغة البيانات (Data Translation):
كل تطبيق أو نظام عنده طريقة مختلفة لتمثيل البيانات، والطبقة دي بتحول البيانات للصيغة المناسبة.
مثال:
نظام Windows يمثل النصوص بطريقة UTF-16.
نظام Linux ممكن يستخدم UTF-8.
طبقة Presentation Layer بتتأكد إن البيانات بتتحول من صيغة للتانية عشان يفهمها التطبيق أو الجهاز المستقبل.
3. الضغط (Data Compression):
أحيانا البيانات بتكون كبيرة جدا، فـ Presentation Layer بتضغطها عشان النقل يكون أسرع.
مثال:
الصور والفيديوهات بتتضغط باستخدام JPEG, MP4, GIF.
ملفات النصوص بتتضغط باستخدام ZIP, GZIP.
4. التشفير وفك التشفير (Encryption & Decryption):
الطبقة دي مسؤولة عن تشفير البيانات قبل إرسالها لحماية المعلومات.
لما البيانات توصل للجهاز المستقبل، Presentation Layer تفك التشفير عشان التطبيق يقدر يستخدمها.
مثال:
لما تبعت رسالة على واتساب، الطبقة دي بتشفرها بتقنية End-to-End Encryption.
لما الشخص التاني يستلم الرسالة، الطبقة دي تفك التشفير عشان يقدر يقراها.
طبقة Application Layer
هي الطبقة السابعة والأخيرة في OSI Model، وهي المسؤولة عن التفاعل المباشر بين المستخدم والتطبيقات. أي بيانات تمر من وإلى الشبكة، لازم تمر من خلال الطبقة دي في النهاية.
1. استلام البيانات من Presentation Layer:
بعد ما Presentation Layer تفك التشفير، تحول الصيغ، أو تفك الضغط، Application Layer تستلم البيانات الجاهزة للاستخدام.
البيانات في المرحلة دي بتكون مفهومة بالكامل للتطبيق والمستخدم.
👍5❤🔥4❤2⚡1🔥1👌1💘1
2. التفاعل مع المستخدم (User Interaction):
الطبقة دي بتمثل كل التطبيقات اللي بتتعامل مع الإنترنت والشبكات مباشرة.
أي شيء المستخدم بيشوفه أو بيتفاعل معاه على الشاشة بيتم معالجته هنا.
مثال:
المتصفح بيعرض صفحات الويب بعد استلام البيانات من الإنترنت.
واتساب بيعرض لك الرسائل بعد ما يتم فك التشفير.
3. إدارة البروتوكولات الخاصة بالتطبيقات (Application Protocols):
الطبقة دي بتستخدم بروتوكولات مختلفة حسب نوع البيانات والتطبيق.
أشهر البروتوكولات:
HTTP / HTTPS → تصفح الإنترنت.
SMTP / POP3 / IMAP → إرسال واستقبال الإيميلات.
FTP → نقل الملفات بين الأجهزة.
DNS → تحويل أسماء المواقع لعناوين IP.
VoIP → المكالمات الصوتية عبر الإنترنت.
4. إرسال البيانات إلى الشبكة:
لما المستخدم يبعت بيانات (زي رسالة واتساب أو تحميل صورة)، Application Layer تنسق البيانات وتجهزها للإرسال.
بعد كده البيانات تنزل للطبقات الأدنى (Presentation → Session → Transport → Network → Data Link → Physical) عشان تسافر للجهاز المستقبل.
بكده خلصنا شرح OSI Model بالكامل.
نلقاكم في مقال جديد. 🫡
الطبقة دي بتمثل كل التطبيقات اللي بتتعامل مع الإنترنت والشبكات مباشرة.
أي شيء المستخدم بيشوفه أو بيتفاعل معاه على الشاشة بيتم معالجته هنا.
مثال:
المتصفح بيعرض صفحات الويب بعد استلام البيانات من الإنترنت.
واتساب بيعرض لك الرسائل بعد ما يتم فك التشفير.
3. إدارة البروتوكولات الخاصة بالتطبيقات (Application Protocols):
الطبقة دي بتستخدم بروتوكولات مختلفة حسب نوع البيانات والتطبيق.
أشهر البروتوكولات:
HTTP / HTTPS → تصفح الإنترنت.
SMTP / POP3 / IMAP → إرسال واستقبال الإيميلات.
FTP → نقل الملفات بين الأجهزة.
DNS → تحويل أسماء المواقع لعناوين IP.
VoIP → المكالمات الصوتية عبر الإنترنت.
4. إرسال البيانات إلى الشبكة:
لما المستخدم يبعت بيانات (زي رسالة واتساب أو تحميل صورة)، Application Layer تنسق البيانات وتجهزها للإرسال.
بعد كده البيانات تنزل للطبقات الأدنى (Presentation → Session → Transport → Network → Data Link → Physical) عشان تسافر للجهاز المستقبل.
بكده خلصنا شرح OSI Model بالكامل.
نلقاكم في مقال جديد. 🫡
1👍9❤8❤🔥4🏆2⚡1💘1😘1
تعالى اقولك ليه الذكاء الاصطناعي مش هيعرف ياخد مكانك🤔
ليه الكل خايف من "الروبوتات"؟
سمعنا كلنا قصص الرعب: روبوتات بتاخد وظايف البشر، مكالمات خدمة عملاء بترد عليها "سيري"، وبرامج بتكتب أكواد بدل المبرمجين. الناس بدأت تتخيل إن الذكاء الاصطناعي هيكون مثلًا تيرميناتور بس بدل ما يبيد البشر، هيبيد وظايفهم! لكن قبل ما ترمي لابتوبك وتقرر تشتغل في زراعة المانجو، خلينا نفهم مع بعض: إيه اللي بيعمله الذكاء الاصطناعي بالظبط؟ وليه مش هينجح في إحلالنا (خصوصًا في مجالات الكمبيوتر)؟
الذكاء الاصطناعي مش ساحر، بس بيقلد كويس
الذكاء الاصطناعي زي الطالب اللي بيذاكر مليون كتاب في ثانية، وبيحاول يقلد اللي فهمه. مثلاً:
في البرمجة: بيقدر يكتب أكواد بناءً على أمثلة موجودة (زي "GitHub Copilot" اللي بيقولك: "أنا اقترح لك كود، بس لو اتشال داتابيز الشركة بالغلط، متلمنيش!
في السايبر سكيورتي: بيحلل الهجمات ويحاول يتنبأ بخطوات الهاكرز.
بس هنا المشكلة: الذكاء الاصطناعي بيعمل كل ده عن طريق "نماذج إحصائية" وبيانات قديمة. يعني لو قلتله: "اكتبلي برنامج يخلي الناس سعداء"، هيطلع لك كود فيه 300 خطأ، أو أسوأ... يُنشئ فيروسًا عن طريق الخطأ!
الذكاء الاصطناعي بيتبع أنماط هو متدرب عليها قبل كده وخلاص، من غير ما يفهم المعنى الجوهري وراها.
يعني لو قلتله "إزيك؟"، هيقول لك مثلا "أنا بخير"، بس هو رد كده لأنه عارف إن السؤال ده بيترد عليه كده مش بسبب فهمة للسؤال، وده بينطبق على أي حاجة بيعملها.
ليه الذكاء الاصطناعي مش هيسرق وظايفنا
١. البرمجة:
الذكاء الاصطناعي بيسرع كتابة الأكواد الروتينية، لكن:
لو طلبت منه يعمل برنامج معقد (مثلًا: نظام بنكي)، ممكن ينسى يضيف "الأمان" لأن بيانات التدريب مافيهاش حوادث قرصنة حديثة!
الأكواد اللي بيكتبها غالبًا بتكون "مسطحة" ومش قادرة تتعامل مع الحالات الاستثنائية (زي المستخدم اللي بيدخل اسمه "NULL" فيقوم البرنامج يمسح كل الحسابات!).
٢. السايبر سكيورتي: "الهاكرز بيعرفوا يخدعوا الآلة"
الذكاء الاصطناعي ممكن يكشف هجمات معروفة (مثل فيروسات الفدية)، لكن هاكرز مبدعين بيستخدموا طرق جديدة مبتكرة:
مثلا: يعدلوا شوية على كود خبيث عشان الآلة متعرفش إنه خطر.
البشر في السايبر سكيورتي لازم يكونوا أذكى من الآلة نفسها: يفكروا زي المجرمين، يبتكروا حلول غير تقليدية، ويتأقلموا مع تهديدات جديدة في ثواني.
ملحوظة: في فعلا انظمة زي IPS/IDS شغاله بالذكاء الاصطناعي، تقدر تحمي شركتك من الاختراق، بس لو انت ف المجال ف اكيد انت عارف انه بتغيرات بسيطه بيعمل عبيط و يسيبك تدخل.
الغلطة اللي تخليك تعيط... الالة ممكن تعملها بألف طريقة!
الذكاء الاصطناعي مافيهوش "حدس". مثلاً: ممكن يكتب كود يحمي الشركة من الهجمات، لكن في نفس الوقت يفتح باب خلفي علشان البيانات اللي اتدرب عليها كانت ناقصة.
الهاكرز اللي بيشتغلوا بالـ"أوف لاين"
الذكاء الاصطناعي بيعتمد على الإنترنت والبيانات السحابية. لو اتحط في موقف من غير نت (مثل سيرفر معزول)، هيبقى عاجز زي سمكة في الصحراء. أما البشر، فمستعدين يعملوا معجزات بورقة وقلم!
"مش فاهم السياق!"
الذكاء الاصطناعي ممكن يكتب كود لحل مشكلة رياضية، لكن لو طلبت منه يعدل الكود عشان يناسب قانون خصوصية بيانات جديد في الاتحاد الأوروبي، هيحتار. لأنه مافهمش إن "الGDPR" مش مجرد أربع حروف!
الذكاء الاصطناعي مبيعرفش يشتغل تحت الضغط
مش هتقدر تقول له: "يا معلم، الدنيا اتحرقت، احنا لازم نصلح السيرفر خلال 10 دقايق!" لأنه مش هيضغط، ولا هيعيط، ولا هيعمل "أوف تايم" من غير ما يطلب زيادة في الـRAM!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍5👏2😍2❤🔥1⚡1🔥1💘1
ندخل علي المهم إزاي تتفوق على الذكاء الاصطناعي؟ 👀
طور مهاراتك اللي ملهاش داتا!: زي الابداع، التفاوض، والتفكير النقدي.🧑🎓
اتعلم تتعامل مع الآلة: استخدم أدوات الذكاء الاصطناعي عشان توفر وقتك، وخصص وقتك انت للحاجات المعقدة.😵💫
كن "سوپر-هاكر": في السايبر سكيورتي، الهاكرز الأخلاقيين مطلوبين أكتر من أي وقت، لأنهم بيفكروا خارج الصندوق (الآلة مبتعرفش تعمل كده!).🔡
الذكاء الاصطناعي مش عدوك... هو مجرد "مساعد مزعج"🤯
الذكاء الاصطناعي زي ذلك الزميل الجديد في الشغل: بيحاول يساعد، لكن أحيانًا بيدمر كل حاجة. النقطة إنه ميقدرش ياخد مكانك طالما انت بتطور من نفسك. فبدل ما تخاف، خليك انت اللي تتعلم معاه. ولو يوما ما قرر يسيطر على العالم؟... دايما تقدر تشيل السلك من الكهرباء!😉
خلينا ايجابيين🔋
الذكاء الاصطناعي موجود علشان يخدمك، مش يخوفك. فاكتشف مجالك، اتعلم، وانسى أي حد يقولك إن الروبوتات هتاخد مكانك... إلا لو كنت بتشتغل في مصنع "برجر"!🍴 🤖
شوف ده علي السريع و روح ذاكر.🧑🎓 🚀
https://t.me/Bad_Rabbit_Team/5894
طور مهاراتك اللي ملهاش داتا!: زي الابداع، التفاوض، والتفكير النقدي.
اتعلم تتعامل مع الآلة: استخدم أدوات الذكاء الاصطناعي عشان توفر وقتك، وخصص وقتك انت للحاجات المعقدة.
كن "سوپر-هاكر": في السايبر سكيورتي، الهاكرز الأخلاقيين مطلوبين أكتر من أي وقت، لأنهم بيفكروا خارج الصندوق (الآلة مبتعرفش تعمل كده!).
الذكاء الاصطناعي مش عدوك... هو مجرد "مساعد مزعج"
الذكاء الاصطناعي زي ذلك الزميل الجديد في الشغل: بيحاول يساعد، لكن أحيانًا بيدمر كل حاجة. النقطة إنه ميقدرش ياخد مكانك طالما انت بتطور من نفسك. فبدل ما تخاف، خليك انت اللي تتعلم معاه. ولو يوما ما قرر يسيطر على العالم؟... دايما تقدر تشيل السلك من الكهرباء!
خلينا ايجابيين
الذكاء الاصطناعي موجود علشان يخدمك، مش يخوفك. فاكتشف مجالك، اتعلم، وانسى أي حد يقولك إن الروبوتات هتاخد مكانك... إلا لو كنت بتشتغل في مصنع "برجر"!
شوف ده علي السريع و روح ذاكر.
https://t.me/Bad_Rabbit_Team/5894
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍5😁3🐳2❤🔥1⚡1🔥1😍1💘1
مقال عن linux kernel💻
اللي هقوله ده كلام متعب اوي، مع انه ملخص بس هو طويل.
كل اللي ف الصورة فوق ده هو كلام عن linux kernel، تقدر توصله من اللينك ده و كل كلمه في الصوره، هي لينك بيوديك علي شرح ليها.
https://makelinux.github.io/kernel/map/
المقدمة:
الكيرنال هو المسؤول اللي بيوجه الأوامر لكل قطعة في الكمبيوتر. تخيل لو معندكش كيرنال:
الماوس هيقول: "أنا هتحرك من غير ما تطلب مني؟ لأ، أنا مستنيك تكتبلي إيميل!"
الكيبورد: "إنتا فاكرني أزرار؟ أنا هشغل YouTube على مزاجي!"
الشاشة: "هعرض لك صورة القطة بتاعتي بدل الفيديو اللي بتشوفه!"
لينوس تورفالدس...
في بداية التسعينات، كان فيه طالب فنلندي اسمه لينوس، كان بيدرس مادة أنظمة التشغيل، وملان من نظام "مينيكس" اللي كان بطيء. قال: "أنا ممكن أعمل نظام أحسن منه في الإجازة!"... وبعد ٣٠ سنة، النظام ده بقى أشهر ما في عالم السيرفرات!
الغريب إن لينوس ماكانش عاوز شهرة ولا نوبل، كان عاوز يتحدى نفسه، زي ما واحد بيقرر يبني "عجلة بتاعة حمام" من الـ Lego! النتيجة؟ كود مصدري مفتوح، أي حد يقدر يعدل عليه، يصلح، أو حتى يحط ميمز في الشفرة!
القرية اللي مافيهاش سرقة!
تخيل معايا إن الكيرنال قرية صغيرة اسمها "قرية لينوكس"، مافيش فيها سرقة… لكن فيها كتير من "الحرامية" اللي بيحاولوا يعطلوا النظام (أقصد الـ Bugs!). القرية فيها مجموعة من الناس كل واحد ليه دور معقد، لكنه بيقدمه بطريقة تخلينا نقول: "قد ايه الكيرنال جامد"
1. العمدة "السكيدولر": اللي بيوزع الوقت
العمدة ده اسمه Process Scheduler، وهو أهم شخص في القرية. وظيفته إنه يوزع وقت المعالج (CPU) على البرامج بطريقة عادلة.
لو البرامج قررت تتخانق:
العمدة بيقول: "سيب البرنامج ده يشتغل شوية، وبعدين ييجي التاني!"
لو البرامج اتخانقت:
العمدة بيستخدم خوارزميات زي "Round Robin" أو "CFS" عشان محدش يزعل. لو واحد بيقول: "أنا عاوز أشتغل طول اليوم!" العمدة بيرد: "إنتا مش لوحدك يا معلم، الناس كلها مفلسه!"
أسوأ كابوس للعمدة:
لو جه برنامج "CPU Hog" (زي لعبة بتاكل كل موارد الجهاز)، العمدة بيصيح: "انت ليه مش بتنام؟ روح نام يا بتاع الـ 100% usage!"
2. الريس "مانيجر الذاكرة":
الريس ده اسمه Memory Management، ووظيفته إنه يدور على أي "فراغ" في الرام (RAM) ويحجز مكان للبرامج الجديدة.
الريس وهو بيشتغل:
بتلاقيه بيسأل البرامج: "إنتا محتاج كام؟ 1GB؟ حاضر، هدلك على مكان نظيف!"
لكن لو الرام مليانه، بيبدأ في استخدام "الذاكرة التخيلية" (Swap Space) على الهارد، واللي بتكون أبطأ بـ 100 مرة.
مشكلة النسيان:
الريس أحيانًا بيصاب بمرض "Memory Leak"، وهو مرض بيخليه ينسى إنه يحرر المساحات اللي البرامج خلصت منها. النتيجة؟ الرام تمتلئ، والجهاز بيقول أنا نفسي أتنفس.
3. ال File System:
مدير الملفات، ووظيفته إنه ينظم تخزين الملفات عالهارد (Hard Disk) أو الـ SSD.
اللعبة المفضلة لمدير الملفات:
بيدور على أي "Block" فاضي ويحط فيه الملفات، وبيستخدم خدع زي "Journaling" عشان لو الكهرباء قطعت، الملفات متضيعش. لو مش بيستخدم Journaling، ممكن تلاقي ملفاتك ات...
مشكلة الملفات الضالة:
أحيانًا مدير الملفات بيحط ملف الصور في مكان ملفات النظام، فبتلاقي Windows بيقول: "أنا شوفت صورة القطة بتاعتك في system32!"
لو حبيت تكتب ملف نصي، هتلاقية بيقول: "أنا هخزن الحروف دي في الـ Block رقم 666… مافيش مشكلة؟"
4. السمكري "الدرايفرز": اللي بيصلح أي حاجة حتى لو كانت مكسورة من الأساس!
السمكري ده اسمه Device Drivers، وهو اللي بيترجم لغة الكيرنال لـ لغة الهاردوير.
السمكري في موقف صعب:
لو اشتريت ماوس جديد، السمكري بيقول: "أنا مالي بالـ USB اللي جابك؟ أنا درايفر الماوس القديم بس!" هنا بتضطر تبحث على درايفر جديد… والبحث بياخدك لموقع مليان "Download Now" مزيف!
5. البوستجى "نتورك ستاك": اللي بيوصل الرسايل بطيارة ورق!
البوستجى ده اسمه Network Stack، وهو المسؤول عن إرسال واستقبال البيانات من الإنترنت.
البروتوكولات اللي بيستخدمها:
TCP: بيقول للبيانات: "أنا هتأكد إنك توصل، ولو مكملتش، هبعتلك تاني!"
UDP: بيقول: "خليك راجل ووصل نفسك!"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18❤🔥3🤣3⚡1🔥1🏆1💘1
معركة العمالقة - "المونوليثيك" ضد "المايكروكيرنل"🧠
إيه الفرق بين "مونوليثيك" و"مايكروكيرنل"؟🤔
قبل ما ندخل في المعركة، لازم تعرف إن "المونوليثيك" و"المايكروكيرنل" دول هما فلسفتان مختلفتان لتصميم نواة النظام. الفرق بينهم زي الفرق بين:
مطعم فاست فود: كل حاجة في مكان واحد (الطبخ، التوصيل، الدفع)... ده المونوليثيك!
مطعم 5 نجوم: كل مهمة لها قسم خاص (الشيف في المطبخ، النادل في الصالة، المدير في المكتب)... ده المايكروكيرنل!
المشكلة إن المونوليثيك ممكن يوقع في كارثة لو الشيف اتعصب وقرر يضرب النار في المطبخ! أما المايكروكيرنل، فلو النادل تأخر، الزبون هيموت جوع قبل ما الأكلة توصل!😤
المونوليثيك:🥶
الكيرنال المونوليثيك (اللي هو كيرنال لينكس لينكس) بيجمع كل المهام الأساسية في مكان واحد داخل kernel space، يعني:
المميزات: سرعة فائقة (لأن مفيش حاجة بتتأخر في الانتقال بين المهام).😍
العيوب: لو جزء صغير اتعطل، النظام كله هينفجر.😰
المايكروكيرنل:👨💻
المايكروكيرنل (زي كيرنال "ماك" أو "ويندوز") بيشتغل بفلسفة "خلي البرامج تشتغل بره الكيرنال" في منطقة user space. يعني:
المميزات: لو جزء اتعطل، ممكن تقتله من غير ما النظام ينهار.
العيوب: البطء الشديد بسبب كثرة المراسلات بين المكونات.
المعركة: تانينباوم ضد تورفالدس...🤧
في أوائل التسعينات، حصلت مناظرة أسطورية بين أندرو تانينباوم (مخترع مينيكس ومؤيد للمايكروكيرنل) و لينوس تورفالدس (مخترع لينكس ومؤيد للمونوليثيك).
1. المونوليثيك:
كل خدمات النظام (الذاكرة، الملفات، الشبكات) شغالة في نفس المساحة.
التواصل بينهم سريع جدا.🚗
لكن لو واحد قرر يعمل segmentation fault، كل الخدمات هتموت معاه!
2. المايكروكيرنل:
الخدمات منفصلة في مساحات مختلفة.
التواصل بينهم بيحتاج رسائل (message passing)… والرسائل دي بتاخد وقت.🏪
لكن لو واحد اتعطل، تقدر تعمل له kill -9 من غير ما النظام ينهار.
لينكس اختار المونوليثيك... ليه؟ لأن "السرعة حلوه طبعا"!🔥
لينوس قرر يفضل مع المونوليثيك عشان:
السرعة: مفيش وقت يضيع في مراسلات بين المكونات.
السيطرة: الكيرنال بيقدر يتحكم في كل حاجة من غير ما يحتاج "إذن".
المرونة: تقدر تعدل على أي جزء من الكيرنال من غير ما تحطمه (طالما انتا فاهم إيه اللي بتعمله!).
الجمدان من الاخر.🚀
لكن المشكلة: لو درايفر الجرافيكس قرر يعمل kernel panic (بمعني خطأ كارثي)، هتلاقي الشاشة السوداء!🗿
المايكروكيرنل: ليه ماحدش بيحبه غير "آبل" و"مايكروسوفت"؟🚽
الشركات الكبيرة (زي ماك وويندوز) بتحب المايكروكيرنل عشان:
الأمان: لو هكر اخترق جزء من النظام، مش هيقدر يوصل للكيرنال بسهولة.
الثبات: جزء من النظام ممكن يقع من غير ما يوقع الباقي.
السيطرة: الشركة تقدر تتحكم في التحديثات من غير ما تتدخل في الكيرنال.
لكن المستخدمين بيشتكوا دايما من:
التحديثات اللي بتاخد 10 سنين: عشان كل جزء ليه تحديث منفصل!
الـ "الشاشة الزقاء": اللي بتظهر لما المايكروكيرنل نفسه يقرر ينهار!
خلاصه المنافسه: مفيش فائز مطلق... بس فيه كيرنال أقوى من التايتنك!
المونوليثيك والمايكروكيرنل الاتنين ليهم مميزات وعيوب، لكن لينكس أثبت إن المونوليثيك ممكن يكون سريع ومرن لو اتعمل بطريقة صح.
إيه الفرق بين "مونوليثيك" و"مايكروكيرنل"؟
قبل ما ندخل في المعركة، لازم تعرف إن "المونوليثيك" و"المايكروكيرنل" دول هما فلسفتان مختلفتان لتصميم نواة النظام. الفرق بينهم زي الفرق بين:
مطعم فاست فود: كل حاجة في مكان واحد (الطبخ، التوصيل، الدفع)... ده المونوليثيك!
مطعم 5 نجوم: كل مهمة لها قسم خاص (الشيف في المطبخ، النادل في الصالة، المدير في المكتب)... ده المايكروكيرنل!
المشكلة إن المونوليثيك ممكن يوقع في كارثة لو الشيف اتعصب وقرر يضرب النار في المطبخ! أما المايكروكيرنل، فلو النادل تأخر، الزبون هيموت جوع قبل ما الأكلة توصل!
المونوليثيك:
الكيرنال المونوليثيك (اللي هو كيرنال لينكس لينكس) بيجمع كل المهام الأساسية في مكان واحد داخل kernel space، يعني:
المميزات: سرعة فائقة (لأن مفيش حاجة بتتأخر في الانتقال بين المهام).
العيوب: لو جزء صغير اتعطل، النظام كله هينفجر.
المايكروكيرنل:
المايكروكيرنل (زي كيرنال "ماك" أو "ويندوز") بيشتغل بفلسفة "خلي البرامج تشتغل بره الكيرنال" في منطقة user space. يعني:
المميزات: لو جزء اتعطل، ممكن تقتله من غير ما النظام ينهار.
العيوب: البطء الشديد بسبب كثرة المراسلات بين المكونات.
المعركة: تانينباوم ضد تورفالدس...
في أوائل التسعينات، حصلت مناظرة أسطورية بين أندرو تانينباوم (مخترع مينيكس ومؤيد للمايكروكيرنل) و لينوس تورفالدس (مخترع لينكس ومؤيد للمونوليثيك).
1. المونوليثيك:
كل خدمات النظام (الذاكرة، الملفات، الشبكات) شغالة في نفس المساحة.
التواصل بينهم سريع جدا.
لكن لو واحد قرر يعمل segmentation fault، كل الخدمات هتموت معاه!
2. المايكروكيرنل:
الخدمات منفصلة في مساحات مختلفة.
التواصل بينهم بيحتاج رسائل (message passing)… والرسائل دي بتاخد وقت.
لكن لو واحد اتعطل، تقدر تعمل له kill -9 من غير ما النظام ينهار.
لينكس اختار المونوليثيك... ليه؟ لأن "السرعة حلوه طبعا"!
لينوس قرر يفضل مع المونوليثيك عشان:
السرعة: مفيش وقت يضيع في مراسلات بين المكونات.
السيطرة: الكيرنال بيقدر يتحكم في كل حاجة من غير ما يحتاج "إذن".
المرونة: تقدر تعدل على أي جزء من الكيرنال من غير ما تحطمه (طالما انتا فاهم إيه اللي بتعمله!).
الجمدان من الاخر.
لكن المشكلة: لو درايفر الجرافيكس قرر يعمل kernel panic (بمعني خطأ كارثي)، هتلاقي الشاشة السوداء!
المايكروكيرنل: ليه ماحدش بيحبه غير "آبل" و"مايكروسوفت"؟
الشركات الكبيرة (زي ماك وويندوز) بتحب المايكروكيرنل عشان:
الأمان: لو هكر اخترق جزء من النظام، مش هيقدر يوصل للكيرنال بسهولة.
الثبات: جزء من النظام ممكن يقع من غير ما يوقع الباقي.
السيطرة: الشركة تقدر تتحكم في التحديثات من غير ما تتدخل في الكيرنال.
لكن المستخدمين بيشتكوا دايما من:
التحديثات اللي بتاخد 10 سنين: عشان كل جزء ليه تحديث منفصل!
الـ "الشاشة الزقاء": اللي بتظهر لما المايكروكيرنل نفسه يقرر ينهار!
خلاصه المنافسه: مفيش فائز مطلق... بس فيه كيرنال أقوى من التايتنك!
المونوليثيك والمايكروكيرنل الاتنين ليهم مميزات وعيوب، لكن لينكس أثبت إن المونوليثيك ممكن يكون سريع ومرن لو اتعمل بطريقة صح.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🤣2🏆2⚡1❤🔥1🔥1
الكيرنال موديولز... "الإضافات السحرية"🫰
الكيرنال موديولز... زي "الوايرلس" بتاعت الكمبيوتر!
الكيرنال موديولز دي عبارة عن ميزات إضافية تقدر تزقها في الكيرنال من غير ما تعيد تشغيل الجهاز، زي ما تزق ستيكر على لاب توبك! الفكرة إنك تقدر تضيف درايفر جديد، أو دعم لجهاز، أو حتى لعبة داخل الكيرنال (مش هنصحك تجرب دي🏖️ !).
الموديولز دي بتشتغل في kernel space، يعني ليها صلاحيات تمسحلك النظام كله لو حبت! لكن الميزة إنك تقدر تتحكم فيها:
تحملها (insmod): زي ما تلزق لاصقه على حتة مكسورة.
تشيلها (
تعدل عليها: لو انتا مغامر، ممكن تكتب موديول بنفسك وتشوف هتخربق الدنيا ولا هتعمل إبداع!🏋️♀️
الموديولز... إيه قصتها؟🧐
الموديولز دي مش أكواد عادية، دي قطع ليجو بتتوصل بالكيرنال عشان تكمل بعض. مثال:
لو اشتريت طابعة جديدة، الموديول اللي هتضيفه هو اللي هيخلي الطابعة تفهم إزاي تطبع ورقة.
لو جهازك مش بيدعم الـ Wi-Fi، هتحمل موديول درايفر الشبكة... بس لو الموديول كان فيه bug، ممكن الـ Wi-Fi يبدأ يبعت إشارات لكوكب تاني.✈️
ايه قوه كل موديول؟⭐️
كل موديول ليه سوبر باور خاص:
1. موديول الجرافيكس: هو الي اللي بيحول الإشارات الرقمية لصور ملونة...🍒
2. موديول الصوت: هو الي اللي بيحول الأصفار والآحاد لأغاني...🎵
3. موديول الشبكة: هو الـي اللي بيوصل البيانات بسرية...👌
الموديولز الـ "هاكرز"... بين الإبداع والدمار!☂️
في عالم الموديولز، في نوعين من الناس:
1. المطور اللي بيحب النظام: بيكتب موديولات تصلح مشاكل وتضيف مزايا مفيدة، زي ما واحد بيصلح عربية أبوه.⚙️
2. المطور اللي بيحب الفوضى: بيكتب موديولات بتعمل kernel panic عشان يتسلى (رجالة ال Malware Development).📎
"كيرنال بانيك"... إيه علاقته بالموديولز؟⁉️
"كيرنال بانيك" ده أشهر عدو للموديولز! بيحصل لما الموديول يعمل حاجة مخالفة لقوانين الكيرنال، فيقرر الكيرنال ينهار ويعمل إضراب عام. الصورة اللي بتظهر على الشاشة بتكون زي:
رسالة خطأ: "عزيزي المستخدم، الموديول اللي حملته عامل الصح!"😵
الحل الوحيد: الصياح واعادة تثبيت النظام.🤕
كيف تصنع موديول بنفسك؟ (بلاش تجرب😂 )
لو قررت تعمل موديول، اتبع الخطوات دي:
1. اكتب كود بـ "hello world":
2. حمل الملف بـ insmod:
لو شغال، هتلاقي الرسالة في الـ logs... أو ممكن تسبب بانيك لو نسيت ";"!🙃
موديولز الواقع... بين "الضرورة" و"الترفيه"!😇
الضروري: درايفر الطابعة، درايفر الشبكة، درايفر الجرافيكس... دول اللي بيمشوا حياتك.
الترفيهي: موديول بيخلي الزر الأيمن للماوس يفتح تيك توك...🙄
الموديولز... سكاكين بتحب تلعب بالنار!🔥
الموديولز ممكن تكون المنقذ أو الهادم، حسب إيد اللي بستخدمها. الفكرة إنك تتعلم تتحكم فيهم، وتبعد عن اللي مالهوش لازمة...👨💻
في النهاية، الكيرنال مش مجرد سطور كود، ده المخ اللي بيشغل كل حاجة في الكمبيوتر! سواء كنت بتستخدم لينكس على سيرفر ضخم، أو بتجرب توزيعة جديدة على اللاب، فانت بتتعامل مع واحدة من أعقد وأقوى قطع البرمجيات في العالم.👌
الكيرنال موديولز... زي "الوايرلس" بتاعت الكمبيوتر!
الكيرنال موديولز دي عبارة عن ميزات إضافية تقدر تزقها في الكيرنال من غير ما تعيد تشغيل الجهاز، زي ما تزق ستيكر على لاب توبك! الفكرة إنك تقدر تضيف درايفر جديد، أو دعم لجهاز، أو حتى لعبة داخل الكيرنال (مش هنصحك تجرب دي
الموديولز دي بتشتغل في kernel space، يعني ليها صلاحيات تمسحلك النظام كله لو حبت! لكن الميزة إنك تقدر تتحكم فيها:
تحملها (insmod): زي ما تلزق لاصقه على حتة مكسورة.
تشيلها (
rmmod): زي ما تشيل الشريط اللاصقه وتقول: "يا سلام، الحتة كانت مكسورة أصلاً!" تعدل عليها: لو انتا مغامر، ممكن تكتب موديول بنفسك وتشوف هتخربق الدنيا ولا هتعمل إبداع!
الموديولز... إيه قصتها؟
الموديولز دي مش أكواد عادية، دي قطع ليجو بتتوصل بالكيرنال عشان تكمل بعض. مثال:
لو اشتريت طابعة جديدة، الموديول اللي هتضيفه هو اللي هيخلي الطابعة تفهم إزاي تطبع ورقة.
لو جهازك مش بيدعم الـ Wi-Fi، هتحمل موديول درايفر الشبكة... بس لو الموديول كان فيه bug، ممكن الـ Wi-Fi يبدأ يبعت إشارات لكوكب تاني.
ايه قوه كل موديول؟
كل موديول ليه سوبر باور خاص:
1. موديول الجرافيكس: هو الي اللي بيحول الإشارات الرقمية لصور ملونة...
2. موديول الصوت: هو الي اللي بيحول الأصفار والآحاد لأغاني...
3. موديول الشبكة: هو الـي اللي بيوصل البيانات بسرية...
الموديولز الـ "هاكرز"... بين الإبداع والدمار!
في عالم الموديولز، في نوعين من الناس:
1. المطور اللي بيحب النظام: بيكتب موديولات تصلح مشاكل وتضيف مزايا مفيدة، زي ما واحد بيصلح عربية أبوه.
2. المطور اللي بيحب الفوضى: بيكتب موديولات بتعمل kernel panic عشان يتسلى (رجالة ال Malware Development).
"كيرنال بانيك"... إيه علاقته بالموديولز؟
"كيرنال بانيك" ده أشهر عدو للموديولز! بيحصل لما الموديول يعمل حاجة مخالفة لقوانين الكيرنال، فيقرر الكيرنال ينهار ويعمل إضراب عام. الصورة اللي بتظهر على الشاشة بتكون زي:
رسالة خطأ: "عزيزي المستخدم، الموديول اللي حملته عامل الصح!"
الحل الوحيد: الصياح واعادة تثبيت النظام.
كيف تصنع موديول بنفسك؟ (بلاش تجرب
لو قررت تعمل موديول، اتبع الخطوات دي:
1. اكتب كود بـ "hello world":
#include <linux/module.h> MODULE_LICENSE("GPL");
static int __init hello_init(void) {
printk("اهلا بيك ف الكيرنال");
return 0;
}
static void __exit hello_exit(void) {
printk("اخرج برا الكيرنال");
}
module_init(hello_init);
module_exit(hello_exit); 2. حمل الملف بـ insmod:
لو شغال، هتلاقي الرسالة في الـ logs... أو ممكن تسبب بانيك لو نسيت ";"!
موديولز الواقع... بين "الضرورة" و"الترفيه"!
الضروري: درايفر الطابعة، درايفر الشبكة، درايفر الجرافيكس... دول اللي بيمشوا حياتك.
الترفيهي: موديول بيخلي الزر الأيمن للماوس يفتح تيك توك...
الموديولز... سكاكين بتحب تلعب بالنار!
الموديولز ممكن تكون المنقذ أو الهادم، حسب إيد اللي بستخدمها. الفكرة إنك تتعلم تتحكم فيهم، وتبعد عن اللي مالهوش لازمة...
في النهاية، الكيرنال مش مجرد سطور كود، ده المخ اللي بيشغل كل حاجة في الكمبيوتر! سواء كنت بتستخدم لينكس على سيرفر ضخم، أو بتجرب توزيعة جديدة على اللاب، فانت بتتعامل مع واحدة من أعقد وأقوى قطع البرمجيات في العالم.
وفي الاخر بعد 5 ساعات كتابة، وريني تفاعل وقولي رايك.😃 ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14🔥6❤3🤣3🫡3👍2👌2⚡1🤩1🏆1💘1
https://t.me/Bad_Rabbit_Team
#Rabbit_Live
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤27❤🔥5👍4🤣4😍2🔥1🤩1🏆1🫡1
Media is too big
VIEW IN TELEGRAM
تسجيل البث اتمني يكون عجبكم 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36❤🔥14⚡3👍2🔥1👌1🏆1💘1