In the name of GOD
programming by hex editor part 1
The machine code is The KING of programming languages.
The machine code is REAL programming language.
Other programming languages are pseudo code:
No HLLs (fortran,cobol,lisp,ada,pascal,basic
,forth, algol, C ,
C++, C# , D ,B , BCPL, java, python,perl,ruby, A+ ,vala ,foxpro,
,rust,swift,Go ,php,html,Css,Asp,ASP.Net,plain English programming , …………….).
No Assembly (masm,nasm,fasm,goasm,tasm
,RosAsm,Uasm,
vasm,Yasm,Gas,HLA,...………).
The Machine code only .
The Machine code is Real programming language.
The Machine code is Open source : Binary = Source
Vahid mohammady . Iran.
Binary (machine code) : 0 1
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bfc0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df
e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
برنامه نویسی با هگز ادیتور بخش 1 :
همانطور که در پست قبلی گفتم ، عملا قصد دارم از این پست به بعد روش برنامه نویسی با زبان ماشین (برنامه نویسی با هگز ادیتور ) را به شما مخاطبین عزیز یاد بدهم .
این متونی که در بالا به زبان انگلیسی دیدید یک بیانیه ی سیاسی علیه تمامی زبانهای سطح بالا و حتی تمامی کامپایلرهای زبان اسمبلی بود . درواقع نوعی اعتراض به عملکرد اشتباه دانشمندان علوم کامپیوتری بود . عملا به اختراع زبانهای سطح بالا و کامپایلرهای زبان اسمبلی اعتراض کردم . این بیانیه ی سیاسی را عمدا به انگلیسی نوشتم تا همه ی دنیا صدایم را بشنود .
البته من هرگز زبان ماشین را به زور توی حلق کسی فرو نمی کنم . فقط می خواهم بگویم که زبان ماشین تنها زبانی است که یادگیری اش بر هر کاربر کامپیوتر واجب و لازم است .
اگر کسی عاشق زبانهای سطح بالا یا اسمبلی است می تواند با این بیانیه ی سیاسی مخالفت کند .
بهرحال من کسی را به زور وادار به یادگیری زبان ماشین نمی کنم . من جلوی آزادی کاربران را نمی گیرم و دیکتاتور نیستم .
صرفا اگر می خواهید به حقایق مخفی و جذاب دنیای کامپیوتر دست یابید این مطالب را پیگیری کنید . هیچ اجباری در کار نیست .
بهرحال من رسما از اینجا به بعد فقط با زبان ماشین سروکار دارم و به هیچ زبان دیگری اعتنا نمی کنم .
دوز دیوانگی ام از پروفسور رنه تورنویس ( خالق اسمبلر RosAsm ) بیشتر است !!
اگر رنه تورنویس فقط با زبانهای سطح بالا و برخی اسمبلرها مخالف بود ، من نه فقط با زبانهای سطح بالا بلکه حتی با زبان اسمبلی هم مخالف هستم چون حتی زبان اسمبلی هم زبانی ساختگی و تصنعی است و هرگز زبان واقعی کامپیوتر محسوب نمی شود .
جمیع زبانهای برنامه نویسی سطح بالا و سطح پایین ، زبانهایی ساخت دست بشر و مصنوعی و فریبنده هستند .
کامپیوتر هیچ زبانی بجز زبان ماشین را نمی فهمد . فکر نمی کنم درک کردن اش سخت باشد .
ما انسانها این توانایی را داریم که همه نوع زبانی حتی زبان ماشین را یاد بگیریم و مستقیما بکار گیریم . اما کامپیوتر بدبخت فقط زبان ماشین را می فهمد . چون کامپیوتر فقط یک ماشین است . به همین سادگی .
من زبان ماشین را بر مبنای هگزادسیمال یاد می دهم . یعنی طبق همان جدول بالا ( 00 تا FF ) .
زبان ماشین یک زبان عددی است و بر 4 مبنا قابل استفاده است :
باینری ( 0 و 1 ) ( مبنای اصلی که مستقیما توسط پردازنده درک و اجرا می شود)
هگزادسیمال ( 0 تا 9 و A تا F )
دسیمال ( 0 تا 9 ) اعداد طبیعی قابل فهم برای انسان
اوکتال ( 0 تا 8 ) اعداد طبیعی قابل فهم برای انسان . این مبنا منسوخ شده است .
من برای سادگی کار و در جهت ساده کردن سیستم ، فقط مبنای هگزادسیمال را که در بالا جدول کامل اش را نوشتم بکار می برم .
من اهل تبدیل مبناهای زبان ماشین نیستم . از اول تا آخر فقط با کدهای هگزادسیمال کار می کنم . زیرا اساس هگز ادیتورها نیز بر مبنای هگزادسیمال است .
من مجبور نیستم مدام از باینری به دسیمال و از دسیمال به هگزادسیمال و .... حرکت کنم .
نه . من فقط از مبنای هگزادسیمال استفاده می کنم .
بنابراین در برنامه نویسی با زبان ماشین ، من فقط از مبنای هگزادسیمال استفاده می کنم و خودم و شما را راحت می کنم .
برای شروع تدریس فعلا این چیزها را بخاطر بسپرید :
4D5A = MZ (مارک زبیکووسکی معمار سیستم عامل داس)
5045 = PE (فایل اجرایی قابل حمل)
4C01 = INTEL 8086/80286/80386/80486/PENTIUM/CORE I3/I5/I7....
6A00 = PUSH 00 = PUSH MB_OK = OK
FF15401000 = CALL WIN32 API HINT
74 = JZ (JUMP IF ZERO FLAG IS 1) = EQUAL
C3 = RET = RETURN TO OS
CC = HLT = HALT OF CPU
علی الحساب این کدهای هگزادسیمال زبان ماشین را بخاطر بسپارید و یاد بگیرید و آنها را در دیس اسمبلی نرم افزارهای ویندوز ، پیدا کنید .
بقیه ی کدهای زبان ماشین را در پست بعدی ، رمزگشایی می نمایم .
در پستهای بعدی دلایل بکارگیری زبان برنامه نویسی ماشین را برایتان شرح می دهم .
همچنین ، شما را با معماری دقیق نرم افزارهای سیستم عامل ویندوز ، آشنا می کنم .
توجه داشته باشید که برای برنامه نویسی با زبان ماشین باید از hex editor استفاده کنید .
به همین علت ، عنوان این پست و پستهای بعدی را برنامه نویسی با هگز ادیتور گذاشته ام .
Programming by hex editor
در دنیا هزاران hex editor ( هگز ادیتور ) وجود دارد . هرکدام را که انتخاب کنید فرقی نمی کند .
زیرا زبان ماشین از تمامی هگز ادیتور های دنیا بعنوان IDE ( محیط برنامه نویسی ) استفاده می کند و به هیچ هگز ادیتوری وابستگی ندارد .
زبان ماشین از نظر IDE واقعا عالی و بی نظیر است. شما از هر هگز ادیتور دلخواهی می توانید بعنوان IDE در جهت برنامه نویسی با زبان ماشین استفاده کنید . دست تان کاملا باز است .
نکته : زبان ماشین به کوچکی و بزرگی حروف حساسیت ندارد . بنابراین عملا کدهای زبان ماشین چه بصورت حروف بزرگ نوشته شوند و چه حروف کوچک ، تغییری در نتیجه ندارند . البته تقریبا تمامی هگز ادیتورهای دنیا ، کدهای هگزادسیمال زبان ماشین را با حروف بزرگ نشان می دهند .
ولی استفاده از حروف کوچک هیچ ایرادی ندارد .
مثلا بین FF15 و ff15 هیچ فرقی وجود ندارد چون هردو به معنای call می باشند و آدرس مربوط به توابع API ویندوز را احضار می کنند یا بین 6A00 و 6a00 نیز هیچ فرقی وجود ندارد زیرا هردو باعث تولید دکمه ی ok می شوند.
این هم یکی از مزایای زبان ماشین نسبت به تمامی زبانهای سطح بالا و سطح پایین می باشد .
در پستی جداگانه تمامی مزایای زبان ماشین نسبت به زبانهای سطح بالا و سطح پایین را تشریح می کنم .
اگر عمری باشد سعی دارم خیلی تند تند ، مباحث مربوط به زبان ماشین و روش برنامه نویسی با هگز ادیتور را منتشر کنم . پس پیگیر مطالب بعدی این وبلاگ باشید .
فراموش نکنید که زبان ماشین یعنی قدرت.
یک نکته ی ظریف و جالب: در زبان ماشین ، سورس و باینری یکسان هستند . یعنی شما از همان اول با کدهای زبان ماشین که باینری نامیده می شوند برنامه می نویسید .
Binary = Source
بنابراین هیچ نیازی به کامپایلر یا اسمبلر و لینکر ندارید . کافیست تغییرات را ذخیره کنید . تمام . نرم افزار اماده ی استفاده است !!
لطفا در پستهای بعدی نیز همراه من باشید چون قصد دارم اسرار هگز ادیتورها را که هیچکس در دنیا برایتان بازگو نمی کند فاش کنم .
با تشکر .
نکته ی مهم :
برای برنامه نویسی با هگز ادیتور پیشنهاد می کنم که هگز ادیتورهای لازم برای اینکار را از پست زیر دانلود نمایید :
http://vahidmy.blog.ir/post/The-Machine-Code-IDE
+
موضوعات وبلاگ وحیدمی :
من در تمامی پستهای وبلاگ وحیدمی ، سعی می کنم لااقل یک اشاره ای به موضوعات این وبلاگ داشته باشم . به همین دلیل برای تمامی پستهای این وبلاگ ، تمام جعبه های موضوعات وبلاگ شامل Idea ، Assembly ، vahidmy ، Music ، Binary ، OS ، Weblog ، IT ؛ را تیک می زنم که البته در دنیای وبلاگنویسی، این رفتار ؛ کاری مضحک و بی معنا و غیرحرفه ای محسوب می شود ولی من به این قواعد و استانداردهای وبلاگنویسی اهمیت نمی دهم و دوست دارم هرطور که دلم می خواهد وبلاگنویسی نمایم و آزاد باشم . لذا همینقدر که یک اشاره ی کوچک به این موضوعات در همین پاراگراف شد ، از نظر خودم ، کافی است !!
من تافته ی جدابافته هستم و به سبک خودم وبلاگنویسی می نمایم و به استانداردهای دنیای وبلاگنویسی اهمیت نمی دهم و برایم مهم نیست که مخاطبان پشت سرم چه می گویند . من به اشتهای مردم غذا نمی خورم و نگران حرف و حدیثهایی که مردم پشت سرم در می آورند نیستم و بی خیال و خونسرد هستم .
من رسومات کهنه ی دنیای وبلاگنویسی و مرزهای علم را جابجا می کنم !!
از نظر من ضرورتی ندارد که محتویات یک پست با موضوع مربوطه همخوانی داشته باشد لذا مجبور نیستم در تمام پستها در رابطه با موضوعات وبلاگ ام ، مطلب بنویسم . همینقدر که در همین پاراگراف که در تمام پستها انرا کپی و الصاق می نمایم ، به این موضوع اشاره کردم از نظر خودم کفایت می کند !!
از نظر شما اینکار نوعی ترول گری و اسپم سازی است ولی من اهمیت نمی دهم که اینکار اسپم می باشد یا نه . می توانید پشت سرم هرچه قدر خواستید حرف بزنید و مرا مسخره کنید و به من بخندید ولی من اصلا اهمیت نمی دهم .
این پاراگراف در تمامی پستهای وبلاگ وحیدمی توسط خودم ، عینا الصاق و تکرار می شود .
+
وحید محمدی - وبلاگ وحیدمی
https://vahidmy.blog.ir/sitemap.xml