الحين سؤال هل لازم اتعلم 16-bit أسمبلي عشان اعرف 32-bit
لاني ودي اتعلم الجديد على طول بدون مااتعلم 16 بت بعرف هل هذا ممكن او لأ ؟؟
واذا كان ممكن ماهي المراجع المفيدة لتعلم الـ32 بت :rolleyes:
الحين سؤال هل لازم اتعلم 16-bit أسمبلي عشان اعرف 32-bit
لاني ودي اتعلم الجديد على طول بدون مااتعلم 16 بت بعرف هل هذا ممكن او لأ ؟؟
واذا كان ممكن ماهي المراجع المفيدة لتعلم الـ32 بت :rolleyes:
نعم ممكن وربما اسهل بكثير من انك تتعمل 16 بت, بالنسبة للمراجع هناك مراجع كثيره فى المنتدى عليك بالبحث فى المواضيع المثبته هناك دروس وكتب ومراجع كثيره جداً وإذا كان لديك سؤال يمكنك طرحه هنا وإن شاء الله الف واحد بيجيبك...
والسلام عليكم
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
بس انا زي ماسمعت لازم اعرف 16 بت عشان تصير 32 سهلة جدا .. وبعدين وانا اتعلم 16 بت كما قرأت اتعلم كيف يشتغل الجهاز ومبادىء الحاسب
وانا احب اتخصص في كتابة الـshell coding وتحليل البرامج reverse engineering
هل يكفي اني اتعلم 32 بت ؟؟
وابي اعرف ماهو الفرق الي بين 16 بت و 32 بت ؟؟؟؟؟
وفعلا تحطمت لما عرفت ان تعلم 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 بت فارجوكم ساعدوني .. !!
مقالات 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
http://www.vividmachines.com/shellcode/shellcode.html
حياك اخي في ليونكس .. وانا من كتاب ال shellcodes وال exploits على linux ....
ولو عندك استفسارات انا وجميع الاعضاء ومشرفين قسم الاسمبلي راح نرد عليك بأذن الله ..
تم تعديل هذه المشاركة بواسطة Qnix في 20 سبتمبر 2005 في 23:25
اخوي Xacker شكرا على المساعدة .. لكن انا ابي win32bit assembly تحت الـConsole مو على طول على برمجة الويندوز والـAPI ..
مافيه كتاب الكتروني حلو تنصحوني فيه او موقع فيه دروس شاملة عن win32bit
لاني ودي احترف فيها عشان احلل البرامج وعشان shellcoding/reverse-engineering
وغير كذا انا مبتدأ في الاسمبلي يعني ابي من الصفر حتى احترف win32bit
برمجة ويندوز تحت الـ console؟ هذا يعني تطبيقات لا تستخدم الا تعليمات اسمبلي بدون مقاطعات او اوامر API وبالتالي اي مرجع يشرح لك تعليمات لغة الاسمبلي يعتبر جيد جدا!! الم تجد ما يفيدك في هذا الامر حتى الان!
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
السلام عليكم
هناك ثلاث دروس فى نفس الرابط الذى وضع اخونا X تحت قسم tutorials اسم الاول منها _masta_'s Win32Asm Tut 0 ثم ياتى 1 و2 بعدها مباشرة, تبداء من البداية وتعلمك كيف تكتب برنامج hello world فى بيئة الconsole :::
بالتوفيق..
والسلام عليكم
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
ابو غريب هذا اول ملف قلتلي اقراه شف وش مكتوب فيه :
--==PRE-KNOWLEDGE==-- I assume that you posses at least basic knowledge of Assembly language, which every Cracker, Coder (Speedfreak!) should have.
وانا ماعندي الاساسيات حقت الاسمبلي .. وياليت تعطوني اشياء مفيدة لتعلم الاساسيات قبل الدخول الى هذا الموقع وقراءة مواضيعه !!
بعدين سؤال خاص لك كيونيكس .. انت من وين تعلمت الاسمبلي حقت اليونيكس لاني شفت لك احد المواضيع وانت تكتب شيل كود خاص باللينكس ؟؟
ابي اعرف الموقع الي علمك الاسمبلي باللينكس والكتب الي قريتها والمقالات ؟؟؟؟؟؟؟؟؟؟؟
قرئت الكثير الكثير ... فانا لم اقوم بكتابت الشيل كود كامل بلأسمبلي
فقد قمت بكتابه التعليمات الكامله ببرنامج 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
كذا مثلا الى النهايه وبعدها نقوم بترتيب الشيل كود براحتنا ... وانتهى الامر .
هاذا مثال بسيط عسى تستفيد .
تسلم يالغالي ,,
الله يسلمك .. على كل حال اخي الكريم . ان كنت تريد كتب جميله تتكلم عن هاذا الموضوع
فانصحك بان تقوم بلبحث في amazon عن الموضوع الذي تريده .. وان وجدت المراد ابحث عنه
في الانترنت وستجده مجاني او اطلبه او اشتره من مكتبه .. فلكتبه اليدويه افضل واصح من الكتب
الالكترونيه .. ووفقك الله
إذا كنت لا تعرف اي شئ عن الاسمبلى يمكنك ان تبداء بكتاب AoA الاجزاء الاولى منه فقط يعنى اول 3 او 4 فصول ثم بعد ذلك يمكنك ان تقراء ملف asmintro.hlp والذى تجده فى مجلد c:\masm32\help وبعد ذلك تكلم فى الموقع الذى اعطاك إيها الاخ X ..
والسلام عليكم
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
هذا الي استناه انا .. اوكي راح اقرا اول اربع فصول واحفظهم زي اسمي .. الف شكر يالغالي
عفواً الان القيت نظرة سريعة على كتاب AoA واستطيع ان ارشدك بطريقة افضل..
الجزء الاول من الكتاب :
يمكنك تجاوز الفصل الاول والثانى لانه مقدمات وتعريف بنظام HLA:
الفصل الثالث والرابع مهم جداً ولكن يمكنك ان تتجاوز الشفرة المكتوبه بلغة HLA حاول فقط ان تفهمها ولكن لا تعرها إهتمام كبير إذا كنت تريد الانتقال لMasm32.
الجزء الثانى من الكتاب:
الفصل الاول مهم جداً جداً عدى 1.3 يمكنك تجاوزه لانه يتحدث عن لغة HLA...
الفصل الثانى مهم جداً عدى 2.11 ....
الفصل الثالث مهم جداً ...
الفصل الرابع مهم ...
الفصل الخامس قرائة عابره ...
الفصل السادس قارئه عابره ....
الفصل السابع مرور الكرام ... يعنى تصفح للإطلاع فقط...
بعدها يمكنك الانتقال لل Masm32 ولكن انصحك ان تحاول التطبيق فى masm32 اثناء القرائة لان الفرق بين ما هو مكتوب فى الكتاب والتطبيق ليس كبير ...
والسلام عليكم
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
تسلم على الرد ياابو غريب .. وانا اقرا في الفصول اكتشفت ان اول اربع فصول من كتاب AOA حق 16 بت يغطي نفس المواضيع الي انت وضحتها في كتاب AOA 32 بت
صح ولا انا غلطان ؟؟
للرفع
انتظر ردك ياابو غريب
توجد سلسلة دروس جيدة في 16Bit كتبها الأخ Chik و هي موجودة على الرابط التالي:
تم تعديل هذه المشاركة بواسطة خليل أونيس في 4 أكتوبر 2005 في 12:34
هذا الموضوع مغلق.