ورود

View Full Version : اسمبلی تحت ویندوز 32 بیت



ali.asady
جمعه 18 شهریور 1390, 21:56 عصر
برای شروع می تونید محیط برنامه را از لینک زیر دانلود کنید

http://www.masm32.com/masmdl.htm

ali.asady
یک شنبه 20 شهریور 1390, 17:58 عصر
اولین برنامه ای که معمولا برای شروع توی هر برنامه نویسی آموزش میدن


.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
HelloWorld db "Hello World!", 0
.code
start:
invoke MessageBoxA, NULL, addr HelloWorld, addr HelloWorld, MB_OK
invoke ExitProcess, 0
end start


اما توضیح اینکه این برنامه نویسی تقریبا سطح متوسط هستش
همون طوری که می بینید خبری از وقفه ها و بعضی از مواردی که تو داس بود نیست
سه خط اول مربوط به راهنمای اسمبلر و 5 خط بعد هم فایلهای سرآیند و بعد در قسمت دیتا معرفی متغییر و در قسمت کد
برنامه نویسی
بعدا با ذره بین این برنامه رو توضیح کامل میدم :لبخندساده:

joker
دوشنبه 21 شهریور 1390, 16:59 عصر
یکی از آموزشهای خوب برای اسمبلی 32بیتی ، کتاب آقای مهندس غلامیان به اسم کرک و تکنیکهای نفوذ به نرم افزار هست
دانلود مستقیم کتاب به حجم 18 مگابایت

http://ALT.ir/other/crack-book.zip


پیوست (http://shabgard.ir/forums/showthread.php?t=9847&page=23)

ali.asady
سه شنبه 22 شهریور 1390, 16:57 عصر
یکی از آموزشهای خوب برای اسمبلی 32بیتی ، کتاب آقای مهندس غلامیان به اسم کرک و تکنیکهای نفوذ به نرم افزار هست
دانلود مستقیم کتاب به حجم 18 مگابایت

http://ALT.ir/other/crack-book.zip


پیوست (http://shabgard.ir/forums/showthread.php?t=9847&page=23)

این لینک که پیغام زیر رو میده دوست عزیز

Not Found

The requested URL /other/crack-book.zip was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2 Server at alt.ir Port 80

unknown.unforgiven
سه شنبه 22 شهریور 1390, 17:20 عصر
میتونید از این لینک (http://barnamenevis.org/showthread.php?277763-%DA%A9%D8%AA%D8%A7%D8%A8-Crack-%D9%88-%D8%AA%DA%A9%D9%86%DB%8C%DA%A9-%D9%87%D8%A7%DB%8C-%D9%86%D9%81%D9%88%D8%B0-%D8%A8%D9%87-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1&p=1227128&viewfull=1#post1227128) دانلودش بکنید

joker
چهارشنبه 23 شهریور 1390, 14:15 عصر
اين سايت ما هم هر از چندگاهي ميره قاطي باقاليا :)
از اين آدرس بگيريد
http://ecc.ir/other/crack-book.zip
تست كردم الان.

اون چيزي كه تو لينك اصلي هست به همراه فايلهاي جانبي هست و حجمش زياده ، اگه كسي مشكل دانلود نداره ميتونه اونا دانلود كنه

xman_1365_x
شنبه 26 شهریور 1390, 02:38 صبح
برنامه اول به این شکل نوشته میشه که تفاوت پارامتر ها مشخص باشه


.386
.model flat,stdcall ;memory model in win32 is flat
option casemap:none ;case sensitive

include \masm32\include\windows.inc ;MB_OK

include \masm32\include\kernel32.inc ;ExitProcess,
includelib \masm32\lib\kernel32.lib

include \masm32\include\user32.inc ;MessageBox,
includelib \masm32\lib\user32.lib

.data
MsgBoxCaption db "Win32 Assembly",0

MsgBoxText db "hello beginner :D",0

.code
start:
invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
invoke ExitProcess, NULL
end start


اینم (http://win32assembly.online.fr/)یک مرجع خوبه
اما نه برای شروع چون باید یک سری مقدماتو دونست پیشنهاد میکنم کتاب essentials of 80*86 assembly language
رو البته ترجمش هم هست به اسم زبان اسمبلی و معماری ریزپردازنده80*86 مترجم:مشحون همینجا بگم ترجمشو خوندم پر اشکال هست :اشتباه:اما بازم برای شروع کسی که آشنایی داره با اسمبلی 8086 و 80286 خوبه
بعد بیاین وارد API ها بشین

ali.asady
شنبه 26 شهریور 1390, 16:12 عصر
:افسرده:من می خوام با اسمبل 32 سکتور هارد رو بخونم باید چکار کنم:متفکر:

xman_1365_x
شنبه 26 شهریور 1390, 17:42 عصر
:افسرده:من می خوام با اسمبل 32 سکتور هارد رو بخونم باید چکار کنم:متفکر:

جستجو کنید:لبخند:
خدا بخیر کنه هنوز مسیج باکس رو نشون نداده رفتین کجا :لبخندساده:
بازم میگم اول با اسمبلی 32 آشنا بشین بعد برین سراغ API ،مگر اینکه با c win32 کار کرده باشین


Reading/Writing Disk Sectors (Absolute Disk Read/Write) (http://www.codeguru.com/cpp/w-p/system/misc/article.php/c5765/ReadingWriting-Disk-Sectors-Absolute-Disk-ReadWrite.htm)
reading sector "0" (http://www.codeguru.com/forum/archive/index.php/t-97391.html)
FDump - Dumping File Sectors Directly from Disk using Logical Offsets (http://www.codeproject.com/KB/files/FDump.aspx)
MSDN:
Calling DeviceIoControl (http://msdn.microsoft.com/en-us/library/aa363147(v=VS.85).aspx)

DeviceIoControl function (http://msdn.microsoft.com/en-us/library/aa363216(v=vs.85).aspx)
DeviceIoControl function (http://msdn.microsoft.com/en-us/library/aa363216(v=VS.85).aspx)

ali.asady
شنبه 26 شهریور 1390, 22:59 عصر
این ها رو قبلا دیده بودم و بلد بودم ولی ته هاردم(مغز)گمشده بود مرسی از یاد آوری گذشته های خوب وبد:افسرده:

A B C D
یک شنبه 27 شهریور 1390, 22:21 عصر
من اسمبلی ویندوز کار نکردم (ولی روی لینوکس کارهایی در حد پایه کردم از روی یک کتاب آموزشی).
یکی از رفقا میگفت که ویندوز جلوی بعضی از دسترسی ها و اجرای بعضی از دستورها رو با اسمبلی میگیره. آیا همچین چیزی صحت داره؟
مثلا شاید جلوی دستوراتی رو که سعی میکنن به هستهء خود ویندوز رخنه کنن میگیره. بهرحال ویندوز یه سیستم عامل انحصاری تجاری و کدبسته هست، اما لینوکس خب همه چیزش آزاده.

Delphi Coder
دوشنبه 28 شهریور 1390, 07:41 صبح
به نظر من اسمبلی کلا زبان فقیری هست مخصوصا تو ویندوز و در شرایطی که خود میکروسافت ظاهرا تمایلی به پشتیبانی این زبان نداره. خیلی از برنامه نویسانی که علاقه زیادی به اسمبلی دارند سعی کردن در حد توانشون کارهایی رو برای راحت تر شدن برنامه نویسی به این زبان انجام بدن ولی هنوز یک IDE خوب و ایده ال برای اون نیست (بهترینش به نظرم Winasm هست ولی ...). من آموزشهای Iczelion رو برای ویندوز خیلی ارزشمند میدونم یه کپی از سایتش اینجا هست: http://win32assembly.programminghorizon.com/

unknown.unforgiven
شنبه 02 مهر 1390, 13:43 عصر
به نظر من اسمبلی کلا زبان فقیری هست
از نظر شما چه زبانی فقیر نیست؟ دلفی؟ C؟ ++C؟ #C؟ VB؟ همه این زبان ها خروجیشون میتونه فایل اجرایی باشه. فایل اجرایی هم در اصل کد به زبان ماشین هستش. نسبت تبدیل زبان ماشین و اسمبلی هم 1:1 هست، در نتیجه میشه گفت اسمبلی و زبان ماشین تقریباً یکی هستن فقط نوشتارشون با هم فرق میکنه. اینم یعنی اینکه تمام اون فایل های اجرایی که با زبانهای فقیر یا غیر فقیر تولید میشن، با اسمبلی هم میتونن تولید بشن!

در شرایطی که خود میکروسافت ظاهرا تمایلی به پشتیبانی این زبان نداره
هیچ منبعی در رابطه با این حرفتون پیدا نکردم

خیلی از برنامه نویسانی که علاقه زیادی به اسمبلی دارند سعی کردن در حد توانشون کارهایی رو برای راحت تر شدن برنامه نویسی به این زبان انجام بدن
برنامه نویسای حرفه ای اسمبلی به خاطر این وارد این زبان شدن که دنبال بهینه تر کردن و آزادی عمل بیشتر بگردن نه دنبال راحتی کار واسه خودشون. اگه میخواستن میتونستن مثل خیلی های دیگه برن سراغ بقیه زبان های برنامه نویسی

هنوز یک IDE خوب و ایده ال برای اون نیست
اگه برنامه نویس برنامه نویس باشه تو همون notepad هم میتونه کد بزنه. IDE فقط یه پوسته برای راحتی کار برای ارتباط بین برنامه نویس و کامپایلره. منم هیچ دلیلی نمیبینم که این وسط به IDE احتیاج باشه چون همه چیز به صورت دستی داره پیاده سازی میشه و عملاً IDE هم باشه به هیچ دردی نمیخوره و تنها کاری که میکنه اینه که فضای رم اشغال کنه

نمیدونم چرا با وجود اون همه مثال خوب تو اون سایتی که معرفی کردید، دارید میگید اسمبلی زبان فقیریه؟!!! از دوستان خواهش میکنم به یه زبان برنامه نویسی از دید برنامه hello world نگاه نکنن

hepL3r
شنبه 02 مهر 1390, 16:17 عصر
اسمبلی زبان فقیری نیست بلکه از نظر قدرت از خیلی از زبان های دیگه قدرت بیشتری داره اما این وسط چنتا عامل باعث میشه اسمبلی مورد توجه قرار نگیره .
اولیش سرعت توسعه یک برنامه هست . مثلا" برای برنامه ای که توی زبان دلفی 6 خط بیشتر نمیشه , توی اسمبلی باید 16 خط دستور بنویسید .
دومین دلیل نبود کتابخانه های خوب برای اسمبلی هست . به عنوان مثال شما اگه یه برنامه بخوایید بنویسید که از RSA استفاده کنه توی دلفی از FGInt استفاده میکنید و توی اسمبلی از BigLib ولی وقتی میخوایید یه برنامه بنویسید از ECDSA استفاده کنه مجبورید برید سراغ دلفی یا زبان های دیگه و دیگه نمیشه از اسمبلی استفاده کرد , مگر اینکه خودتون واسش توابع کتابخانه ای بنویسید !
در مورد IDE باید بگم IDE فقط کار برنامه نویسی رو راحت تر میکنه و توی قدرت برنامه نویس تاثیری نداره . زبان هایی مثل C یا ASM همگی بدون IDE هم میتونن کار کنن مثل Borland C++ برای C++ .
البته شما میتونید از اسمبلی توی C و دلفی هم استفاده کنید و این خودش قدرت این زبان رو میرسونه .
اسمبلی برای نوشتن برنامه های محاسباتی فوق العاده هست و سرعت بسیار بالایی هم داره .
بعد از کمی کار با اسمبلی شما خودتون متوجه میشید که این زبان چقدر قدرتمنده .