الجزء الخامس (1) من محاضرات HTID

في البداية أود أن أشكر أخي العزيز شادي على مساعدتي في عمل هذه المادة بالتحديد … صراحة لم يكن لتخرج المادة بهذا الشكل لولا فضل الله ومن ثم شادي … ألف شكر شادي، وإن شاء الله بميزان حسناتك …

الجزء الخامس معني بالـ Software Exploitation سواءاً لينُكس أو ويندوز … بصراحة قمت بتقسيمه الى التالي:
(1) يتحدث عن مقدمة الى الـ Software Exploitation وماذا نعني بها ولماذا نحتاحها … كذلك الحديث عن المعالجات، المسجلات، لغة أسمبلي، والمكدس Stack وغيرها من الأمور الجد ظرورية لمعرفتها …
Introduction to CPU, Registers, Memeory Management, Assembly, and other stuff

(2) مقدمة سريعة عن المنقحات Debuggers … وتم توضيح فكرتهم من خلال برنامج بسيط وبإستعمال GDB …
(3) هنا نبدأ الحديث عن التلاعب بالذاكرة والتخريب عليها أو بعبارة أخرى Memory Corruption … في هذا الجزء نبدأ عملية Exploitation … سيتم إستعمال Immunity Debugger هنا … وكذلك سيتم عمل Demo كيفية تحويل الـ Exploit التي تم عملها الى Metasploit بواسطة mona.py …
(4) الطرق المتقدمة في التصدي مثل: ASLR, DEP, SafeSEH, NX, Canaries or Cookies or Stack Gaurd وكذلك كيف يمكن تجاوز هذه الحمايات … حيث سنتعرف على Ret2libc, Heap, ROP وغيرها … هذا الجزء متقدم للغاية، ولهذا يجب فهم ما سبق للوصول الى هنا …

تم رفع الجزء الأول والثاني، سيتم رفع البقية في القريب العاجل … المحاضرات تجدونها هنا

بالتوفيق للجميع …


Assembly Interrupts/System Calls list for Linux Kernel

السلام عليكم ورحمة الله وبركاته

لي فترة أصارع مع Assembly على بيئة جنو/لينوكس … أنا لست خبير في هذه اللغة ولكن الحمد لله عندي صديق خبير فيها بشكل مميز للغاية (عمل ألعاب عليها ::22 الله يوفقه، لكن هو يعرف أسمبلي على الويندوز وليس جنو/لينوكس) وجالس يساعدني في تعلمها وإتقانها الى حد ما … الأمر الوحيد الذي وقف عائق في وجهنا أنا وهو هي لم نصل الى أرقام الـ Interrupts أو الـ System Calls الخاصة بـ Kernel جنو/لينوكس … عندي Reference ممتاز لـ Interrupts الخاصة بالـ BIOS ولكن للنواة لا … بحثت كثيراً أنا وإياه الجمعة الماضية ولكن كل الذي وجدناه هو الـ System Call على شكل دالة C … أي كلهم يعطونني HLA … وأنا أريد قائمة الـ Interrupts مع كل متغيير يستطيع أن يأخذها هذا الـ Interrupt … فكما يعرف الأخوة الذين يبرمجون في أسمبلي بإن كل Interrupt له قائمة من القييم التي يقبلها الـ registers أو الذاكرة … وكل واحد من هذه القييم لها دوور ووظيفة … سأواصل البحث وأحاول أشوف طريقة للحصول على هذه القوائم …

راسلت الأخ مؤيد السعدي وأفادني ببعض الأمور منها بإنني عند حصولي على الدالة مثلاً mknod والتي بالـ C تبدأ هكذا:

int mknod(const char *pathname, mode_t mode, dev_t dev); Continue reading