به نام خدا
اسرار هگز ادیتورها بخش دوم
برنامه نویسی با هگز ادیتور
یکی از جالبترین و مرموزترین اسرار هگز ادیتورها که کمتر کسی آنرا به شما می گوید این است که هگز ادیتورها قدرتمندترین و بهترین و کاملترین و همه منظوره ترین زبانهای برنامه نویسی جهان می باشند !!!
من در هیچ جای وب فارسی و انگلیسی هیچ مطلبی راجع به آموزش برنامه نویسی با هگز ادیتور ؛ ندیدم و شاید هیچوقت نبینم !!!
درواقع ؛ تنها زبان برنامه نویسی که از هر جهت تمام نیازهای متنوع برنامه نویسان را پاسخ می دهد ؛ زبان ماشین است اما از آنجاییکه برنامه نویسی با زبان ماشین ؛ در محیط hex editor و بصورت کاملا دستی انجام می شود و هیچ کامپایلر یا لینکر وجود ندارد و تمام اجزای نرم افزار با دست و بصورت بایت به بایت تایپ و نوشته و ذخیره می شود و برنامه نویس باید مرتبا آدرسدهی کند و آدرس ها را تغییر دهد و انجام این فرایند خصوصا روی ویندوز و لینوکس ؛ یک شکنجه واقعی و خود آزاری محسوب می شود ؛ بنابراین تقریبا هیچکس به شما نمی گوید که با هگز ادیتور هم می توان نرم افزار نوشت و نرم افزار را اجرا کرد !
اگر شخصی بتواند این ریاضت و شکنجه را تحمل کند، از تمام زبانهای برنامه نویسی جهان بی نیاز می شود و به استقلال کامل می رسد و در هزینه ها صرفه جویی می کند و دیگر هرگز بابت هیچ نرم افزاری پول نمی دهد زیرا واقعا نیازی ندارد که این بی نیازی و استقلال و خودکفایی کاربر خانگی یا سازمانی ؛ اصلا برای تولید کنندگان زبانهای برنامه نویسی تجاری و کد بسته و انحصاری و مالکیتی خوشایند نیست و آنها را عصبانی می کند .
من معتقدم که کاربر باید فقط بابت سخت افزار پول بدهد و نرم افزار و سیستم عامل و درایور و بازی کامپیوتری باید کاملا رایگان و آفلاین و قابل حمل باشند .
بابت اینترنت نیز نمی توانیم هزینه های سنگین و کمرشکن بپردازیم . لذا اینترنت نیز باید رایگان باشد .
راز یازدهم :
هگز ادیتور می تواند نرم افزار و درایور و بازی کامپیوتری و سیستم عامل کاملا رایگان و آزاد را از اول تا آخر برای کاربر بسازد یا اینکه نرم افزار یا سیستم عامل تجاری و پولی را رایگان کند !!
این دومی چندان ایده ی خوبی نیست زیرا ما را دیر یا زود به دردسرهای قانونی ناشی از قانون کپی رایت مبتلا می کند .
پس من در اینجا می خواهم بگویم که هگز ادیتور می تواند نرم افزار مورد نیاز ما را از اول تا به آخر بصورت بایت به بایت و طبق یک معماری ساده و کوچک و جدید ؛ بسازد و به ما تحویل دهد .
اینطوری به قول معروف : نه سیخ می سوزد و نه کباب !!
برای برنامه نویسی با هگز ادیتور و تولید نرم افزار جدید و رایگان که مالکش خودمان هستیم کافیست از نرم افزارهای زیر استفاده کنیم :
Tiny hexer
c32asm
hexplorer
WinHex
imhex
من خودم با کمک c32asm چندین نرم افزار جدید و کوچک و ساده و فشرده ی ویندوزی را با دست و بایت به بایت نوشتم و روی ویندوز اجرا کردم و لذت بردم .
البته Tiny hexer از تمام هگز ادیتورها برای برنامه نویسی مناسب تر است زیرا تمام معماری نرم افزار ویندوزی را بطور کامل رمزگشایی می کند .
نکته ی مهم بعدی این است که هگز ادیتور باید از ابزاری بنام ری اسمبلر یا دیس اسمبلر بهره مند باشد زیرا بخشهای مهمی از نرم افزار را باید با کد زبان اسمبلی بنویسیم .
متاسفانه Tiny hexer ابزار disassembler ندارد و امکان کدنویسی با زبان اسمبلی مقدور نیست .
اما c32asm ابزار قدرتمند ری اسمبل و دیس اسمبل دارد
اینجا ممکن است سردرگم شوید و بین چند هگز ادیتور درمانده و مردد شوید .
راه حل :
بخش ابتدایی معماری تمام نرم افزارهای ویندوز شبیه به هم است یعنی از ادرس 00000000 بشمارید و در آدرس 00000200 شروع به کدنویسی با زبان اسمبلی یا ماشین کنید و البته شما می توانید این بخش 512 بایتی ابتدای تمام نرم افزارهای ویندوزی را از هر نرم افزار ویندوزی به درون یک فایل خالی کپی و الصاق کنید و از منوی File روی Save کلیک کنید تا ذخیره شود .
سپس با c32asm بخش اصلی یعنی کد اسمبلی را از ادرس 00000200 بنویسید و بافشردن کلید Enter ؛ کد اسمبلی را به کد ماشین تبدیل و در ادرس مربوطه درج کنید و نتیجه را ذخیره کنید .
مثال:
در ادرس 00000200 شما دستور push 00 که به زبان اسمبلی است را در برنامه c32asm تایپ می کنید سپس کلید Enter را فشار دهید تا کد هگزادسیمال 6a00 تولید شود و به درون ادرس بالا و در ستون وسط هگز ادیتور درج شود .
کدهای زبان ماشین باید حتما در ستون وسط هگز ادیتور قرار گیرند تا توسط پردازنده؛ خوانده و اجرا شوند .
نکته بسیار مهم :
پردازنده ی کامپیوتر فقط به کدهای ستون وسط هگز ادیتور نگاه و مراجعه می کند و هیچ کاری با ستون های چپ و راست هگز ادیتور ندارد .
برای بخش پایانی نرم افزار می توانید کماکان از هر هگز ادیتور دلخواهی استفاده کنید ولی باید آدرسها را خودتان شخصا با دست بازنویسی و اصلاح کنید .
این یک شکنجه ی واقعی و دردناک است اما چشم شما را به روی بسیاری از حقایق و اسرار باز می کند .
مبحث برنامه نویسی با هگز ادیتور به حدی دشوار و پیچیده و زمانبر و کسل کننده و خسته کننده است که خودش یک وبلاگ تخصصی جداگانه می طلبد !!!!
مگر اینکه شما بخواهید برای یک سیستم عامل ساده و کوچک و پردازنده ساده و بدوی ؛ برنامه بنویسید که در این حالت ؛ برنامه نویسی با هگز ادیتور؛ قدری ساده تر و آسانتر می شود !!!
برهمین اساس ؛ فعلا نمی توانم برنامه نویسی با هگز ادیتور را آموزش دهم چون خیلی سخت و خسته کننده است و این کار را به زمانی دیگر موکول می کنم .
در آینده اگر عمری بود و حال و حوصله داشتم روش برنامه نویسی با هگز ادیتور را بصورت مفصل و کامل آموزش خواهم داد . انشاا...
+
یک نکته ی جالب :
بین WinHex و imhex یک رقابت تنگاتنگ و نفسگیر وجود دارد .
imhex یک هگز ادیتور جدید و جوان و پر انگیزه و جویای نام و البته به شدت بروز و فعال است که به دلیل برخورداری از خاصیت مدل توسعه نرم افزار متن باز و آزاد ؛ توسط گروهی از هکرهای مستقر در گیتهاب ؛ با سرعت برق در حال پیشرفت است طوریکه هر چند روز یک نسخه ی جدید از imhex بر روی گیتهاب اپلود می شود و در هر نسخه قابلیت های جدیدی برملا می کند و در اختیار کاربر قرار می دهد .
گاهی اوقات فاصله ی زمانی بین هر آپدیت و ایجاد نسخه ی جدید ؛ فقط چند ساعت طول می کشد که در نوع خود ؛ بی نظیر است و یک رکورد جهانی محسوب می گردد.
imhex یا ایمهگز ؛ یک هگز ادیتور کاملا رایگان و متن باز و آزاد است که هر هفته یا حتی هر چند ساعت ؛ یک نسخه ی جدید با ابزارها و قابلیتهای جدید را به کاربر هدیه می دهد .
imhex از نظر من آینده ی درخشانی دارد و یک تیم بزرگ و فعال در حال کدنویسی و توسعه اش می باشند .
برای دانلود imhex و کد منبع اش باید به سایت گیتهاب به آدرس زیر مراجعه نمایید :
آدرس سایت گیتهاب :
https://github.com/WerWolv/ImHex
آدرس سایت رسمی imhex
شاید در آینده ؛ imhex بتواند جایگزین تمام هگز ادیتورها و ابزارهای برنامه نویسی و مهندسی معکوس شود و کاربر را از تردید بین صدها هگز ادیتور نجات دهد و کارهایش را آسان کند .
imhex یک هگز ادیتور مدرن و پیشرفته و بروز و فعال است و آینده ی درخشانی دارد و می توانیم بسیاری از اسرار هگز ادیتورها را بر اساس این هگز ادیتور جدید اما مدرن؛ کشف و منتشر نماییم .
من مرتبا هگز ادیتورها را زیر نظر می گیرم تا ببینم نهایتا کدامیک می تواند به تنهایی تمام اسرار هگز ادیتورها را برای من و سایر کاربرها فاش کند .
+
در پست های بعدی ؛ بصورت جسته گریخته و تصادفی ؛ برخی از اسرار هگز ادیتورها را بصورت کلی و با توضیح کوتاه و مختصر و مفید ؛ افشا خواهم کرد . انشاا...