ما هو الغرض من XOR الرجيستر مع نفسه ؟ XOR EAX, EAX - نسخة قابلة للطباعة +- الفريق العربي للهندسة العكسية (https://www.at4re.net/f) +-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html) +--- قسم : الهندسة العكسية - Reverse Code Engineering (https://www.at4re.net/f/forum-19.html) +--- الموضوع : ما هو الغرض من XOR الرجيستر مع نفسه ؟ XOR EAX, EAX (/thread-3262.html) |
ما هو الغرض من XOR الرجيستر مع نفسه ؟ XOR EAX, EAX - R333T - 10-09-2022 أقصد هكذا XOR EAX, EAX إنه أكثر كفاءة. كود التشغيل أقصر من MOV EAX, 0 ب 2 bytes أي word ، ويتعرف المعالج على الحالة الخاصة ويعاملها على أنها MOV EAX, 0 سيحتوي MOV EAX, 0 على بايت فارغ (null) في assembled bytes ، بينما XOR EAX, EAX لا يحتوي على بايت فارغ. أقصد هنا '0\' أو x00\ يعد هذا أمرًا بالغ الأهمية للعديد من عمليات الاستغلال نظرًا لأن المصطلح الشائع في كود C يقرأ حتى يكون لديك بايت فارغ. عادةً ما يتم تخزين String variables كمصفوفات من الأحرف ، منتهية ببايت فارغ. لا يمكننا دفع PUSH أو نقل MOV قيمة 0 لأن ذلك سيؤدي تلقائيًا إلى إنشاء بايت فارغ (x00\) والذي سيوقف shellcode. وبدلاً من ذلك ، سننشئ null في EAX عن طريق إجراء XOR مع نفسها ثم دفع تلك القيمة إلى stack. ختام في architectures الحديثة ، سيكون XOR أسرع لأن السجل مصفر في rename stage دون استخدام أي وحدة تنفيذ. RE: ما هو الغرض من XOR الرجيستر مع نفسه ؟ XOR EAX, EAX - R333T - 10-09-2022 أضيف أيضا تستعمل لإرجاع كود الخروج أقصد بذالك exit code فكما نعلم الكود 0 يعني أن البرنامج إشتغل بنجاح ولا توجد أي إستثناء خطأ أقصد بذالك error exception فكأن ما كتبت في c return 0 النظير instruction بال assembly هي XOR EAX, EAX RET RE: ما هو الغرض من XOR الرجيستر مع نفسه ؟ XOR EAX, EAX - ahmed_1337 - 10-09-2022 للإضافة حتى انها اكتر كفائة لأنه xor تحول ل 1 من micro ops بينا mov ف هي معقدة على حسب ال operands ولاكن حتى ادا ستعملت ال mov سوف تتحول ل xor ف لما توصل ل مرحلةdecoder و ب تحديد عملية ده يسمونها micro-fusion و في نهاية ل mov eax, 0 و xor eax,eax سوف يتم تنفيد نفس Uop |