الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن اعرف

مغلق
بدأه عاشق هكر في 17 نوفمبر 2005 · 5 رد · 657 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ممكن اعرف كيف

استخدم nasm

يعنى لمة يكون عندى كود وعاوز اترجمة

ساعدونىىىىىىى

خطاء برمجى+مبرمج php+معرفة كاملة بى my sql+كتابة استمار صحيح===؟؟؟؟؟؟؟؟ اكتشاف ثغرة جديدة ؟؟؟؟؟؟؟
#2

مثال بالملف المرفق هنــــــــــا

d4baa0.gif
#3
اقتباس
Qnix ~ # cat > helloworld.asm

section .data

msg    db      "Hello world",0xa

len    equ    $ - msg

section .text

    global _start

_start:

        mov    edx,len

        mov    ecx,msg

        mov    ebx,1

        mov    eax,4

        int    0x80

        mov    ebx,0

        mov    eax,1

        int    0x80

Qnix ~ # nasm -f elf helloworld.asm -o helloworld.o

Qnix ~ # ld helloworld.o -o helloworld

Qnix ~ # ./helloworld

Hello world

#4

ليش تستخدم الـINT في برمجة 32 بت ؟؟

#5
Sub-0 كتب:
ليش تستخدم الـINT في برمجة 32 بت ؟؟

المثال فوق تحت بيئة Linux

وحتى تحت Window$ يمكنك إستخدام المقاطعات بتصرف

d4baa0.gif
#6

int 80 تقوم بعمل اتصال للكيرنل ( call kernel )

في الليونكس نستعمل ال syscalls وهاذا اعتقد انه جديد على مبرمجي ويندوز

ابحث هنا لبعض المعلومات

http://www.google.com/linux?hl=en&lr=&q=syscall

section .data

msg    db      "Hello world",0xa
len    equ    $ - msg

section .text

    global _start

_start:

        mov    edx,len
        mov    ecx,msg
        mov    ebx,1
        mov    eax,4
        int    0x80

        mov    ebx,0
        mov    eax,1
        int    0x80

كما ترى يوجد لدينا قسمين هم data و text

ال data يحمل النص الذي نريد طباعته وطول النص

ال text يحمل نقطه الادخال وهي _start التي سوف يقوم اللنكر الخاص بملفات ELF بتعريفها على انها الديفولت

في ال _start يوجد لدينا هاذا الكود

mov edx,len وهو لطول النص

mov ecx,msg المأشر لكتابه النص

mov ebx,1 لل stdout

mov eax,4 يقوم بعمل call للرقم 4 بلأصح يقوم بعمل call لل sys_write وهي اللتي ستقوم بطباعه النص

int 0x80 يقوم بعمل call للكيرنل

mov ebx,0 يقوم بجعل اول syscall هي ال exit

mov eax,1 يقوم بعمل call للرقم 1 وهو sys_exit ليخرج من البرنامج

int 0x80 يقوم بعمل call للكيرنل

هاكذا هي الاسمبلي في ليونكس ..

تم تعديل هذه المشاركة بواسطة Qnix في 27 نوفمبر 2005 في 15:43

هذا الموضوع مغلق.

مواضيع مشابهة