MyDjango

💀 با C یک Hex Viewer هکری بساز! + code

تا حالا خواستی بفهمی یک فایل واقعاً داخلش چه چیزی ذخیره کرده؟

با C می‌تونیم یک ابزار ترمینالی بسازیم که فایل را به شکل Hex + ASCII نمایش بده؛ چیزی شبیه ابزارهایی که برای تحلیل فایل‌ها استفاده می‌شوند.

📚 آموزش خط‌به‌خط

خط ۱: کتابخانه استاندارد ورودی و خروجی C را وارد می‌کند.

خط ۲: توابع مربوط به تشخیص کاراکترهای قابل نمایش را در اختیار برنامه قرار می‌دهد.

خط ۵: یک اشاره‌گر برای فایل ایجاد می‌کند.

خط ۶: متغیری برای ذخیره نام فایل ایجاد می‌کند.

خط ۷: یک Buffer با ظرفیت ۱۶ بایت ایجاد می‌کند.

خط ۸: تعداد بایت‌های خوانده‌شده را نگه می‌دارد.

خط ۱۰: از کاربر نام فایل را دریافت می‌کند.

خط ۱۲: فایل را در حالت Binary و فقط برای خواندن باز می‌کند.

خط ۱۴: بررسی می‌کند که فایل با موفقیت باز شده باشد.

خط ۱۹: عنوان خروجی Hex Viewer را نمایش می‌دهد.

خط ۲۲: فایل را حداکثر ۱۶ بایت در هر مرحله می‌خواند.

خط ۲۴ تا ۲۶: هر بایت را به فرمت Hex نمایش می‌دهد.

خط ۳۰: بخش ASCII خروجی را شروع می‌کند.

خط ۳۲ تا ۳۶: کاراکترهای قابل نمایش را نمایش می‌دهد و بقیه را با "." جایگزین می‌کند.

خط ۴۲: فایل را می‌بندد.

خط ۴۴: اجرای موفق برنامه را اعلام می‌کند.

🧠 خروجی چه شکلی می‌شود؟

مثلاً اگر فایل شامل متن باشد، ممکن است چیزی شبیه این ببینی:

48 65 6C 6C 6F 20 43 21 | Hello C!

سمت چپ بایت‌های فایل به صورت Hex هستند و سمت راست نسخه قابل‌خواندن آن‌ها.

🚀 چالش

نسخه بعدی را خودت بساز:

- شماره خط یا Offset را اضافه کن.
- فایل‌های بزرگ را بهتر نمایش بده.
- امکان انتخاب چند فایل را اضافه کن.
- تعداد کل بایت‌های فایل را در انتها نمایش بده.

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

نظرات

0 نظر
هنوز نظری ثبت نشده است.

نظر خود را بنویسید

پست‌های مشابه

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