<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Idapro on P01NT</title><link>https://outofsrvc.github.io/ar/tags/idapro/</link><description>Recent content in Idapro on P01NT</description><generator>Hugo</generator><language>ar</language><lastBuildDate>Tue, 25 Aug 2026 20:10:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/ar/tags/idapro/index.xml" rel="self" type="application/rss+xml"/><item><title>أساسيات x86 (x86 Basics)</title><link>https://outofsrvc.github.io/ar/asm/x86-basics/</link><pubDate>Tue, 25 Aug 2026 20:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/asm/x86-basics/</guid><description>&lt;h2 id="هذه-المقالات-مستخلصة-من-كورس-macc---flare-learning-hub-الذي-قمت-بدراسته-من-فترة-قصيرة-اتمنى-ان-ينفعكم-الله-به">السلام عليكم ورحمة الله تعالى وبركاته
سنتحدث في هذه السلسلة عن لغة التجميع x86-64 ونقوم بحل تمارين عملية
هذه المقالات مستخلصة من كورس MACC - FLARE Learning Hub الذي قمت بدراسته من فترة قصيرة اتمنى ان ينفعكم الله به.&lt;/h2>
&lt;h2 id="1-التجميع-وفك-التجميع-assembly-and-disassembly">1. التجميع وفك التجميع (Assembly and Disassembly)&lt;/h2>
&lt;p>لنبدأ بتعريف بعض المصطلحات التي ستتكرر كثيرًا في هذه الدورة:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>كود التجميع (Assembly Code)&lt;/strong> — ويُشار إليه غالبًا بلغة التجميع أو اختصارًا بـ Assembly — هو التمثيل النصّي لشيفرة الآلة (Machine Code) التي ينفّذها المعالج. يُعد التجميع أعلى مستوى تمثيل للبرنامج يمكن استرجاعه بشكل موثوق دون الوصول إلى الشيفرة المصدرية الأصلية. وبينما تمتلك كل بنية حاسوبية (مثل x86 و ARM و MIPS) لغة تجميع خاصة بها، فإن المبادئ الأساسية التي ستتعلمها هنا في تحليل x86 وامتداده ذات 64-بت (x86-64) هي مبادئ عالمية.&lt;/p></description></item><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>التحكم الأساسي في التدفق (Basic Flow Control)</title><link>https://outofsrvc.github.io/ar/asm/basic-flow-control/</link><pubDate>Tue, 25 Aug 2026 20:10:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/asm/basic-flow-control/</guid><description>&lt;p>بسم الله الرحمن الرحيم&lt;/p>
&lt;p>سنناقش في هذا المقال التحكم في تدفق البرامج&lt;/p>
&lt;hr>
&lt;h2 id="1-تعليمة-jmp">1. تعليمة JMP&lt;/h2>
&lt;p>تنفّذ تعليمة &lt;code>JMP&lt;/code> قفزة &lt;strong>غير مشروطة&lt;/strong> (Unconditional Jump). فهي تعادل وظيفيًا الكتابة فوق مؤشر التعليمات (&lt;code>EIP&lt;/code>) بالعنوان المحدد في المعامل.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-asm" data-lang="asm">&lt;span class="line">&lt;span class="cl">&lt;span class="nl">start:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">mov&lt;/span> &lt;span class="no">eax&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nl">top:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">inc&lt;/span> &lt;span class="no">eax&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">jmp&lt;/span> &lt;span class="no">top&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>القائمة 3.1: استخدام تعليمة JMP لتكوين حلقة لا نهائية بسيطة&lt;/em>&lt;/p>
&lt;p>توضح القائمة 3.1 حلقة لا نهائية بسيطة:&lt;/p>
&lt;ol>
&lt;li>تُهيّئ &lt;code>EAX&lt;/code> إلى القيمة 0.&lt;/li>
&lt;li>تدخل الحلقة وتزيد &lt;code>EAX&lt;/code> بمقدار 1.&lt;/li>
&lt;li>تقفز عائدةً إلى عنوان التسمية &lt;code>top&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>ولأنه لا يوجد شرط للخروج، تتكرر الحلقة إلى ما لا نهاية حتى يتم إنهاء البرنامج.&lt;/p></description></item></channel></rss>