<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stack on P01NT</title><link>https://outofsrvc.github.io/ar/tags/stack/</link><description>Recent content in Stack on P01NT</description><generator>Hugo</generator><language>ar</language><lastBuildDate>Tue, 25 Aug 2026 20:05:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/ar/tags/stack/index.xml" rel="self" type="application/rss+xml"/><item><title>المكدس (The Stack)</title><link>https://outofsrvc.github.io/ar/asm/the-stack/</link><pubDate>Tue, 25 Aug 2026 20:05:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/asm/the-stack/</guid><description>&lt;p>بسم الله الرحمن الرحيم&lt;/p>
&lt;p>في المقال السابق تحدثنا عن أساسيات x86 asm، وفي هذا الدرس سنكمل في الأساسيات وسنناقش سويًا المكدس.&lt;/p>
&lt;hr>
&lt;h2 id="1-المكدس-the-stack">1. المكدس (The Stack)&lt;/h2>
&lt;p>المكدس هو بنية بيانات من نوع &lt;strong>LIFO&lt;/strong> (آخر يدخل، أولًا يخرج — Last In, First Out) تُيسّر تنفيذ البرامج. يعمل المكدس كمنطقة تخزين قصيرة المدى للدوال، حيث يدير تبادل البيانات بينها. وتشمل البيانات المخزنة على المكدس عادةً: المتغيرات المحلية للدالة، ووسائطها (Arguments)، وعنوان الإرجاع (Return Address).&lt;/p></description></item><item><title>الدوال</title><link>https://outofsrvc.github.io/ar/cworkshop/functions/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/cworkshop/functions/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>في هذا المقال سنتعرف على الدوال وأنواعها وأشكالها، وأهم الدوال التي تفيدنا في الهندسة العكسية.&lt;/p>
&lt;p>&lt;strong>الدوال تلعب دوراً محورياً في البرمجة، وخصوصاً في الهندسة العكسية&lt;/strong> — لأنها وحدة التحليل الأساسية: عندما نفتح أي برنامج في IDA أو Ghidra، فإن أول ما نراه هو قائمة الدوال، ومن تحليلها نفهم كيف يعمل البرنامج.&lt;/p>
&lt;h2 id="ما-هي-الدوال">ما هي الدوال؟&lt;/h2>
&lt;p>وحدات أساسية لإعادة استخدام الكود وتنظيمه — &amp;ldquo;كتل&amp;rdquo; من التعليمات مصممة لتنفيذ مهام معينة. كل دالة يمكن أن تقبل معاملات (Arguments) وتُرجع قيمة (Return Value).&lt;/p></description></item><item><title>المؤشرات وإدارة الذاكرة</title><link>https://outofsrvc.github.io/ar/cworkshop/pointers-and-memory/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/cworkshop/pointers-and-memory/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>في هذا المقال سنتعرف على المؤشرات (Pointers) وأنواعها، ونأخذ مقدمة عن إدارة وتخصيص الذاكرة (Memory Management and Allocation). وهو &lt;strong>آخر مقال في سلسلة الأساسيات&lt;/strong> إن شاء الله.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>ملاحظة&lt;/strong>: لن نتوسع في memory management بالقدر المطلوب — سنشرح المفاهيم الأساسية التي تساعدنا على فهم المؤشرات، لأن الموضوع يستحق مقالاً خاصاً.&lt;/p>&lt;/blockquote>
&lt;p>المؤشرات أداة قوية تتيح التحكم المباشر في الذاكرة، مما يجعلها ذات أهمية قصوى عند تحليل البرامج وفهم التعليمات الثنائية.&lt;/p></description></item><item><title>الذاكرة الظاهرية: Stack مقابل Heap</title><link>https://outofsrvc.github.io/ar/cworkshop/virtual-memory-stack-vs-heap/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/cworkshop/virtual-memory-stack-vs-heap/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>في هذا المقال سنتحدث عن تصميم الذاكرة الخاص بالـ Stack والـ Heap، ونوضح نقاط الاختلاف بينهما.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>ملاحظة&lt;/strong>: هذا المقال لا يغطي كل شيء حرفياً، لكنه سيوصلنا لفهم كامل عن الأمور التي سنتحدث فيها.&lt;/p>&lt;/blockquote>
&lt;h2 id="تخطيط-الذاكرة-memory-layout">تخطيط الذاكرة (Memory Layout)&lt;/h2>
&lt;p>كما ذكرنا في مقال المؤشرات، ذاكرة البرامج في الأنظمة الحديثة x86/x64 تنقسم إلى 5 أقسام رئيسية (والبعض يقول 4 بدمج Data مع BSS):&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Text Segment&lt;/strong> — التعليمات التنفيذية (للقراءة فقط).&lt;/li>
&lt;li>&lt;strong>Data Segment&lt;/strong> — المتغيرات العامة المهيأة.&lt;/li>
&lt;li>&lt;strong>BSS Segment&lt;/strong> — المتغيرات العامة غير المهيأة.&lt;/li>
&lt;li>&lt;strong>Heap&lt;/strong> — التخصيص الديناميكي.&lt;/li>
&lt;li>&lt;strong>Stack&lt;/strong> — المتغيرات المحلية وإطارات الدوال.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">+-----------------+ عناوين عالية
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Stack | ينمو للأسفل
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| | |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| v |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| (فجوة) |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| ^ |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| | |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Heap | ينمو للأعلى
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| BSS |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Data |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Text |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+ عناوين منخفضة
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>نتعامل هنا مع الـ &lt;strong>User Space&lt;/strong> فقط — الـ Kernel Space موضوع آخر.&lt;/p></description></item></channel></rss>