وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

وو

وحید آنلاین . آرشیو وبلاگ وحیدمی دات آی آر . شرکت بیان. vahidmy.blog.ir

مشکلات وبلاگ وحیدمی





به نام خدا


مشکلات وبلاگ وحیدمی


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


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


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


شاید این پست آخرین پست باشد  شاید هم نباشد . خدا بهتر می داند .


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


1- فایل مربوط به نسخه ی اصلی و اوریجینال اسمبلر RosAsm بصورت مستقیم دانلود نمی شود . یعنی هرچقدر روی دکمه ی  دریافت  کلیک  کردم  پیام داد : این فایل نمی تواند دانلود شود 


لذا روی دکمه ی دریافت  ، راست کلیک کردم و روی گزینه ی Save target as   کلیک کردم و بعد دیدم که فایل  OriginalRosAsm.zip  به راحتی دانلود شد .


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


بهرحال اگر تا به این لحظه موفق به دانلود فایل مربوط به نسخه ی اوریجینال اسمبلر RosAsm نشده اید با روش فوق می توانید انرا دانلود نمایید .


2- هنگام دانلود فایل  مربوط به Tiny Hexer  ، ویندوز دفندر با اعلام اینکه این فایل حاوی ویروس است مانع از دانلود این هگز ادیتور شد .


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


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


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


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


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


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

ضمنا من عادت دارم که از هارد دیسک بعنوان انباری و محل نگهداری فایلها استفاده نمایم لذا ویندوز تنها سیستم عامل دنیاست که این امکان را برایم فراهم می کند .


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




بگذریم .


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


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


ویندوز دفندر همچون یک سگ هار  به تمام فایلهای روی هارد دیسک ام حمله کرد و بسیاری از فایلهای روی هارد کامپیوترم را که کاملا سالم و بی خطر بودند را حذف کرد !!


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

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


در گیتهاب کافیست لغت Windows را تایپ کنید تا با مخازن سیستم عامل ویندوز مواجه شوید . یک مرور که بنمایید با مخازنی آشنا  می شوید که روش حذف ویندوز دفندر و سایر نرم افزارهی اضافی ویندوز 10 را به شما آموزش می دهند .



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



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


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


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


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


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


اگر عمری بود و حال و حوصله داشتم و اعصابم راحت بود  شاید پست بعدی را نیز ارسال نمایم  . انشاا...


+


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

















هر پست حداکثر می تواند 300000 حرف باشد





به نام خدا


عنوان پست :


هر پست حداکثر می تواند 300000 حرف باشد 


آدرس پست :


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




محدودیت جدید و ظالمانه ی شرکت بیان: هر پست حداکثر می تواند 300000 حرف باشد


پست قبلی  به شماره ی 235  و تحت عنوان  pe.txt  به دلیل محدودیتهای فنی شرکت بیان و کرش کردن مکرر سیستم و هنگ کردن مکرر مرورگر ، بطور کامل تخلیه شد و درعوض ، فایل pe.txt بدون ترجمه  آپلود گردید . حجم فایل فقط 93 کیلوبایت می باشد  یعنی خیلی کمتر از محدودیت 300 کیلوبایتی که شرکت بیان برای تعداد حروف هر مطلب پست وبلاگی تعیین کرده است . 


هر کیلو بایت = 1024 بایت 


هر بایت = یک حرف 


300 هزار حرف = 300 هزار بایت


حجم این فایل حدود 94000 بایت یعنی 94000 حرف می باشد زیرا هر حرف دقیقا با یک بایت ، مطابقت دارد . 


بنابراین ، محدودیت 300 هزار حرف یعنی اینکه سیستم می بایست بطور طبیعی امکان انتشار پست تا حد 300 هزار بایت را داشته باشد و این درحالی است که محتوای این فایل فقط 94000 بایت است . 


بهرحال خیلی عجیب و غیرمنطقی به نظر می رسد . 


این نیز نشانه ی نبوغ  مهندسان ایرانی است که یک محاسبه ی ساده را نیز نمی توانند انجام دهند !!!


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




pe.txt






به نام خدا



عنوان پست :



pe.txt


آدرس پست براساس شماره ترتیبی :


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



محتوای پست :



دانلود فایل معروف  PE.TXT  ( برنامه نویسی با زبان ماشین براساس معماری نرم افزارهای ویندوز)


programming with hex editor

programming by machine code

programming by hex editor

programming without bug


برنامه نویسی با هگز ادیتور

برنامه نویسی با زبان ماشین

برنامه نویسی بدون باگ 

برنامه نویسی گام به گام براساس معماری نرم افزارها و کتابخانه ها و  درایورهای ویندوز 


نکته :


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

بنابراین مجبور شدم کل محتوای انگلیسی و فارسی را حذف کرده و به آپلود فایل اصلی ، بسنده نمایم  . 



The PE File Format by B. Luevelsmeyer


pe file format= *.exe , *.dll, *.sys,*.OCX,*.CPL,*.MSI,*.SCR



لینک مستقیم دانلود فایل معروف  PE.TXT  


Size: 93 KB



https://bayanbox.ir/download/6830422452773760674/PE.txt







Tutorial 1: Overview of PE file format






Tutorial 1: Overview of PE file format

 

خودآموز 1 : مروری بر فرمت فایل پی (معماری فایلهای مربوط به نرم افزارها و درایورها و بازیها و کتابخانه های ویندوز و اجزای کنترل پنل و محافظ صفحه نمایش (اسکرین سیور) و اکتیو ایکس )

 

This is the complete rewrite of the old PE tutorial no1 which I considered the worst tutorial I have ever written. So I decided to replace it with this new one.

 

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

بنابراین من تصمیم گرفتم انرا با این خوداموز جدید جایگزین کنم .

+


)

   توضیح مترجم : هویت این جناب ایکزیلیون Iczelion ، معلوم نیست و احتمالا ایشان یک هکر کلاه سفید فرانسوی یا ژاپنی  می باشد .

طبق داده های جدید معلوم شد ایشان یک هکر کلاه سفید ژاپنی می باشند .

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

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

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

(به دلایل نامعلوم امکان تایپ لغات انگلیسی در لابلای متون فارسی مقدور نمی باشد )

 

متاسفانه سایت رسمی ایشان توسط دولت ایران فیلتر شد و حتی توسط دشمنان آزادی کاربر( مایکروسافت و شرکای اش ) و دشمنان زبان اسمبلی نیز بطور کامل از وب حذف گردید .

بدبختانه هم شرکت مایکروسافت و شرکای تجاری اش و هم افراد و شرکتها و سایتهای مختلف به بهانه های مختلف اقدام به نابودی این سایت نمودند

( خدا همه ی اینها را لعنت کند )

 

سایت ایشان با نام " افق اسمبلی " عملا بزرگترین مرجع اموزش برنامه نویسی با زبان اسمبلی تحت ویندوز ، بود و من دقیقا از طریق همین سایت توانستم روش برنامه نویسی با زبان اسمبلی تحت ویندوز را یاد بگیرم .

 

متاسفانه امروزه هیچ اثری از سایت ایشان یافت نمی شود و عملا زحمات ایشان برباد رفت .


لعنت خدا بر دشمنان آزادی

 

بسیاری از خودآموزهای زبان اسمبلی ابتدا توسط ایشان تهیه و تدوین شدند و بعدها توسط سایر افراد بازنشر شدند

 

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

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

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

البته سالهاست که هیچ کار جدیدی از ایشان در وب یافت نشده است


(


ادامه ی ترجمه:

 

 

PE stands for Portable Executable.

 

 

پی مخفف عبارت "فایل اجرایی قابل حمل " می باشد

(قابل حمل روی تمام نسخه های ویندوز و تمام پردازنده های سازگار با ویندوز شامل اینتل و سایر پردازنده ها )

 

It's the native file format of Win32.

 

آن فرمت فایل بومی ویندوز 32 بیتی می باشد

Its specification is derived somewhat from the Unix Coff (common object file format).

 

 

خصوصیات اش از یونیکس کاف مشتق شده است (کاف مخفف عبارت فرمت فایل هدف مشترک می باشد )

(توضیح مترجم: تمام سیستم عاملهای امروزی اعم از داس و فری داس و ویندوز و  لینوکس و اندروید و بی اس دی یونیکس و نت بی اس دی و فری بی اس دی و اوپن بی اس دی و مک او اس و آی او اس و ....... همگی فرزندان سیستم عامل مولتیکس می باشند . این کاف نیز از مولتیکس به یونیکس و از یونیکس به ویندوز به ارث رسیده است )

 

ادامه ی ترجمه:

The meaning of "portable executable" is that the file format is universal across win32 platform: the PE loader of every win32 platform recognizes and uses this file format even when Windows is running on CPU platforms other than Intel.

 

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

 

 

 

It doesn't mean your PE executables would be able to port to other CPU platforms without change.

 

این حرف بدین معنا نیست که فایلهای اجرایی تان می تواند به سایر پلتفرمهای پردازنده ، بدون هیچگونه تغییر ؛ پورت شود .

 

(توضیح مترجم : با کمک زبان ماشین (هگز ادیتور) و تغییر دادن برخی از کدهای هگز ، می توان نرم افزارهای ویندوزی و حتی خود سیستم عامل ویندوز را بر روی انواع پردازنده ها پورت نمود . کافیست بجای کد هگز مربوط به پردازنده ی اینتل ، کدهای هگز مربوط به سایر پردازنده ها را رونویسی نماییم و به سبک این پردازنده ها آدرسدهی نماییم . البته اینکار دشواریهای فراوان دارد . مثلا باید یاد بگیریم که هرپردازنده ، بایتهای نرم افزار را به چه شکلی می چیند و ردیف می کند . بعنوان مثال پردازنده ی موتورولا ترتیب بایتها را به شکل مستقیم و ساده می چیند لذا سرعت اجرای نرم افزارهای این پردازنده از سرعت اجرای نرم افزارهای پردازنده ی اینتل بیشتر است زیرا همه چیز در پردازنده ی اینتل بصورت معکوس است اما در موتورولا همه چیز بصورت مستقیم است .

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

 

Every win32 executable (except VxDs and 16-bit Dlls) uses PE file format.

 

هر فایل اجرایی وین32 (به استثنای فایلهای وی ایکس دی و دی ال ال های 16 بیتی ) ، فرمت فایل پی را بکار می برد .

 

 

Even NT's kernel mode drivers use PE file format.


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

 

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

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

 

 

 

Thus studying the PE file format gives you valuable insights into the structure of Windows.

 

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

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

 

Let's jump into the general outline of PE file format without further ado.

 

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

 

 

DOS MZ header

DOS stub

PE header

Section table

Section 1

Section 2

Section ...

Section n


 

 

The above picture is the general layout of a PE file.

 

تصویر بالا آرایش کلی یک فایل پی می باشد .

 

 

All PE files (even 32-bit DLLs) must start with a simple DOS MZ header.

تمام فایلهای پی ( حتی دی ال ال های 32 بیتی ) باید با یک هدر ساده ی داس شروع شوند .

ام زد یعنی مارک زبیکوسکی . ایشان یکی از معماران اصلی سیستم عامل ام اس داس بود .

 

 

We usually aren't interested in this structure much.

 

ما معمولا زیاد به این ساختار علاقه مند نشده ایم (چندان از آن خوشمان نیامده است ) .

 

It's provided in the case when the program is run from DOS, so DOS can recognize it as a valid executable and can thus run the DOS stub which is stored next to the MZ header.


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

 

 

The DOS stub is actually a valid EXE that is executed in case the operating system doesn't know about PE file format.


ریشه ی داس حقیقتا یک فایل اجرایی معتبر است که اجرا شده است در موردی که سیستم عامل ( داس ) چیزی در مورد فرمت فایل پی نمی داند .

 

 

It can simply display a string like "This program requires Windows" or it can be a full-blown DOS program depending on the intent of the programmer.



این برنامه به سادگی می تواند یک رشته کاراکتر مانند این را که می گوید " این برنامه به ویندوز نیاز دارد " را نمایش دهد یا او می تواند بسته به مرام ( قصد یا هدف ) برنامه نویس ، یک برنامه ی متورم داس باشد.

 

 

We are also not very interested in DOS stub: it's usually provided by the assembler/compiler. In most case, it simply uses int 21h, service 9 to print a string saying "This program cannot run in DOS mode".

 

ما همچنین خیلی علاقه مند نیستیم به ریشه ی داس : او معمولا بوسیله ی اسمبلر یا کامپایلر فراهم ( تولید ) می شود .

در بیشتر موارد ، او به سادگی وقفه ی اینت 21 اچ ، سرویس 9 را برای چاپ یک رشته ی کاراکتر که می گوید " این برنامه نمی تواند در مدل داس اجرا شود " بکار می برد .

 

 

After the DOS stub comes the PE header.

 

بعد از ریشه ی داس ، نوبت به پی هدر می رسد .

 

The PE header is a general term for the PE-related structure named IMAGE_NT_HEADERS.

 

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

IMAGE_NT_HEADERS.

 

 

 

This structure contains many essential fields that are used by the PE loader.


این ساختار فیلدهای اصلی فراوانی

را شامل می شود که توسط پی لودر بکار گرفته شده اند .

 

 

 

 

 

We will be quite familiar with it as you know more about PE file format.


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

 

In the case the program is executed in the operating system that knows about PE file format, the PE loader can find the starting offset of the PE header from the DOS MZ header.


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

 

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

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

 

Thus it can skip the DOS stub and go directly to the PE header which is the real file header.


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

 

( مترجم : منظور از پی هدر همان فایل هدر می باشد ) .

 

The real content of the PE file is divided into blocks called sections.



محتوای واقعی فایل پی ( نرم افزار ویندوزی ) به بلوکهایی که سکشن نامیده شده اند تقسیم شده است .

 

(سکشن یعنی فصل - باند - بخش - قسمت - بلوک )

 

 

A section is nothing more than a block of data with common attributes such as code/data, read/write etc.



یک سکشن چیزی بیشتر از یک بلوک از داده های حاوی صفات مشترک نیست : صفاتی از قبیل : کد / داده ، خواندن / نوشتن و غیره .


 

( طبق این تعریف : سکشن یعنی دسته ای از داده ها که دارای صفات مشترک می باشند ) .

 

You can think of a PE file as a logical disk.


شما می توانید یک فایل پی ( نرم افزار قابل حمل ) را بعنوان یک دیسک منطقی تصور نمایید .

 

 

The PE header is the boot sector and the sections are files in the disk.



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

 

 

The files can have different attributes such as read-only, system, hidden, archive and so on.



فایلها می توانند صفات متفاوت از قبیل فقط -خواندنی ، سیستمی ، مخفی ، آرشیوی و غیره داشته باشند .

 

 

I want to make it clear from this point onwards that the grouping of data into a section is done on the common attribute basis: not on logical basis.



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

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

 

 

 

It doesn't matter how the code/data are used , if the data/code in the PE file have the same attribute, they can be lumped together in a section.



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

 

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

 

You should not think of a section as "data", "code" or some other logical concepts: sections can contain both code and data provided that they have the same attribute. If you have a block of data that you want to be read-only, you can put that data in the section that is marked as read-only.



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

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

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

 

(توضیح مترجم: صفت فقط -خواندنی امنیت داده ها را افزایش می دهد و مانع از الودگی نرم افزار می شود اما از انطرف، آزادی کاربران و توسعه دهندگان را نابود می کند . بنابراین من چندان با این پیشنهاد موافق نیستم . بهرحال هدف از رمزگشایی معماری نرم افزارها اینست که به آزادی برسیم . لذا هرگز نرم افزارهای خودم را در حالت فقط خواندنی قرار نمی دهم تا عملا زبان ماشین توسعه یابد و توسط سایر افراد بعنوان زبان برنامه نویسی اصلی بکار رود . تنها راه احیای زبانهای سطح پایین یعنی ماشین و اسمبلی اینست که اجازه دهیم سایر کاربران از سرتاسر جهان نرم افزارهایی را که ما با کمک این زبانها ساخته ایم را آزادانه بازنویسی و اصلاح نمایند و اینطوری باعث ترویج غیرمستقیم زبانهای سطح پایین ( ماشین و اسمبلی ) بشویم . اینطوری زحمت ما کمتر می شود و خیالمان بابت توسعه ی سریع این دو زبان راحت می شود . لذا نباید جلوی آزادی کاربران را بگیریم . )

 

 

When the PE loader maps the sections into memory, it examines the attributes of the sections and gives the memory block occupied by the sections the indicated attributes.



هنگامیکه پی لودر (بارگزار فایل پی ) سکشن ها را به درون حافظه ی رم ترسیم می نماید ، او صفات سکشن ها را آزمایش می نماید و ارائه می دهد بلوکهای حافظه که مشغول شده اند بوسیله ی سکشنهایی که این صفات را نمایش داده اند .

 

(توضیح مترجم : شخصا از اینهمه حرف تعریف در زبان انگلیسی متنفرم . هر دو کلمه یکبار از حرف تعریف استفاده می کنند طوریکه اصلا نمی توان مثل ادم ، متن را به درستی ترجمه کرد . )

 

If we view the PE file format as a logical disk, the PE header as the boot sector and the sections as files, we still don't have enough information to find out where the files reside on the disk, ie. we haven't discussed the directory equivalent of the PE file format.



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

 

 

 

 

Immediately following the PE header is the section table which is an array of structures.



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

 

(توضیح مترجم : منظور از پی هدر ، همان فایل هدر می باشد ) .

 

 

Each structure contains the information about each section in the PE file such as its attribute, the file offset, virtual offset.



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

 

 

 

 

If there are 5 sections in the PE file, there will be exactly 5 members in this structure array.



اگر 5 سکشن در فایل پی وجود داشته باشند ، در جدول سکشن عینا 5 عضو در این آرایه ی ساختار وجود خواهد داشت .

 

 

( توضیح مترجم : ببینید در 99 درصد موارد ، نرم افزارهای ویندوز بیش از یک سکشن دارند لذا جدول سکشن در این موارد بیش از یک هدر سکشن خواهد بود و مثلا برای سکشن کد یک هدر جدا و برای سکشن داده نیز یک هدر جدا خواهیم داشت ولی تعداد عناصر درون هر هدر سکشن همیشه ثابت است و ربطی به تعداد سکشن های درون نرم افزار ندارد .

این را گفتم که یک وقت دچار تردید و اشتباه نشوید . زیرا تعداد اعضای هر هدر سکشن همیشه ثابت است و هرگز کم یا زیاد نمی شود و هیچ ربطی به تعداد سکشنها ندارد

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

 

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

 

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

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

البته از روی نوشته های قبلی نویسنده می توان فهمید که او از سکشن یکپارچه ( و به قول خودش قلنبه ) متنفر است و دوست دارد سکشنها از هم جدا باشند که این طرز فکر کاملا غلط و خطرناک است و باعث افزایش نفوذ ویروسها و بدافزارها به ساختمان نرم افزار می شود . لذا من با این عقاید نویسنده مخالف هستم ومعتقدم که نرم افزار هرگز نباید بیش از یک سکشن داشته باشد و باید فقط یک سکشن داشته باشد که این یک سکشن نیز باید یک سکشن همه منظوره باشد . )

 

 

 

 

We can then view the section table as the root directory of the logical disk.



ما آنگاه می توانیم مشاهده نماییم جدول سکشن را همچون دایرکتوری روت دیسک منطقی ( شبیه به یونیکس ) .

 

 

Each member of the array is equvalent to the each directory entry in the root directory.



هر عضو از آرایه با هر ورودی دایرکتوری در دایرکتوری روت ، معادل می باشد .

 

( توضیح مترجم :

روت = ریشه

روت یعنی ریشه ی سیستم عامل . این  لغت از یونیکس پیدا شده است و گویا نویسنده ی این مقاله دوست دارد ویندوز نیز همچون یونیکس یک سیستم عامل درختی باشد که دایرکتوری روت ، ریشه ی این درخت باشد و سکشنها شاخه های درخت !!!

اما این اصلا با ذات و ماهیت داس و ویندوز سازگار نیست زیرا داس و ویندوز از لحاظ معماری تفاوتهای بسیار زیادی با یونیکس و لینوکس دارند

( 

 

That's all about the physical layout of the PE file format.

این تمام آرایش فیزیکی فرمت فایل پی می باشد .

 

I'll summarize the major steps in loading a PE file into memory below:



من مراحل بزرگ بارگیری یک فایل پی به درون حافظه ی رم را به شکل زیر خلاصه می نمایم :

 

 

When the PE file is run, the PE loader examines the DOS MZ header for the offset of the PE header. If found, it skips to the PE header.


1- هنگامیکه فایل پی درحال اجرا می باشد ، پی لودر ، هدر داس را برای یافتن آفست پی هدر ، آزمایش می نماید

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

 

( توضیح : آفست پی هدر یعنی فاصله ی دقیق بین پی هدر و هدر داس و درواقع آفست یعنی آدرس جایی که پی هدر قرار دارد . )

 

The PE loader checks if the PE header is valid. If so, it goes to the end of the PE header.



2- پی لودر بررسی می کند ببیند آیا پی هدر معتبر است یا نه . اگر دید که پی هدر معتبر است ، او به بخش پایانی پی هدر حرکت می نماید .

 

Immediately following the PE header is the section table. The PE header reads information about the sections and maps those sections into memory using file mapping. It also gives each section the attributes as specified in the section table.



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

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

 

After the PE file is mapped into memory, the PE loader concerns itself with the logical parts of the PE file, such as the import table.



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

 

 

The above steps are oversimplification and are based on my own observation. There may be some inaccuracies but it should give you the clear picture of the process.



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

 

 

 



 

 

تشریح ( و تصحیح محتویات ) فایل متنی آموزشی قدیمی درباره ی فرمت فایل پی .

 

پایان ترجمه

+

$Id: pe.txt,v 1.9 1999/03/20 23:55:09 LUEVELSMEYER Exp $

 

 

( توضیح مترجم :

این فایل که با نامی نامانوس در بالا همراه با تاریخ و ساعت دقیق ، ذکر شده است تحت نام کلی زیر در دسترس می باشد :

 


pe.txt


در این فایل متنی ساده عملا مراحل برنامه نویسی دستی با زبان ماشین بصورت گام به گام برای ویندوز ان تی توضیح داده شده است که حدس می زنم روی ویندوزهای مبتنی بر ویندوز ان تی یعنی ویندوزهای ایکس پی به بالا ( مثلا ویندوزهای ویستا و 7 و 8 و 10 ) بتوان این آموزش را عملا پیاده سازی کرد .

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

 

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

 

من در آینده ی نزدیک محتویات این فایل متنی ساده را ترجمه خواهم کرد .

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

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

+

سایر مباحث مربوط به معماری فایلهای ویندوز را به مرور زمان ترجمه می نمایم .

 

خصوصا مباحث مربوط به سکشن ورودی و خروجی !!!

 

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

 

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

 

 

عنوان پست بعدی وبلاگ وحیدمی، این می باشد:

pe.txt


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

اگر این آزمایش جواب دهد من به آرزوی دیرینه ام یعنی برنامه نویسی حرفه ای با زبان ماشین( هگز ادیتور) تحت ویندوز، خواهم رسید .

 

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

 

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

 

petute.chm


متاسفانه امکان آپلود و دانلود این فایل بدلیل باگهای جدید و عجیب آپلود سنتر بیان ، فراهم نشد .

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


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



اما شما می توانید این فایل ارزشمند را در پکیج  Masm32.zip   در مسیر زیر  پیدا کنید :


D:\masm32\tutorial\petute


توجه داشته باشید که اسمبلر  Masm32 را باید حتما روی ریشه ی درایو نصب کنید . دقیقا به شکلی که در بالا می بینید .


شما می توانید اسمبلر Masm32 را از سایت رسمی اش و یا از وبلاگهای من دانلود نمایید .


لینک دانلود اسمبلر  Masm32 از سایت رسمی :


http://masm32.masmcode.com/masm32/masm32v11r.zip

















 

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

 

عملا قالب این فایل بهم ریخته است .

 

+++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++

نویسنده ی اصلی مقاله ی بالا :

 


Iczelion

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





 

مترجم : وحید محمدی - وبلاگ وحیدمی

 

https://vahidmy.blog.ir


+

 

بروزرسانی :


آدرسهای منفرد باقیمانده از  ایکزیلیون:



Iczelion's Win32 Assembly Tutorial 1: The Basic (interq.or.jp)



Iczelion's Win32 Assembly Tutorial 3: A Simple Window (interq.or.jp)


http://www.interq.or.jp/chubu/r6/masm32/tute/tute003.html



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


جمعه 12 آذر 1400 شمسی



https://forum.tuts4you.com/topic/10603-iczelions-win32-assembly-tutorials/






programming-by-hex-editor-part 5





به نام خدا










programming-by-hex-editor-part 5



برنامه نویسی با هگز ادیتور - قسمت 5 .




File header



ساختار هدر فایل








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


برای شروع کار ابتدا سعی کنید جدیدترین نسخه ی فلت اسمبلر (Fasm) را از سایت رسمی اش دانلود نمایید .


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



https://flatassembler.net/fasmw17327.zip





سپس فایل fasmw17327.zip را اکسترکت نمایید .


سپس وارد فولدر fasmw17327 شوید .


سپس روی فایل FASMW.EXE دابل کلیک نمایید تا فلت اسمبلر اجرا شود .


سپس از منوی File روی گزینه ی Open کلیک نمایید و به فولدر EXAMPLES وارد شوید .


حالا فولدر BEER را باز نمایید و روی فایل BEER.ASM کلیک کرده و سپس روی دکمه ی Open کلیک نمایید تا این فایل باز شود . سپس بلافاصله در محیط فلت اسمبلر ، کلید F9 را فشار دهید .


نرم افزار ، کامپایل و بیلد و ران می شود و یک پیام ظاهر می شود که از شما یک سوال می پرسد .


شما به او پاسخ مثبت (yes) بدهید . به محض پاسخ مثبت ، درایو سی دی رام کامپیوترتان باز می شود . درایو را با استفاده از دکمه ی مربوطه ببندید .


حالا ، یک نگاه به سورس برنامه بیاندازید .


با این کلمه در متن بالای سورس برنامه مواجه می شوید :




; Beer - example of tiny (one section) Win32 program


; no section defined - fasm will automatically create .flat section for both
; code and data, and set entry point at the beginning of this section





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


نام ان سکشن ، flat می باشد . flat معانی مختلفی دارد از جمله :


ساده - تخت - یکپارچه - پهن -


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


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


شما با این دو لغت در ابتدا و انتهای بخش پایانی سورس برنامه مواجه می شوید :


لغت data import قبل از سکشن ورودی و لغت end data بعد از سکشن ورودی .


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


حالا که حجم فایل اجرایی به شدت کاهش یافته و فقط 1 کیلوبایت حجم دارد فلت اسمبلر را می بندیم و برنامه ی C32asm را اجرا می کنیم تا بتوانیم معماری فایل beer.exe را بررسی نماییم .


از طریق برنامه ی c32asm فایل beer.exe را که توسط فلت اسمبلر ساخته شده است را باز می نماییم :


(نکته ی مهم : چنانچه فایل beer.asm را که فقط یک سکشن دارد در این نسخه (fasmw17327) پیدا نکردید می توانید انرا در پکیج FasmFull و در پوشه ی زیر پیدا نمایید :



می توانید این فایل را در نسخه ی قدیمی یعنی  16950 و از مسیر زیر  پیدا کنید  و توسط هرکدام از نسخه های فلت اسمبلر ، فایل beer.asm  را کامپایل و بیلد و اجرا نمایید :


FasmFull\FASMW64\fasmw16950\EXAMPLES\BEER


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


خوشبختانه تمامی نسخه های فلت اسمبلر ( قدیم و جدید ) با یکدیگر سازگار هستند و نرم افزارهای همدیگه را کامپایل  و بیلد و اجرا می نمایند . از این بابت جایی برای نگرانی نیست .   تمام نیازهای خود را می توانید از پکیج  FasmFull  دریافت نمایید .  )




در برنامه ی c32asm از منوی view روی pe info کلیک می نماییم تا کادر مربوط به معماری نرم افزارهای ویندوزی ، باز شود .


خب ! حالا به سراغ File header می رویم :


اجزای ساختار File header :





Machine ; 014c = 80386


NumberOfSections ; 0001 = one section (.flat)


TimeDateStamp ; date and time that file is created


PointerToSymbolTable ; used for debugging


NumberOfSymbols ; used for debugging


SizeOfOptionalHeader ; Size of Optional Header


Characteristics ; Contains Flags for the File such whether this file is an  exe or a dll or a sys .




خب حالا در برنامه ی c32asm و در ستون مربوط به pe info و در بخش File Header ، روی عبارت Machine دابل کلیک نمایید تا کد 4c01 در ستون وسط هگز ادیتور ، هایلایت شود .


این کد که در اصل به شکل 014c بوده است و به درخواست پردازنده ی اینتل و توسط کامپایلرها و اسمبلرها بصورت معکوس نوشته می شود ، کد اختصاصی پردازنده های نسل اینتل 80386 به بعد می باشد . یعنی این کد به پردازنده های پنتیوم و سلرون و کور اینتل تعلق دارد و روی همه ی آنها اجرا می شود . درواقع ، این کد باعث می شود که سیستم عاملهای داس و ویندوز و نرم افزارها و درایورهایشان براحتی روی تمام پردازنده های خانواده ی بزرگ X86 اجرا شود . بنابراین کد مربوطه که حالا بصورت معکوس یعنی 4c01 در داخل شکم فایل اجرایی نرم افزار قرار دارد براحتی روی کامپیوترتان اجرا می شود . زیرا این کد به تمامی پردازنده های خانواده ی اینتل x86 تعلق دارد . پس حتما روی کامپیوتر شما که مخاطب این وبلاگ هستید نیز اجرا می شود .


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


می بینید که عدد 1 را به ما نشان می دهد که یعنی اینکه این نرم افزار ، فقط یک سکشن دارد ( سکشن فلت ) .


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


فعلا با سکشن فلت کاری نداریم .


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


زیرا حقیقتا مهم نیست که فایل در چه تاریخ یا ساعت ساخته شده باشد . لااقل در مورد نرم افزارهایی که خودمان با دست می سازیم اهمیت ندارد که در چه ساعتی ساخته شده اند . لذا می توانید از کد هگز 0000000 استفاده نمایید . یعنی 8 بار کلید 0 را فشار دهید .


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


فایلهای دیباگ را با پسوند DBG می شناسیم .


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


اینجا نیز نقطه ضعف بزرگ زبانهای سطح بالا نمایان می شود !


خب حالا روی عبارت NumberOfSymbols دابل کلیک کنید تا باز هم شاهد هایلایت شدن کد 00000000 در ستون وسط هگز ادیتور باشید !


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


بنابراین در این فیلد نیز باید کد هگز 00000000 را در ستون وسط هگز ادیتور و در ادرس مربوطه تایپ نماییم .


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


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


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


حالا اینکه عبارت E000 که در اصل به صورت 00E0 بوده است دقیقا با کدام عدد دسیمال برابر است فعلا کاری نداریم !!


( فعلا حضور ذهن ندارم . بعدا مقدار این عدد را بصورت دسیمال می نویسم ) .


بروزرسانی : کد هگز E0  برابر با عددد دسیمال 224 می باشد . اگر از پایان  هدر فایل ، یکی یکی بایتها را بشماریم  قبل از رسیدن به جدول سکشن ،  دقیقا تعداد 224 بایت شمرده خواهند شد .


بنابراین اندازه و حجم هدر اختیاری (Optional header) دقیقا برابر با 224 بایت می باشد .


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


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


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


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


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

تعداد این بایتها همیشه باید  224  بایت  باشد . هر کد هگز که می شماریم دقیقا برابر با یک بایت ،  اندازه دارد .


بعد از شمردن این 224 بایت ، ما عملا به سکشن هدر یا جدول سکشن می رسیم .










معمولا حجم هدر اختیاری همیشه ثابت است . پس شما می توانید با خیال راحت در ادرس مربوطه و در ستون وسط هگز ادیتور کد هگز E000 را تایپ و سپس کارتان را ذخیره نمایید .


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


و اما اخرین عضو هدر فایل :


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


Characteristics یعنی خصوصیات و دقیقا خصوصیات فایل را تعیین می کند و مثلا تعیین می کند که این فایل یک نرم افزار است یا یک درایور یا یک کتابخانه .


برای هر نوع فایل یک عدد انحصاری درنظر گرفته می شود .


برای نرم افزارها ( فایلهای با پسوند exe ) باید در ستون وسط هگز ادیتور ، کد 0F01 را تایپ و سپس ذخیره نمایید .


برای فهم دقیق اینکه برای هر نوع فایل از چه کدی استفاده کنیم می توانید از ابزارهای مهندسی معکوس یا از فایلهای هدر یا فایلهای مربوط به معماری ویندوز ، استفاده نمایید . در این منابع و ابزارها دقیقا متوجه می شوید که مثلا برای فایلهای dll یا sys از چه کدی باید استفاده کرد .





+


+


+




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


در پست بعدی ما دیگه به فلت اسمبلر نیاز نداریم و درعوض به برنامه های c32asm و tiny hexer نیاز داریم تا بتوانیم تمامی اجزای معماری فایل beer.exe را بایت به بایت تا به اخر رمزگشایی نماییم .


بعد از Section Header ما دیگه نمی توانیم از برنامه ی c32asm استفاده نماییم و عملا لازم است از یک برنامه ی کمکی مثل tiny hexer کمک بگیریم .





+


+




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





+


+




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










































programming-by-hex-editor-part-4




به نام خدا



programming-by-hex-editor-part-4


برنامه نویسی با هگز ادیتور  - قسمت 4



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


طبق قولی که در پست قبلی دادم قرار شد بدون مقدمه چینی ، مراحل برنامه نویسی با هگز ادیتور ( برنامه نویسی با زبان ماشین ) را آموزش دهم .


شروع تدریس :


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

حقیقت اینست که متاسفانه در بسیاری از منابع آموزشی اعم از مستندات شرکت مایکروسافت یا فایلهای هدر ویندوز ( فایلهای با پسوند h  در زبان سی پلاس پلاس و فایلهای با پسوند inc در زبان اسمبلی ) و  همچنین فایلهای pdf آموزشی و نرم افزارهای مهندسی معکوس و ابزارهای مختلف برنامه نویسی ، هیچ توضیح کامل و واضح از تک تک اجزای تشکیل دهنده ی هدر داس داده نشده است .


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


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


فقط این را بدانید که چیزهایی مثل هدر داس  ، درواقع ؛ ساختار یا استراکچر می باشند


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


من شکل کلی و عمومی ساختار هدر داس  و محتویات اش را اینجا با دست می نویسم :


structure  DOS HEADER


e_magic     ; Magic Number =4d5a=MZ

e_cblp        ; Bytes on last page of file

e_cp           ;  pages in file

e_crlc         ; reallocations

e_cparhdr  ; size of header in paragraphs

e_minalloc  ; minimum extra paragraphs needed


e_maxalloc  ;maximum extra paragraphs needed


e_ss  ;initial (relative) ss value

e_sp  ;initial sp value

e_csum ; checksum

e_ip    ; initial ip value

e_cs  ; initial (relative) cs value

e_ifarlc ; file address of relocation table

e_ovno ; overly number



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

ادامه ی اجزای ساختار هدر داس :

عبارت کنار علامت مربع ،  e_res   می باشد :


1 ; reserved words array 1

2 ; reserved words array  2

3 ; reserved words array  3

4 ; reserved words array  4


e_oemid ; oem identifier (for e_oeminfo)

e_ominfo ; oem information ; e_oemid specific

 



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

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




روی مربع کنار عبارت e_res2 کلیک کنید تا محتویاتش آشکار شوند:


1  ; reserved words array 1

2  ; reserved words array 2

3 ; reserved words array 3

4 ; reserved words array 4

5 ; reserved words array 5

6 ; reserved words array 6

7 ; reserved words array 7

8 ; reserved words array 8

9 ; reserved words array 9

10 ; reserved words array 10


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


نکته ی مهم : برای فهم بهتر و دقیقتر کاربرد عناصر این ساختار و سایر ساختارهای سیستم عامل ویندوز و برای رسیدن به یک درک کلی از کلیت معماری و ساختمان و هویت و عملکرد سیستم عامل ویندوز ،  توصیه می کنم ، فایلهای هدر ویندوز را مطالعه نمایید . این فایلها با پسوند  H  در زبانهای سی و سی پلاس پلاس  و  یا پسوند  inc  در زبان اسمبلی  مشخص شده اند .

فایل  Windows.inc در پکیج Masm32 اطلاعات خوبی در اختیارتان قرار می دهد .


تمامی فایلهای با پسوند  inc  در تمامی کامپایلرهای زبان اسمبلی ( خصوصا  Masm32 و  Fasm ) که غالبا در فولدر inc  یا  include  قرار دارند منابع ارزشمندی محسوب می شوند  که توصیه می کنم حتما محتویات این  فایلها را مطالعه نمایید .



فایلهای زیر در فولدر RosAsmFiles در اسمبلر RosAsm نیز اطلاعات خوبی را در مورد ساختارها و ثابتها و توابع ویندوز در اختیارتان قرار می دهند :


Structures.str


Functions.api


Equates.equ


DX9.str


DirectShow.gud


B_U_Asm.EXE



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

این پکیج را می توانید از وبلاگ وحیدمی با پستی با همین نام ، دانلود نمایید .


+

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


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


+

+

+


ادامه ی بحث اصلی :


اگر دقت کرده باشید هنگام کلیک روی این عبارات ، با یکسری توضیحات مختصر در پایین کادر ؛ در برنامه ی c32asm مواجه می شوید که تا حدودی به رمزگشایی این عبارات کمک می کند .


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


من چیزی بیشتر از مستندات ، نمی دانم  و نمی توانم از پیش خودم چیزی به زبان بیاورم .


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



حالا به آخرین و مهمترین بخش از ساختار هدر داس یعنی عبارت e_ifanew می رسیم :


روی عبارت e_ifanew   در کادر مربوطه در برنامه ی c32asm کلیک نمایید :


e_ifanew ; file address of new exe header


طبق توضیح بالا ؛ این عبارت ، آدرس هدر جدید فایل اجرایی می باشد یعنی ادرس شروع هدر فایل را به ما نشان می دهد  . این عبارت خیلی مهم و کاربردی است و عملا معکوس  آدرس مجازی منتسب به شروع هدر بعدی فایل اجرایی ( هدر فایل )  را به ما نشان می دهد .

اگر این آدرس را که در ستون وسط هگز ادیتور ، بصورت 80000000h نمایش داده شده است را از حالت معکوس به حالت عادی برگردانیم به عدد 00000080h  می رسیم که اگر این آدرس را در هگز ادیتور جستجو نماییم ، به این کد زبان ماشین ، در  ستون وسط هگز ادیتور برخورد می کنیم:


80000000h



البته آدرس 00000080h  را نمی توان در درون فایل دید اما می توان در نوار پایین هگز ادیتور مشاهده نمود . ( باید به تسکبار پایین هگز ادیتور نگاه کنید . جلوی عبارت  address یا offset) .


این کد ، درواقع  آدرس جایی است که هدر جدید فایل یعنی File header  شروع می شود

در این آدرس ما با کد هگز معتبر و معروف  50450000  در ستون وسط هگز ادیتور و دقیقا بعد از برنامه ی داس ، برخورد می نماییم که معادل با کاراکتر PE ( در ستون راست هگز ادیتور )  می باشد  و عملا امضای فایلهای PE محسوب می شود و ثابت می کند که فایل مورد نظر ما یک نرم افزار قابل حمل ویندوزی می باشد .


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


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


+


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



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


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


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

بنابراین برای برنامه نویسی با زبان ماشین ، کافیست هدر داس را از درون یکی از نرم افزارهای ویندوز به درون نرم افزارتان کپی نمایید زیرا تقریبا ثابت است و چیز زیادی برای رمزگشایی ندارد .


+

کار اصلی ما از هدر فایل و البته هدر اختیاری شروع می شود .



البته هدر فایل و هدر اختیاری را نیز می توانید با یک کپی ساده از درون یک نرم افزار ویندوزی به  درون نرم افزارتان ،  بسازید و فقط کافیست یکسری تغییرات کوچک ایجاد کنید که من در پستهای بعدی ، این تغییرات کوچک را توضیح خواهم داد .


+

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


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


اما اگر بخواهید بصورت بایت به بایت ، یک نرم افزار ویندوزی را با دست بسازید  به  چند چیز مهم و ضروری نیاز دارید :

1- صبر و حوصله ی بسیار بسیار  زیاد

2- انرژی بسیار زیاد

3- علاقه ی شدید به مباحث مهندسی معکوس

4- علاقه ی شدید به باینری و معماری نرم افزارهای ویندوز

5- علاقه ی شدید به  زبان اسمبلی

6- مطالعه ی مستندات مربوط به معماری نرم افزارهای ویندوز

7- علاقه ی شدید به زبان ماشین

8- علاقه ی شدید به هگزادیتورها

9- کنجکاوی شدید

10- علاقه ی شدید به رمزگشایی

11-  علاقه ی شدید به توابع API و ساختارها و ثابتهای سیستم عامل ویندوز

12- علاقه ی شدید به تمامی کامپایلرهای زبان اسمبلی

13- علاقه ی شدید به مطالعه ی فایلهای هدر سیستم عامل ویندوز

14- تمرکز محض روی زبانهای برنامه نویسی سطح پایین ( ماشین و اسمبلی )

15- نفرت شدید از زبانهای سطح بالا خصوصا زبانهای سی و سی پلاس پلاس

16- سابقه ی برنامه نویسی حرفه ای با زبان اسمبلی تحت ویندوز

17- نفرت شدید  از ویژوال استودیو و دلفی و فریم ورک دات نت

18- نفرت شدید از سیستم عاملهای ابری مثل ویندوز 365 

19- علاقه ی شدید به سخت افزار و برق و الکترونیک

20- علاقه ی شدید به مباحث مربوط به تزریق کد و هک ویندوز

21-  علاقه ی شدید به نسخه های قدیمی و اصیل سیستم عامل ویندوز ( از ویندوز 3 تا ویندوز XP )

22- نفرت شدید از نسخه های جدید و غیراصیل ویندوز ( از ویندوز ویستا تا ویندوز 11 و 365 )

23 - برنامه نویسی همزمان با چندین کامپایلر زبان اسمبلی

24- بازنویسی دستی تمام هدرها و کتابخانه های زبان سی و سی پلاس پلاس به زبان اسمبلی در جهت سهولت برنامه نویسی حرفه ای با زبان اسمبلی

23- بازنویسی دستی تمامی اجزای MSDN برای زبان اسمبلی و پرهیز کامل از زبانهای  سی  و سی  پلاس پلاس

24- عضویت در انجمنهای زبان اسمبلی ( مثل انجمن فلت اسمبلر )

25- غیرت داشتن روی زبانهای واقعی کامپیوتر ( ماشین و اسمبلی )

26- دور ریختن تمام زبانهای سطح بالا البته بجز مستندات و کتابخانه ها و هدرهایشان .

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

27- بازنویسی دستی  تمام منابع اموزشی  Windows 10 SDK برای زبان اسمبلی

28- استفاده از ابزارهای مهندسی معکوس رایگان و نامحدود در جهت رمزگشایی از زبانهای سطح بالا و ویندوز و پلتفرم دات نت و سپس بازنویسی تمام اینها برای زبان اسمبلی و ماشین .


29- جستجوی وب برای لغاتی همچون   pe file format  یا  pe file structure


30 - کار مداوم با انواع و اقسام هگز ادیتور . شما  در تمام موارد ، به هگز ادیتور نیاز دارید . هگز ادیتور مهمترین و اصلی ترین ابزارتان می باشد .

31- دانلود کردن تمام نرم افزارهای موجود در انجمنهای زبان اسمبلی و مطالعه ی سورس کد و باینری این نرم افزارها .



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

+


بهتر است واقع بین باشیم !  برنامه نویسی با هگز ادیتور ، گرچه برنامه نویسی بدون باگ ، محسوب می شود  و شما را با اسرار هگز ادیتورها  آشنا می نماید اما عمر نوح و صبر ایوب و گنج قارون نیاز دارد که نه من و نه  شما و نه  هیچ انسان دیگری این چیزها را ندارد .




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


برای اینکه بتوانید بطور واقعی با یک هگز ادیتور ، برنامه نویسی کنید ابتدا باید بتوانید با زبان اسمبلی خصوصا فلت اسمبلر (Fasm) برنامه نویسی نمایید و در توابع ویندوز و ساختارهایش و ثابتهایش  غرق شوید !!!


چندین هزار تابع API  ویندوز ، چندین هزار ثابت ویندوز (Constant)، چندین هزار دستورات زبان اسمبلی (Instraction) و ماشین ( میلیونها ترکیب مختلف از کدهای هگز 00 تا FF  )  ، چندین میلیون کتابخانه و  هدر و ....    را باید بتوانید به حافظه تان بسپارید تا بتوانید با هگز ادیتور بصورت  قانونی و شرعی و  مجاز و البته  کاملا دستی ،  برنامه نویسی نمایید و البته عمر نوح  و صبر ایوب را نیز  باید داشته باشید !!!


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



اما زبان اسمبلی عملا زحمت شما را کم می کند  .


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


+

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


مغزم داشت می ترکید .


الان نیز حس می کنم که دارم یک کار بیهوده را انجام می دهم . زیرا هیچکس را ندیدم که از هگز ادیتور برای برنامه نویسی استفاده نماید !!


+


اما با همه ی این سختیها و دشواریها و درگیریهای ذهنی ، سعی می کنم در پستهای بعدی  در مورد سایر اجزای معماری نرم افزارهای ویندوز کمی توضیح بدهم و بحث را تمام کنم .


+

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

حالا  هر اسمبلر که باشد فرقی نمی کند .


اصلا بگذارید شما را  خلاص کنم و خیال خودم و شما را راحت کنم :


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


حالا اگر سوال  کنید از کدام کامپایلر زبان اسمبلی استفاده نماییم که بیشترین نزدیکی  و قرابت و سازگاری  را با هگز ادیتور و زبان ماشین داشته باشد ؟؟؟ ، می گویم : فلت اسمبلر ( Fasm )  .


بله شما در فلت اسمبلر (Fasm) می توانید تمام کدهای هگزادسیمال درون شکم یک نرم افزار کامل و حرفه ای  را  به درون سورس برنامه تان کپی کنید  سپس با فشردن   کلید  F9  ، یک نرم افزار ویندوزی کامل و قابل اجرا بسازید که البته پسوندش بصورت  BIN   می باشد  ولی نگران نباشید زیرا می توانید پسوند ش را به exe تغییر دهید و بعد انرا با خیال راحت ، تحت ویندوز اجرا نمایید !!!


البته اینکار ( نوشتن کل بایتهای تشکیل دهنده ی نرم افزار ویندوزی  ) بصورت دستی نیز امکان پذیر است اما برای نرم افزارهای ساده و کوچک ، کاری آسان می باشد  نه نرم افزارهای بزرگ و غول پیکر !


نوشتن دستی یک نرم افزار غول پیکر و تجاری ،  هفت تا عمر نوح لازم دارد !


کافیست به انجمن فلت اسمبلر مراجعه کنید تا با این شیرین کاریهای برنامه نویسان زبان اسمبلی آشنا شوید . البته انها نرم افزارهای ساده و کوچک  را بطور کامل با دست و در محیط فلت اسمبلر می نویسند و کامپایل می کنند !


+

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


+


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



+

+

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











 









 





















programming-by-hex-editor-part-3




به نام خدا


programming-by-hex-editor-part-3



برنامه نویسی با هگز ادیتور (زبان ماشین) قسمت سوم :



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


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


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


برای تسلط کامل بر معماری نرم افزارهای ویندوز لازمست که برنامه ی  tiny hexer را نیز بکار گیریم .


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


بعد از مدتی متوجه می شوید که فقط یک هگز ادیتور برای انجام تمام کارها کفایت می کند و  می توانید بقیه را فراموش کنید  .


خب حالا من همین برنامه ی قدرتمند  c32asm را بکار می گیرم .


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


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


پس ابزار اصلی کار ما  همان هگز ادیتور است و مابقی ابزارها یعنی دیس اسمبلرها و دیباگرها و ابزارهای مهندسی معکوس ، در درجه ی دوم یا سوم اهمیت قرار دارند .


باور کنید قدرت یک هگز ادیتور ساده و بدوی ، میلیونها برابر بیشتر از ابزارهای دهان پرکن  گران قیمت انحصاری بزرگ تجاری ؛ از قبیل  ida pro می باشد .


ida pro به هیچ دردی نمی خورد . اصلا کارایی ندارد و فقط ابزاری برای خالی کردن جیب کاربران است .


ida pro فقط یک دیس اسمبلر خشک و خالی و کودن و سنگین و کند  است و عملا نه هگز ادیتور دارد نه   اسمبلر هوشمند  نه ری اسمبلر  . عملا  این نرم افزار گران قیمت تجاری ،  بدون  پلاگین هایش هیچ غلطی نمی تواند بکند و به هیچ دردی نمی خورد .



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


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


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



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


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


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


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


+

خب با این مقدمه ی طولانی ، کار را به امید خدا  شروع می کنیم :


من فرض را بر این می گیرم که شما  فایلهای این وبلاگ خصوصا هگز ادیتورها  را دانلود کرده اید ( اگر هم دانلود نکرده باشید مهم نیست . مهم اینست که من درس ام را بدهم  و بروم  پی زندگی ام . چه دانلود بکنید چه نکنید اصلا اهمیت نمی دهم و درس ام را که دادم می روم دنبال  کار و زندگی ام  و آنوقت شما می مانید و حوض تان !!) .


با فرض بر اینکه شما این فایلها را دانلود کرده اید ( که می دانم هرگز دانلود نمی کنید ! ) ،  درس را شروع می کنم :


ابتدا برنامه ی  c32asm را اجرا کنید


سپس از منوی File  روی Hex open  کلیک کنید و یک نرم افزار دلخواه ویندوزی که پسوند exe داشته باشد را به  دلخواه خودتان انتخاب نمایید و روی دکمه ی open کلیک کنید تا ان نرم افزار ویندوزی ،  بصورت واقعی و در قالب کدهای هگزادسیمال زبان ماشین ، برایتان باز شود .


سپس از منوی View روی  Pe info  کلیک کنید تا در سمت راست برنامه ، کادر مربوط به  معماری نرم افزارهای ویندوزی ، باز شود .


به کادر نگاه کنید . روی نوار عنوان این کادر ، عبارت properties نوشته شده است که  به معنای  ( مشخصات - خصوصیات )  می باشد زیرا مشخصات یک نرم افزار ویندوزی را به شما نشان می دهد .

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





DOS HEADER


File Header


Optional Header


SectionHeader



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


اینجاست که لازمست شما نرم افزار   Tiny Hexer را نیز دانلود کرده باشید تا بتوانید با استفاده از اسکریپت هایش به تمامی اجزای سازنده ی معماری نرم افزارهای ویندوز دست یابید .


درواقع نقطه ضعف بزرگ برنامه ی قدرتمند c32asm در اینست که بعد از SectionHeader ( جدول سکشن ها ) ، دیگه ادامه نمی دهد و سایر بخشهای نرم افزار را به شما معرفی نمی کند .


بعد از جدول سکشن ها ، شما به  انبوهی از کدهای 00 که کد زبان ماشین در مبنای هگزادسیمال می باشند  برخورد می کنید .


در بسیاری از مواقع ، این کدهای 00  که مستقیما بعد از جدول سکشن قرار می گیرند  ، اضافی هستند و عملا هیچ کاربردی ندارند و می توان  آنها را حذف کرد تا حجم نرم افزار کمتر شود و امنیت نیز بیشتر شود  .


البته در بخش پایانی تمام نرم افزارهای ویندوزی نیز شاهد هزاران کد هگز  00 هستیم که به  آنها اصطلاحا  پدینگ  (padding) گفته می شود که از نظر من یک نقطه ضعف امنیتی است و باید یا انرا حذف کرد یا با کدهای بی اثر  و خنثی مثل  90  ( به معنای nop ) ،  جایگزین کرد .

اینطوری یا حجم فایل کمتر می شود یا اینکه امنیت اش بیشتر می شود  .


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


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


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

تا ویندوز هرگز آلوده نشود و نیاز به نصب صدها انتی ویروس نداشته باشیم .


اما دشمنی ذاتی بیل گیتس با زبانهای سطح  پایین ( ماشین و اسمبلی ) و خوی پول پرستی و حرص و طمع و جاسوسی و استعمارگری اش مانع از فهم این موضوع شد .


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


بگذریم .


خب حالا قصد داریم سهل انگاری و پول پرستی جناب بیل گیتس را جبران کنیم و به او درسی بدهیم که هیچوقت فراموش نکند !



درس ما دقیقا از اینجا شروع می شود :


روی مربع سمت چپ عبارت DOS HEADER کلیک کنید تا منوی کشویی باز شود :


روی عبارت e_magic   دابل کیک کنید تا در ستون وسط هگز ادیتور شاهد هایلایت شدن کدهای  4d5a باشیم که البته ناگفته پیداست که این کدها در ستون سمت راست هگز ادیتور با  عبارت معروف  MZ  مطابقت کامل دارند . 


کدهای 4d5a   که البته در اکثر هگز ادیتورها بصورت 4D5A  دیده می شوند بعنوان  شماره ی جادویی نیز  شناخته می شوند .


کافیست این کدها را با هر کد هگز دلخواه ، رونویسی کنید انوقت ، شاهد از کار افتادن نرم افزار خواهید بود !!


بنابراین تحت هیچ شرایطی این کدها را دستکاری نکنید .


برای شروع برنامه نویسی با هگز ادیتور حتما لازمست کدهای  4d5a را در ستون وسط هگز ادیتور بنویسید . این یک الزام است و باید حتما به ان مقید باشید .


خب حالا روی عبارت  e_cblp   دابل کلیک کنید تا شاهد هایلایت شدن عبارتهایی شبیه به این در ستون وسط هگز ادیتور باشید :


8000

5000

9000


در تمام نرم افزارهای ویندوزی ، بعد از کد معروف 4D5A ، شما بلافاصله  شاهد یکی از این سه کد بالایی می باشید .


عبارت e_cblp     تحت عنوان :  " بایتهای روی صفحه ی آخر فایل  "  معرفی شده است   .


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


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


در اکثر نرم افزارهای ویندوز ما شاهد کد 9000  ، در این قسمت هستیم . پس شما نیز می توانید هنگام ساخت نرم افزارتان ، این کد را در ستون وسط هگز ادیتور بنویسید و نتیجه را ذخیره نمایید  .


نکته ی مهم : 

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


بطور کلی : برای تولید نرم افزار یا هر نوع فایل در هگز ادیتور ، کافیست پس از  اتمام کار ، محصول مورد نظرمان را  ذخیره کنیم . پس خیلی راحت از منوی File  گزینه ی Save  یا  Save as  را انتخاب کرده و یک نام دلخواه به نرم افزارتان بدهید و پسوند exe را نیز به ان بدهید بعد ، کارتان را ذخیره نمایید .


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


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


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


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


+


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



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


ابتدا با یک هگز ادیتور دلخواه  ، یک فایل کاملا خالی بسازید و به ان یک نام دلخواه با پسوند exe بدهید و همان لحظه ، فایل تان را روی هارد ، ذخیره نمایید (Save).


سپس با کلیک بر روی ستون وسط هگز ادیتور  ، این کدها را با دست تایپ کرده و نتیجه را با  استفاده از منوی Save  ، ذخیره نمایید :


4D5A9000

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


+


خب ادامه ی درس را در پست بعدی ، ارائه می دهم .  در درس بعدی  قصد دارم در مورد  سایر عبارتهای  DOS HEADER ( هدر سیستم عامل داس )   توضیح داده و روش برنامه نویسی با کمک عناصر این ساختار را تشریح نمایم .


نکته : مهمترین عبارت موجود در هدر داس ، عبارت  e_ifanew  می باشد که بعد از این عبارت ، شما شاهد یک نرم افزار سازگار با سیستم عامل داس هستید  . درواقع در هدر داس که اولین بخش از معماری نرم افزارهای سیستم عامل ویندوز است ، شما یک نرم افزار سازگار با سیستم عامل داس را مشاهده می کنید که به شما می گوید:  این نرم افزار ویندوزی ( که دارید انرا در هگز ادیتور و با دست می سازید )   ، نمی تواند تحت سیستم عامل داس اجرا شود !!!!


یعنی یک نرم افزار داس در درون شکم تمام نرم افزارهای ویندوز ، از قبل جاساز شده است !!!!


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


سیستم عامل متنی در شکم سیستم عامل گرافیکی !!




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


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

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


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


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


 مهمترین فرق بین ویندوز و لینوکس در اینست که در لینوکس؛  همه چیز ، فایل یا پروسه است حتی سخت افزار کامپیوترتان .


 حالا دیگه خودتان تصور کنید که چطوری می توان  تحت لینوکس با زبان ماشین (زبان سخت افزار ) ، برنامه نویسی کرد ؟؟؟!!!




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


خب تا بعد !


+

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


 























FasmFull





به نام خدا


پکیج کامل فلت اسمبلر :


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

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


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


لطفا پکیج  فسم فول (FasmFull) را از لینک زیر دانلود فرمایید و انرا بازنشر نمایید . با تشکر :



FasmFull:




https://s19.picofile.com/d/8438650068/fa28f6df-d24a-458a-80e3-bb86c5c73f87/FasmFull.zip





شما همچنین می توانید این فایل را از وبلاگ وحیدمو  نیز دانلود نمایید .


آدرس وبلاگ وحیدمو :


https://vahidmo.blogsky.com










حجم فایل چیزی حدود 91 مگابایت بود لذا نتوانستم از طریق بلاگ بیان ، آپلود کنم و درنتیجه از طریق  پیکوفایل  آنرا آپلود کردم و به داخل وبلاگ بلاگ اسکایی ام ( وحیدمو )  قرار دادم .


من تک تک فایلهای این پکیج را بارها و بارها با ویندوز دفندر اسکن کردم اما هیچ مشکلی را گزارش نداد . لذا از نظر ویندوز دفندر  ،  این فایل کاملا سالم است و هیچگونه بدافزار در داخل اش وجود  ندارد .


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


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

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


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



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

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

 

لطفا این فایل را دانلود و بازنشر نمایید .


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


فایل  Fresh نیز نسخه ی ویژوال از فلت اسمبلر محسوب می شود و می توانیم انرا ویژوال فسم  نیز بنامیم چون شباهت فراوانی به محیط دلفی دارد  .


برنامه ی Fresh  نسخه ی ویژوال و شیئ گرا از  Fasm می باشد و امکان برنامه نویسی شیئ گرا و رویدادگرا و ویژوال،  تحت زبان اسمبلی را فراهم می نماید .


توجه داشته باشید که  Fasm نسخه های مختلف دارد که برخی از انها  از قابلیت حمل بسیار بالایی برخوردار می باشند مثل Fasmg که برای همه ی پردازنده ها و همه ی سیستم عاملها بکار می رود   و برخی نیز فقط برای پردازنده ی خاصی ساخته شده اند مثل FASMARM   که برای پردازنده ی ARM ساخته شده است .


اما شما فعلا باید از  FasmW.exe  استفاده نمایید تا بتوانید براحتی تحت ویندوز و برای ویندوز و البته برای سایر سیستم عاملها ، برنامه نویسی نمایید .


فایل Fasm.exe  نیز برای برنامه نویسی تحت کنسول خط فرمان ویندوز بکار می رود .


فایل FasmD.exe  نیز برای تولید نرم افزارهای سیستم عامل داس بکار می رود .

 

البته Fasm  برای سیستم عاملهای  یونیکس و لینوکس و فری بی اس دی و اندروید  و مک و کالیبری او اس   و دکس او اس و ...  نیز  نسخه های منحصر به فرد دارد  اما شما می توانید با همین نسخه ی ویندوزی اش یعنی فایل FasmW.exe  نیز برای تمام سیستم عاملهای جهان ،  و البته تمام پردازنده های جهان  ؛  نرم افزار بسازید .


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


سایت رسمی فلت اسمبلر :


https://flatassembler.net



نکته : فایل Fasmg.exe  بجای دستورات زبان اسمبلی ، از ماکرواینستراکشن استفاده می کند که یک زبان شبه سطح بالا می باشد و هدف از ساخت این نسخه ، ایجاد یک نسخه ی جهانی و قابل حمل زبان اسمبلی می باشد . برای برنامه نویسی با Fasmg نیز باید به سایت رسمی فلت اسمبلر که  آدرس اش را در بالا  ملاحظه می فرمایید مراجعه نمایید .


+

+

+


 و اما برنامه نویسی با هگزادیتور ( زبان ماشین ) !


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


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


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


پس با هر هگز ادیتور که روی کامپیوترتان قرار دارد می توانید با زبان ماشین ، برنامه نویسی نمایید .


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


لذا برای برنامه نویسی با هگز ادیتور ، از سیستم هگزادسیمال زبان ماشین استفاده می نمایم .


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


نکته ی آخر :


در مورد دستورات زبان اسمبلی و مثالهای مربوطه ، می توانید به  فایل  B_U_Asm.EXE واقع در فولدر  RosAsmFiles  اسمبلر  RosAsm مراجعه نمایید .


بهرحال نمی توانم همزمان هم این دستورات را ترجمه و رمزگشایی کنم و هم روش برنامه نویسی با هگز ادیتور را آموزش دهم . لذا مجبورم کار  واجبتر و مهمتر و امنیتی تر یعنی برنامه نویسی با هگز ادیتور را در این وبلاگ ، انجام دهم .


اهمیت برنامه نویسی با هگز ادیتور بسیار بالاتر از   رمزگشایی دستورات زبان اسمبلی می باشد . چون با کمک هگز ادیتور می توانیم از سالم یا مخرب بودن یک فایل  ، مطمئن شویم و این یک بحث امنیتی و کاملا ضروری است و در اولویت اول می باشد .

امنیت حرف اول و  آخر را می زند .  


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


برنامه نویسی با هگز ادیتور ، بسیار مهمتر و واجب تر از برنامه نویسی با زبان اسمبلی ؛ و سروکله زدن با کامپایلرهای جورواجور این زبان است .


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



نکته ی مهم :

برای برنامه نویسی با هگز ادیتور ، پیشنهاد می کنم ، هگز ادیتورهای لازم برای اینکار را از پست زیر دانلود نمایید :


http://vahidmy.blog.ir/post/The-Machine-Code-IDE







تا بعد ....


+


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


https://vahidmy.blog.ir






 


ویروس توتال یک آنتی اسمبلی است




به نام خدا


virustotal is an antiassembly



ویروس توتال یک آنتی اسمبلی است :


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


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


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


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


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


مثلا نرم افزاری با نام  AAA.exe  ساختم که کدهایش همان کدهای پست  AAA  می باشد  و  هیچ  کد اضافی در آن نیست ولی از نظر سایت  ویروس توتال ، این نرم افزار کوچک ساده ی بی آزار ، یک بدافزار معرفی می شود !!!


بروید به پست  AAA نگاه کنید. ببینید من از کدام دستورات زبان اسمبلی استفاده کردم که بتواند کامپیوتر را ویروسی نماید ؟؟؟!!!


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


مثلا من با کمک  یک هگز ادیتور  یک نرم افزار با پسوند exe ساختم که درونش فقط  کد معروف  4D5A می باشد یعنی همان کاراکتر معروف MZ .


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


من هرچی کامپایلر زبان اسمبلی اعم از Nasm  و  Fasm و  RosAsm و نرم افزارهایشان و هرچی هگز ادیتور و حتی نرم افزارهای کاملا خالی را به ویروس توتال ارسال کردم دیدم بازهم گیر می دهند و اینها را مخرب افزار و ویروس و تروجان معرفی می کنند !!!!


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


شاید باور نکنید ولی اگر شما حتی فایل کاملا خالی را با دست بسازید و به ان پسوند exe بدهید  و به سایت ویروس توتال ارسال کنید انرا بعنوان بدافزار و نرم افزار بدذات و مشکوک معرفی می نمایند !!!!


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


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


لذا همینجا رسما اعلام  می کنم که سایت ویروس توتال یک سایت زامبی و آشغال است و در 99 درصد موارد  به تمام فایلها برچسب بدافزار می زند و جالب اینکه حتی به انتی ویروسهایی مثل  کلم  (Clam) نیز برچسب بدافزار می زند یعنی حتی به خودشان هم رحم نمی کنند چه رسد به نرم افزارهای شخص ثالث .


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


خیلی احمقانه است که به اسمبلر معتبر و معروفی همچون  Fasm  و حتی به سیستم عاملهایش مثل دکس او اس (DexOS) برچسب می زنند و انها را بدافزار می دانند .


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


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


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



باید بساط این انتی ویروسهای کودن و بدذات که دشمن زبان اسمبلی  و دشمن آزادی کاربران  می باشند برچیده شود  .


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


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


سایت ویروس توتال با اون انتی ویروسهای احمقانه و روانی اش  عملا یک زامبی و یک سایت ضد اسمبلی و ضد آزادی کاربر می باشد .


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


به سایت ویروس توتال و  آنتی ویروسهای شخص ثالث هرگز اعتماد نکنید . اینها همگی دشمن زبان اسمبلی و دشمن آزادی کاربر می باشند  و تمام گزارشات شان دروغ محض است .


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


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


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


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


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


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


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


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


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


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



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


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


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


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


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


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


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


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


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


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


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


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


عملا ارسال پی در پی فایلهایم برای مایکروسافت  باعث شد که شرکت مایکروسافت دشمنی با زبان اسمبلی را کنار بگذارد و دست از سر این زبان بردارد .


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



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


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


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


+

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

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


زبانهای ماشین و اسمبلی با شما روراست هستند و صداقت دارند لذا شما نیز می توانید به اینها اعتماد کنید .  

ویروس توتال را فراموش کنید چون ویروس توتال  یک زامبی ضد اسمبلی و مغرض و دروغگو  است نه یک سایت امنیتی .

+

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


+

+

+

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










بهترین دیکشنری و مترجم متن جهان




به نام  خدا



بهترین دیکشنری جهان:


GoldenDict


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


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


از نظر من  ، گلدن دیکت ( دیکشنری طلایی ) بهترین و کاملترین دیکشنری چندزبانه ی دنیا می باشد و جایگزین بسیار خوبی بجای بابیلون است .


مزایای گلدن دیکت ( دیکشنری طلایی ) نسبت به سایر دیکشنری ها :


1- کاملا رایگان است .

2- اوپن سورس است

3- نرم افزار آزاد است

4- از تمام زبانهای دنیا پشتیبانی می کند . 

5- یک دیکشنری چند زبانه است

6- سایت رسمی اش هنوز فعال است و شما می توانید مستقیما به سایت رسمی مراجعه نمایید و نسخه های قدیمی اش را براحتی دانلود نمایید .

7- از تمام گلاسریهای تمام دیکشنریهای معروف از جمله بابیلون ، بخوبی پشتیبانی می کند . یعنی تمامی فایلهای با پسوند BGL را که متعلق به بابیلون هستند را می شناسد و بارگیری نموده و محتویاتشان را به شما نشان می دهد .

8- از گلاسری های  تخصصی ویکی پدیا نیز پشتیبانی می کند

9- از گلاسری  های تخصصی استار دیکت نیز پشتیبانی می کند

10- می توانید بصورت آنلاین نیز از  گلاسری های جدید سایر انواع دیکشنری ها برای تکمیل بانک دیکشنری طلایی استفاده نمایید .

11- همانند دیکشنری نارسیس و استارت دیکت ، می تواند  با کمک نشانگر ماوس و یا با ترکیبی از نشانگر ماوس و یکی از کلیدهای ترکیبی ، از بیرون از محیط دیکشنری ، معنای لغات انگلیسی را به شما نشان دهد .

12- از گلاسریهای تخصصی دیکشنری لینگوس نیز استفاده می نماید .



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


13- رابط گرافیکی زیبا و نرم  و  کاربر پسند و انعطاف پذیر ( هم در نسخه ی لینوکس و هم در نسخه ی ویندوز ) .


14- امکان افزودن واژه ها و دیکشنریهای جدید

15- نسخه های جدید اش را  می توانید از گیتهاب دانلود کنید . البته شما را به سایت سورس فورج هدایت می کند و آنجا دیگه اگر خوش شانس باشید سورس فورج به شما که ایرانی هستید اجازه ی دانلود می دهد !!


16- نسخه های جدید پرتابل دارد .


17- نسخه های جدید پرتابل و نصبی  اش را می توانید از سایت پی سی دانلود و سایر سایتهای ایرانی دانلود نمایید. مخصوصا که  پی سی دانلود یک سایت بروز است و همیشه جدیدترین نسخه ها و آپدیتها  را برای کاربران ، آپلود می نماید .


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




سایت رسمی دیکشنری طلایی :


http://www.goldendict.org/


در اوایل دهه ی هشتاد شمسی ،  یکی از مهمترین کارهایم این بود که در به در به دنبال دیکشنری و مترجم متن بگردم .


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


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


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


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


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


الان همزمان از بابیلون و گلدن دیکت استفاده می  کنم و البته در کنارش از مترجم متن کاملا آفلاین چندزبانه ی  xe translator offline  نیز برای امر ترجمه استفاده می نمایم . 


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


البته از برخی دیکشنریهای درون مایکروسافت استور نیز استفاده می نمایم مثل ایران دیکت و    English Persian dictionary


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


از مترجم متن پدیده و پارس و آریا نیز استفاده کردم .


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


از نظر من ، مزخرف ترین  و  چرت ترین مترجم متن ؛ همین مترجم متن  آریا   بود . چون  هم نصب کردن اش بسیار دشوار بود و هم اینکه از هر 1000 بار فقط 1 بار اجرا می شد .

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


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


مترجم متن مزخرف و چرت و دات نتی  آریا را از روی هارد حذف کردم و به همان مترجم متن  پدیده راضی شدم !  



من از چندین مترجم متن دیگه نیز استفاده کردم .  از مترجم متن آفلاین چندزبانه ی رایگان  xe translator offline نیز استفاده کردم که به نظر من بهترین مترجم متن جهان می باشد زیرا کاملا رایگان و آفلاین  است و به اینترنت هیچ نیازی ندارد و از اکثر زبانها خصوصا فارسی بطور کامل پشتیبانی می کند و  از فایلهای txt بعنوان گلاسری استفاده می نماید .



اما به نظر من هیچکدام از این دیکشنری ها و مترجم های متن ، نمی توانند جای گلدن دیکت را بگیرند  .


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



همینجا بگویم که هیچ مترجم متن  و دیکشنری ،  نمی تواند جای  مغز انسان و هوش طبیعی را بگیرد .


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



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


بگذریم . ...


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


اما اگر دوست دارید خودتان یک گلاسری جدید بسازید اینجا باید از نرم افزار Babylon builder 2.2  استفاده نمایید 


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


از سایت  پی سی دانلود به ادرس زیر می توانید تقریبا تمام دیکشنری های محبوب و معروف از جمله جدیدترین نسخه ی دیکشنری طلایی ( گلدن دیکت )  را دانلود نمایید :



https://p30download.ir/fa/software/category/education/dictionaries/



برای دانلود و نصب  مترجم متن آفلاین چندزبانه ی رایگان xe translator offline  می توانید به سایت پاتوق یو و آدرس زیر مراجعه نمایید ( طبق دستورالعملهای سایت پاتوق یو ، مراحل نصب را انجام دهید ) :


https://patoghu.com/gonagon/dictionary/6883-download-xetranslator-offline-final.html



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


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



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



لذا از نظر من ، بهترین مترجم متن جهان ،  برنامه ی  xe translator offline  می باشد .


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



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


+

+

کلمات کلیدی :

بهترین دیکشنری جهان

بهترین مترجم متن جهان

گلدن دیکت

دیکشنری طلایی

GoldenDict

xe translator offine

مترجم متن آفلاین چندزبانه رایگان

گلاسری

گلوسری

گلاسوری

BGL

زبانشناسی

آزادی

Freedom

English

دیکشنری نارسیس

قفل سخت افزاری

دیکشنری بابیلون

Babylon builder 2.2

دیکشنری

مترجم متن

ترجمه

شتاب لش دیکشنری

دیکشنری های مایکروسافت استور

Microsoft store

دیکشنری لینگوس

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

پی سی دانلود

پاتوق یو

مترجم متن پدیده

مترجم متن پارس

ترجمه

مترجم

هوش مصنوعی

هوش طبیعی

+

+


اگر خدا بخواهد و حال و حوصله داشته باشم از پستهای بعد ، مابقی دستورات زبان اسمبلی را تشریح می نمایم . فعلا که خسته هستم و باید به مغزم استراحت بدهم . این اسمبلی نیز زبان بسیار دشوار و خسته کننده ای است و فشار خیلی زیادی به مغز و اعصاب وارد می کند و ادم را کسل و بی حوصله می کند  ولی خب برای کسب آزادی و قدرت مجبوریم با این زبان دشوار و سخت  و مازوخیستی (!!)  یعنی اسمبلی  سروکله بزنیم . چاره ای نیست .  بهای آزادی و قدرت و انعطاف پذیری  را باید بپردازیم . آزادی و استقلال و قدرت به این آسانیها به دست نمی آید . در اولین فرصت که مغزم دوباره شارژ شد و سرحال و شاداب و پرانرژی  و پر حوصله  شدم ،  به تدریس زبان اسمبلی ادامه خواهم داد . انشاء ا...



+

+

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

https://vahidmy.blog.ir