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

ابي اتعلم الاسمبلي ..

مغلق
بدأه Sub-0 في 19 سبتمبر 2005 · 20 رد · 2,081 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الحين سؤال هل لازم اتعلم 16-bit أسمبلي عشان اعرف 32-bit

لاني ودي اتعلم الجديد على طول بدون مااتعلم 16 بت بعرف هل هذا ممكن او لأ ؟؟

واذا كان ممكن ماهي المراجع المفيدة لتعلم الـ32 بت :rolleyes:

#2

نعم ممكن وربما اسهل بكثير من انك تتعمل 16 بت, بالنسبة للمراجع هناك مراجع كثيره فى المنتدى عليك بالبحث فى المواضيع المثبته هناك دروس وكتب ومراجع كثيره جداً وإذا كان لديك سؤال يمكنك طرحه هنا وإن شاء الله الف واحد بيجيبك...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#3

بس انا زي ماسمعت لازم اعرف 16 بت عشان تصير 32 سهلة جدا .. وبعدين وانا اتعلم 16 بت كما قرأت اتعلم كيف يشتغل الجهاز ومبادىء الحاسب

وانا احب اتخصص في كتابة الـshell coding وتحليل البرامج reverse engineering

هل يكفي اني اتعلم 32 بت ؟؟

وابي اعرف ماهو الفرق الي بين 16 بت و 32 بت ؟؟؟؟؟

#4

وفعلا تحطمت لما عرفت ان تعلم 16 بت مايفيدني في reverse engineering وكتابة الshell coding

المشكلة اني بديت اقرأ كتابين واحد

art of assembly under DOS

والثاني :

assembly step by step

وكل الكتابين خاصين بالـ16 بت وتحطمت لما عرفت انها غير مفيدة ..

طيب وش تنصحوني من وين اتعلم الـ32 بت تحت ويندوز او لينكس , للأسف يوم جيت اشوف art of assembly حق الويندوز واللينكس اكتشفت انه مغير وانه HAL

يعني اسمبلي على طريقة High level Language وانا ابي pure assembly يعني اسمبلي نقية 32 بت فارجوكم ساعدوني .. !!

#5

مقالات Iczelion جدا مفيدة في هذا المجال كبداية.. http://win32asm.cjb.net

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

http://linuxassembly.org

http://www.vividmachines.com/shellcode/shellcode.html

http://www.phrack.org

http://shellcode.org

http://www.metasploit.com

http://www.google.com

حياك اخي في ليونكس .. وانا من كتاب ال shellcodes وال exploits على linux ....

ولو عندك استفسارات انا وجميع الاعضاء ومشرفين قسم الاسمبلي راح نرد عليك بأذن الله ..

تم تعديل هذه المشاركة بواسطة Qnix في 20 سبتمبر 2005 في 23:25

#7

اخوي Xacker شكرا على المساعدة .. لكن انا ابي win32bit assembly تحت الـConsole مو على طول على برمجة الويندوز والـAPI ..

مافيه كتاب الكتروني حلو تنصحوني فيه او موقع فيه دروس شاملة عن win32bit

لاني ودي احترف فيها عشان احلل البرامج وعشان shellcoding/reverse-engineering

#8

وغير كذا انا مبتدأ في الاسمبلي يعني ابي من الصفر حتى احترف win32bit

#9

برمجة ويندوز تحت الـ console؟ هذا يعني تطبيقات لا تستخدم الا تعليمات اسمبلي بدون مقاطعات او اوامر API وبالتالي اي مرجع يشرح لك تعليمات لغة الاسمبلي يعتبر جيد جدا!! الم تجد ما يفيدك في هذا الامر حتى الان!

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10

السلام عليكم

هناك ثلاث دروس فى نفس الرابط الذى وضع اخونا X تحت قسم tutorials اسم الاول منها _masta_'s Win32Asm Tut 0 ثم ياتى 1 و2 بعدها مباشرة, تبداء من البداية وتعلمك كيف تكتب برنامج hello world فى بيئة الconsole :::

بالتوفيق..

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#11

ابو غريب هذا اول ملف قلتلي اقراه شف وش مكتوب فيه :

                 --==PRE-KNOWLEDGE==--
    

I assume that you posses at least basic knowledge of Assembly 
language, which every Cracker, Coder (Speedfreak!) should have.

وانا ماعندي الاساسيات حقت الاسمبلي .. وياليت تعطوني اشياء مفيدة لتعلم الاساسيات قبل الدخول الى هذا الموقع وقراءة مواضيعه !!

#12

بعدين سؤال خاص لك كيونيكس .. انت من وين تعلمت الاسمبلي حقت اليونيكس لاني شفت لك احد المواضيع وانت تكتب شيل كود خاص باللينكس ؟؟

ابي اعرف الموقع الي علمك الاسمبلي باللينكس والكتب الي قريتها والمقالات ؟؟؟؟؟؟؟؟؟؟؟

#13

قرئت الكثير الكثير ... فانا لم اقوم بكتابت الشيل كود كامل بلأسمبلي

فقد قمت بكتابه التعليمات الكامله ببرنامج C وبعدها عملت كومبايل ولو كانت معك معلومات

عن كيف تجيب الكود راح تجيبه مثلا انا كتبت كود في الداله main() وهو يقوم بطباعه كلمه Qnix

مثلا :

root@qnix:~# cat hello-shellcode.c
#include <stdio.h>

int main()
{
write(0,"Qnix",4);
exit(0);
}

شوف كيف الان احنا استعملنا دالتين هم write() و exit() وطبعا موجودين في مكتبه

تسمى unistd.h

root@qnix:~# cat /usr/include/asm-i386/unistd.h |more
........ الخ
#define __NR_exit                 1  <---- داله exit()
#define __NR_fork                 2
#define __NR_read                 3
#define __NR_write                4  <----- داله write()
#define __NR_open                 5
#define __NR_close                6
....... الخ

الان سوف نقوم بعمل compile للكود ومن ثمه عمل disassemble للداله main() لان

الكود فيها وبعدها نبدء نخرج الكود ...

root@qnix:~# gdb -q hello-shellcode
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) disas main
Dump of assembler code for function main:
0x080483a4 <main+0>:    push   %ebp
0x080483a5 <main+1>:    mov    %esp,%ebp
0x080483a7 <main+3>:    sub    $0x18,%esp
0x080483aa <main+6>:    and    $0xfffffff0,%esp
0x080483ad <main+9>:    mov    $0x0,%eax
0x080483b2 <main+14>:   add    $0xf,%eax
0x080483b5 <main+17>:   add    $0xf,%eax
0x080483b8 <main+20>:   shr    $0x4,%eax
0x080483bb <main+23>:   shl    $0x4,%eax
0x080483be <main+26>:   sub    %eax,%esp
0x080483c0 <main+28>:   movl   $0x4,0x8(%esp)
0x080483c8 <main+36>:   movl   $0x8048508,0x4(%esp)
0x080483d0 <main+44>:   movl   $0x0,(%esp)
0x080483d7 <main+51>:   call   0x80482c4 <_init+40>
0x080483dc <main+56>:   movl   $0x0,(%esp)
0x080483e3 <main+63>:   call   0x80482e4 <_init+72>
0x080483e8 <main+68>:   nop
0x080483e9 <main+69>:   nop
0x080483ea <main+70>:   nop
0x080483eb <main+71>:   nop
0x080483ec <main+72>:   nop
0x080483ed <main+73>:   nop
0x080483ee <main+74>:   nop
0x080483ef <main+75>:   nop
End of assembler dump.

كما ترى الان قمنا بتشغيل البرنامج ب gnu debugger وقمنا بعمليه disas للداله main

وبعدها نرى من اين يبدء الكود بلضبط ... مثلا بدايه الكود من <main+14> وينتهي في

<main+75> لكي نخرج ال opcode نقوم بهاذا باخراجه بهاذا الشكل

(gdb) x/bx main+14
0x80483b2 <main+14>:    0x83
(gdb)
0x80483b3 <main+15>:    0xc0
(gdb)
0x80483b4 <main+16>:    0x0f
(gdb)
0x80483b5 <main+17>:    0x83
(gdb)
0x80483b6 <main+18>:    0xc0
(gdb)
0x80483b7 <main+19>:    0x0f
(gdb)
0x80483b8 <main+20>:    0xc1
(gdb)
0x80483b9 <main+21>:    0xe8
(gdb)
0x80483ba <main+22>:    0x04
(gdb)
0x80483bb <main+23>:    0xc1
(gdb)
0x80483bc <main+24>:    0xe0
(gdb)
0x80483bd <main+25>:    0x04
(gdb)
0x80483be <main+26>:    0x29
(gdb)
0x80483bf <main+27>:    0xc4
(gdb)
0x80483c0 <main+28>:    0xc7
(gdb)
0x80483c1 <main+29>:    0x44
(gdb)
0x80483c2 <main+30>:    0x24
(gdb)
0x80483c3 <main+31>:    0x08
(gdb)
0x80483c4 <main+32>:    0x04
(gdb)
0x80483c5 <main+33>:    0x00
(gdb)
0x80483c6 <main+34>:    0x00
(gdb)
0x80483c7 <main+35>:    0x00
(gdb)
0x80483c8 <main+36>:    0xc7

كذا مثلا الى النهايه وبعدها نقوم بترتيب الشيل كود براحتنا ... وانتهى الامر .

هاذا مثال بسيط عسى تستفيد .

#14

تسلم يالغالي ,,

#15

الله يسلمك .. على كل حال اخي الكريم . ان كنت تريد كتب جميله تتكلم عن هاذا الموضوع

فانصحك بان تقوم بلبحث في amazon عن الموضوع الذي تريده .. وان وجدت المراد ابحث عنه

في الانترنت وستجده مجاني او اطلبه او اشتره من مكتبه .. فلكتبه اليدويه افضل واصح من الكتب

الالكترونيه .. ووفقك الله

#16

إذا كنت لا تعرف اي شئ عن الاسمبلى يمكنك ان تبداء بكتاب AoA الاجزاء الاولى منه فقط يعنى اول 3 او 4 فصول ثم بعد ذلك يمكنك ان تقراء ملف asmintro.hlp والذى تجده فى مجلد c:\masm32\help وبعد ذلك تكلم فى الموقع الذى اعطاك إيها الاخ X ..

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#17

هذا الي استناه انا .. اوكي راح اقرا اول اربع فصول واحفظهم زي اسمي .. الف شكر يالغالي

#18

عفواً الان القيت نظرة سريعة على كتاب AoA واستطيع ان ارشدك بطريقة افضل..

الجزء الاول من الكتاب :

يمكنك تجاوز الفصل الاول والثانى لانه مقدمات وتعريف بنظام HLA:

الفصل الثالث والرابع مهم جداً ولكن يمكنك ان تتجاوز الشفرة المكتوبه بلغة HLA حاول فقط ان تفهمها ولكن لا تعرها إهتمام كبير إذا كنت تريد الانتقال لMasm32.

الجزء الثانى من الكتاب:

الفصل الاول مهم جداً جداً عدى 1.3 يمكنك تجاوزه لانه يتحدث عن لغة HLA...

الفصل الثانى مهم جداً عدى 2.11 ....

الفصل الثالث مهم جداً ...

الفصل الرابع مهم ...

الفصل الخامس قرائة عابره ...

الفصل السادس قارئه عابره ....

الفصل السابع مرور الكرام ... يعنى تصفح للإطلاع فقط...

بعدها يمكنك الانتقال لل Masm32 ولكن انصحك ان تحاول التطبيق فى masm32 اثناء القرائة لان الفرق بين ما هو مكتوب فى الكتاب والتطبيق ليس كبير ...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#19

تسلم على الرد ياابو غريب .. وانا اقرا في الفصول اكتشفت ان اول اربع فصول من كتاب AOA حق 16 بت يغطي نفس المواضيع الي انت وضحتها في كتاب AOA 32 بت

صح ولا انا غلطان ؟؟

#20

للرفع

انتظر ردك ياابو غريب

#21

توجد سلسلة دروس جيدة في 16Bit كتبها الأخ Chik و هي موجودة على الرابط التالي:

/index.ph...topic=36915&hl=

تم تعديل هذه المشاركة بواسطة خليل أونيس في 4 أكتوبر 2005 في 12:34

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

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