بنام خدا


عنوان پست



empty




فایل خالی :


آموزش ایجاد فایل کاملا خالی توسط زبان اسمبلی



آدرس پست


 https://vahidmy.blog.ir/post/37




قبل از شروع باید بگویم که من خودم شخصا به هیچ نرم افزاری اعتماد ندارم زیرا ممکن است درون نرم افزارهایی که دانلود می کنم یک بدافزار ( ویروس ، تروجان ، کی لاگر ، روتکیت ، جاسوس افزار، کرم ، باج افزار و ....)  قرار داشته باشد و سیستم مرا  آلوده کند .


حتی به نرم افزارهای اوپن سورس و رایگان  و آزاد نیز نباید به این راحتی ها   اعتماد کرد .


اینکه فلان نرم افزار ، اوپن سورس و آزاد است و همه می توانند سورس اش را ببینند هرگز دلیل نمی شود که لزوما  سالم و بی خطر نیز باشد . خیر . این تصور اشتباه است .


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


تنها راه برای تشخیص اینکه فلان نرم افزار واقعا سالم و بی خطر است اینست که  باینری نرم افزار را  ملاحظه کنیم . یعنی با کمک  hex editor  تک تک بایتهای تشکیل دهنده ی اون نرم افزار  را مشاهده کنیم تا اگر به کد مخربی برخورد کردیم اون کد را حذف یا  رونویسی کنیم .

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



ما باید فقط از نرم افزارهایی که شخصا خودمان می سازیم  استفاده کنیم و هرگز نرم افزارهای دیگران را دانلود و نصب نکنیم . چون ما خودمان بعنوان برنامه نویس ، دقیقا می دانیم چی نوشته ایم و از  سالم و بی خطر بودن نرم افزارمان کاملا  مطمئن هستیم .


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


برای شروع ، ابتدا  زبان اسمبلی (فایل  FasmW.exe) را  با دابل کلیک اجرا کنید . بعد یک مسیر برای ذخیره ی فایل سورس و باینری برنامه تان انتخاب کنید . مثلا  این مسیر می تواند خوب باشد :


D:\Assembly\Myapps



زبان اسمبلی را می توانید از پست  FasmVersions یا هر پستی که در آن نسخه های مختلف  فلت اسمبلر را برایتان  اپلود کردم  ،  دانلود کنید .  اسمبلی (فلت اسمبلر) بعد از دانلود ، هیچ نیازی به نصب یا کانفیگ ندارد . کافیست فایل فشرده را  extract نمایید .


خب حالا من فرض می کنم که شما  فایل  FasmW.exe  را پیدا کرده اید.


مسیر فرضی بالا را نیز روی هارد رایانه تان  ایجاد کنید .


حالا  که در محیط زبان اسمبلی (FasmW.exe) قرار دارید یک فایل با نام empty را در مسیر بالا ایجاد کنید . یعنی از منوی File  گزینه ی  save as   را  انتخاب کنید و مسیر بالا را انتخاب  نمایید .    خب حالا   بدون اینکه حتی یک کلمه تایپ کنید ،  کلید  F9  را فشار دهید . ظاهرا هیچ اتفاقی نمی افتد !!


اما کافیست به مسیر بالا که تعیین کرده اید بروید و شاهد فایلهای زیر باشید :


empty.ASM


empty.BIN 


جالب بود ! نه ؟؟؟؟

شما عملا اولین برنامه تان را به همین راحتی  با  کمک زبان اسمبلی و بدون حتی یک کلمه  کد  ، با پسوند  BIN   تحت محیط ویندوز ،  ساختید . یک برنامه ی  کاملا خالی  ولی اماده ی کدنویسی پیشرفته !!


اسمبلی عادت دارد که  برنامه های کاملا خالی را  بصورت  فایل  اجرایی با پسوند  BIN (باینری)  ایجاد کند .


سوال:  این فایل  empty.BIN   به چه دردی می خورد وقتیکه هیچ کدی در ان نوشته نشده و کاملا خالی است ؟؟؟



جواب:  فایلهای  با پسوند  BIN  فایلهای  Binary (باینری)  هستند که می توانید از انها استفاده های فراوان برای موارد بعدی  داشته باشید  . کاربردهای فایلهای  bin  بسیار زیاد است .

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



برای شروع  یادگیری زبان اسمبلی فعلا همین کار جالب و بامزه را انجام دهید تا در درس بعدی  یک برنامه ی کوچولو  ولی قابل اجرا و کاربردی را که خودم نوشته ام به شما معرفی کنم .

این برنامه که در پست بعدی معرفی می کنم و خودم انرا نوشته ام ، کد دارد . پس توخالی نیست و کاربرد خاص خودش را به شما  نشان می دهد .

+

+

به هرحال  با توجه به سختگیریهای  ویندوز  خصوصا برنامه ی   Windows defender    بر روی برنامه های زبان اسمبلی ، و برای جلوگیری از  آلوده شدن احتمالی سیستم ، بهتر است خودمان  با اسمبلی برنامه بنویسیم و عملا  برنامه های دیگران را بی جهت دانلود نکنیم و  امنیت  سیستم خودمان را به خطر نیاندازیم  . هرچند تمامی نرم افزارهایی که من تا به امروز  به شما معرفی کرده و در وبلاگ هایم  آپلود کرده ام  همگی سالم و بی خطر هستند  و من هرگز  با  آبروی خودم و زبان اسمبلی  بازی نمی کنم   ولی بهرحال  من به  Windows Defender  اعتماد می کنم و  از دانلود  برنامه های دیگران خودداری می کنم و اگر  ویندوز دیفندر  تشخیص داد که فلان نرم افزار ، آلوده است به حرف اش گوش می دهم و ان نرم افزار را حتی اگر سالم باشد از روی سیستم ام حذف می کنم   . احتیاط شرط عقل است .


بجای دانلود فایلهای ناشناس بهتر است خودمان فایل بسازیم  . هرچی باشه دست پخت خودمان است و به او اعتماد داریم .


از طرفی دیگه ،  دانلود کردن نرم افزارهای دیگران ،  مانع از یادگیری زبان اسمبلی می شودتا زمانیکه خودمان کدنویسی نکرده باشیم هرگز نمی توانیم به یادگرفتن اسمبلی امیدوارم باشیم .


پس برای اینکه زبان اسمبلی را احیا کنیم باید خودمان با دستهای خودمان  برنامه بسازیم و در سرتاسر وب فارسی  بازنشر کنیم .


من قصد دارم بجای اینکه به شما  ماهی بدهم ،  ماهیگیری را به شما یاد بدهم



لطفا نگویید : اسمبلی به درد نرم افزارهای بچه گانه و کوچک و بی ارزش می خورد و کاربردی ندارد .  خیر اینطور نیست   . هزاران نرم افزار حرفه ای و بزرگ و کارامد و قدرتمند  تا حالا با کمک اسمبلی ساخته شده اند . یعنی سورس کد شان کاملا با زبان اسمبلی نوشته شده است .


اما  من قصد دارم به امید خدا  بصورت گام به گام و پله به پله  ، اسمبلی را یاد بدهم   . 


پس طبیعی است که اولین برنامه ها ، از نظر شما  اسباب بازی  و چرت بنظر آیند .


کم کم به برنامه های بزرگ و کارامد و حرفه ای هم می رسیم  زیاد عجله نکنید  .   اگر کمی صبور باشید  روش  ساخت نرم افزارهای بزرگ  با زبان اسمبلی را شخصا در این وبلاگ به شما یاد می دهم .


این برنامه ای که اینجا آموزش دادم فقط برای دستگرمی بود . از پست بعد ، برنامه های دارای کد که کاربردی هستند را به شما معرفی خواهم کرد . انشاء ا...

+


موضوعات وبلاگ وحیدمی :

من  در تمامی پستهای وبلاگ وحیدمی ، سعی می کنم لااقل یک اشاره ای به موضوعات این وبلاگ داشته باشم . به همین دلیل برای تمامی پستهای این وبلاگ ،  تمام جعبه های موضوعات  وبلاگ  شامل  Idea ،  Assembly  ،  vahidmy  ، Music  ، Binary ، OS ، Weblog ، IT   ؛  را تیک می زنم که البته در دنیای وبلاگنویسی،  این رفتار ؛   کاری مضحک  و بی معنا و غیرحرفه ای محسوب می شود  ولی من به این قواعد و استانداردهای وبلاگنویسی اهمیت نمی دهم و دوست دارم هرطور که دلم می خواهد وبلاگنویسی نمایم و آزاد باشم . لذا  همینقدر که یک اشاره ی کوچک به این موضوعات در همین پاراگراف شد ،  از نظر خودم ، کافی است !!

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

من رسومات  کهنه ی دنیای  وبلاگنویسی و مرزهای علم را جابجا می کنم !!

از نظر من ضرورتی ندارد که محتویات یک پست با موضوع مربوطه همخوانی داشته باشد لذا مجبور نیستم در تمام پستها در رابطه با  موضوعات وبلاگ ام  ، مطلب بنویسم . همینقدر که در همین پاراگراف که در تمام پستها انرا کپی  و الصاق می نمایم ، به این موضوع اشاره کردم از نظر خودم کفایت می کند !!


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


این پاراگراف در تمامی پستهای وبلاگ وحیدمی  توسط خودم ، عینا الصاق و تکرار می شود .


+



وحید محمدی -  وبلاگ  وحیدمی 


https://vahidmy.blog.ir





بروزرسانی

براثر حملات سایبری به وبلاگ وحیدمی ؛ تمام کامنت های کاربرها و پاسخ های من به کاربرها  ؛ حذف شدند 


لعنت خدا و نفرین ملائکه بر هکرها و اتکرها و مجرمان سایبری . 


تاریخ بروزرسانی 


یکشنبه مورخ  29 مرداد 1402 خورشیدی 


نکته : 

آدرسهای  آخرین پست وبلاگ وحیدمی را در زیر مشاهده می فرمایید . 




در پناه خداوند متعال عظیم الشان باشید 

ِ

الهم  عجل  لولیک الفرج . 



امضای همیشگی اینجانب  در جهت تایید صحت و درستی مطالب وبلاگهایم   : 


وحید محمدی . وبلاگ  وحیدمی 


https://vahidmy.blog.ir





https://vahidmy.blog.ir/archive


https://vahidmy.blog.ir/post/764