محرر سداسي عشري لمهندسي الهندسة العكسية والمبرمجين وأولئك الذين يهتمون بصحة أعينهم عند العمل في الساعة 3 صباحًا.
/ˈɪmhɛks/
الدعم
إذا أعجبك عملي، فالرجاء دعمي عبر GitHub Sponsors أو Ko-Fi أو PayPal. شكرًا جزيلاً!
الرعاة البارزون
هل ترغب في الظهور هنا أيضًا؟ اتصل بنا على [email protected]!
لقطات الشاشة

المزيد من لقطات الشاشة

الميزات
عرض سداسي عشري غني بالميزات
- تصحيح البايت
- إدارة التصحيحات
- تراجع/إعادة غير محدود
- "نسخ البايتات كـ..."
- بايتات
- سلسلة سداسية عشرية
- مصفوفة C, C++, C#, Rust, Python, Java & JavaScript
- عرض سداسي عشري على شكل ASCII-Art
- div ذاتي الاحتواء بتنسيق HTML
- بحث بسيط عن النصوص والسداسي العشري
- الانتقال من البداية والنهاية وموضع المؤشر الحالي
- تمييز ملون
- قواعد تمييز المقدمة قابلة للتخصيص
- تمييز الخلفية باستخدام الأنماط ونتائج البحث والإشارات المرجعية
- عرض البيانات كقائمة من أنواع مختلفة
- أعداد صحيحة سداسية عشرية (8، 16، 32، 64 بت)
- أعداد صحيحة عشرية موقعة وغير موقعة (8، 16، 32، 64 بت)
- أعداد عشرية عائمة (16، 32، 64 بت)
- ألوان RGBA8
- HexII
- ثنائي
- فك تشفير البيانات كـ ASCII وترميزات مخصصة
- دعم مدمج لـ UTF-8, UTF-16, ShiftJIS, معظم ترميزات Windows وغيرها الكثير
- عرض البيانات بصفحات
لغة أنماط مخصصة شبيهة بـ C++ لتحليل وتمييز محتوى الملف
- تحميل تلقائي بناءً على أنواع MIME والقيم السحرية
- مصفوفات، مؤشرات، هيكل، اتحادات، تعدادات، حقول بت، نطاقات أسماء، دعم Little و Big Endian، شروط وغيرها الكثير!
- رسائل خطأ مفيدة، تمييز بناء الجملة ووضع علامات على الأخطاء
- دعم لتصور العديد من أنواع البيانات المختلفة
- الصور
- الصوت
- النماذج ثلاثية الأبعاد
- الإحداثيات
- الطوابع الزمنية
دعم الثيمات
- لا يحرق شبكية عينيك عند استخدامه في جلسات متأخرة من الليل
- الوضع المظلم افتراضيًا، ولكن الوضع الفاتح متاح أيضًا
- ألوان وأنماط قابلة للتخصيص لجميع عناصر واجهة المستخدم عبر ملفات ثيمات قابلة للمشاركة
- دعم للخطوط المخصصة
استيراد وتصدير البيانات
- ملفات Base64
- تصحيحات IPS و IPS32
- تقارير Markdown
- مصفوفات ثنائية للغات برمجة مختلفة
مفتش البيانات
- تفسير البيانات كأنواع مختلفة مع دعم Endianness، النظام العشري والست عشري والثماني وعكس البتات
- أعداد صحيحة غير موقعة وموقعة (8، 16، 24، 32، 48، 64 بت)
- أعداد عشرية عائمة (16، 32، 64 بت)
- LEB128 موقعة وغير موقعة
- أحرف وسلاسل ASCII و Wide و UTF-8
- time32_t، time64_t، تاريخ ووقت DOS
- GUIDs
- ألوان RGBA8 و RGB565
- نسخ وتعديل البايتات من خلال المفتش
- إضافة أنواع بيانات جديدة من خلال لغة الأنماط
- دعم إخفاء الصفوف غير المستخدمة
معالج بيانات مسبق قائم على العقد
- تعديل وفك تشفير وفك تشفير البيانات قبل عرضها في المحرر السداسي العشري
- تعديل البيانات دون لمس المصدر الأساسي
- دعم إضافة عقد مخصصة
تحميل البيانات من مصادر بيانات متعددة
- الملفات المحلية
- دعم الملفات الضخمة مع تحميل سريع وفعال
- الأقراص الخام
- تحميل البيانات من الأقراص والأقسام الخام
- خادم GDB
- الوصول إلى ذاكرة الوصول العشوائي (RAM) لعملية قيد التشغيل أو الأجهزة المضمنة عبر GDB
- بيانات Intel Hex و Motorola SREC
- البيانات المشفرة بـ Base64
- حزم UDP
- دعم عرض البيانات الأولية المستلمة عبر UDP
- ذاكرة العملية
- فحص مساحة العنوان الكاملة لعملية قيد التشغيل
- الملفات البعيدة عبر SSH مع SFTP
- دعم تحميل الملفات من الخوادم البعيدة باستخدام SSH و SFTP
البحث في البيانات
- دعم البحث في الملف بأكمله أو في تحديد فقط
- استخراج النصوص
- خيار تحديد الحد الأدنى للطول ومجموعة الأحرف (أحرف صغيرة، أحرف كبيرة، أرقام، رموز)
- خيار تحديد الترميز (ASCII, UTF-8, UTF-16 big and little endian)
- البحث عن تسلسل
- البحث عن تسلسل من البايتات أو الأحرف
- خيار تجاهل حالة الأحرف
- البحث باستخدام التعبيرات المنتظمة (Regex)
- البحث عن سلاسل باستخدام التعبيرات المنتظمة
- النمط الثنائي
- البحث عن تسلسلات من البايتات مع أحرف بدل اختيارية
- البحث عن قيمة رقمية
- البحث عن أعداد صحيحة موقعة/غير موقعة وأعداد عشرية عائمة
- البحث عن نطاقات من القيم
- خيار تحديد الحجم و Endianness
- خيار تجاهل القيم غير المحاذية
دعم تجزئة البيانات
- العديد من الخوارزميات المختلفة المتاحة
- CRC8, CRC16 و CRC32 بقيم ابتدائية ومتعددة حدود مخصصة
- العديد من متعددات الحدود الافتراضية المتاحة
- MD5
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
- Adler32
- AP
- BKDR
- Bernstein, Bernstein1
- DEK, DJB, ELF, FNV1, FNV1a, JS, PJW, RS, SDBM
- OneAtTime, Rotating, ShiftAndXor, SuperFast
- Murmur2_32, MurmurHash3_x86_32, MurmurHash3_x86_128, MurmurHash3_x64_128
- SipHash64, SipHash128
- XXHash32, XXHash64
- Tiger, Tiger2
- Blake2B, Blake2S
- تجزئة مناطق محددة من البيانات المحملة
- تجزئة سلاسل عشوائية
دعم المقارنة (Diffing)
- مقارنة البيانات من مصادر بيانات مختلفة
- تمييز الاختلافات
- عرض جدولي للاختلافات
مفكك تركيبة مدمج
- دعم لجميع البنى المدعومة من Capstone
- ARM32 (ARM, Thumb, Cortex-M, AArch32)
- ARM64
- MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
- x86 (16-bit, 32-bit, 64-bit)
- PowerPC (32-bit, 64-bit)
- SPARC
- IBM SystemZ
- xCORE
- M68K
- TMS320C64X
- M680X
- Ethereum
- RISC-V
- WebAssembly
- MOS65XX
- Berkeley Packet Filter
- دعم كتابة مفككات تركيب مخصصة لبنى خاصة بك
الإشارات المرجعية
- دعم الإشارات المرجعية بأسماء وألوان مخصصة
- تمييز المنطقة المرجعية في المحرر السداسي العشري
- الانتقال إلى الإشارات المرجعية
- فتح محتوى الإشارة المرجعية في علامة تبويب جديدة
- إضافة تعليقات إلى الإشارات المرجعية
محلل ومرئي بيانات غني بالميزات
- محلل ملفات وقاعدة بيانات أنواع MIME قائمة على القيم السحرية
- رسم بياني لتوزيع أنواع البايتات
- رسم بياني للإنتروبيا
- أعلى ومتوسط الإنتروبيا
- كشف الملفات المشفرة/المضغوطة
- رسوم بيانية لتوزيع ثنائي الرسم (Digram) وطبقي (Layered)
دعم قواعد YARA
- فحص ملف بحثًا عن ثغرات باستخدام قواعد yara الرسمية
- تمييز التطابقات في المحرر السداسي العشري
- الانتقال إلى التطابقات
- تطبيق قواعد متعددة في وقت واحد
أدوات مفيدة
- محلل الرموز Itanium, MSVC, Rust و D-Lang استنادًا إلى LLVM
- جدول ASCII
- أداة استبدال التعبيرات المنتظمة
- مقيم التعبيرات الرياضية (آلة حاسبة)
- آلة حاسبة للرسوم البيانية
- منتقي الألوان الست عشرية مع دعم العديد من التنسيقات المختلفة
- محول القاعدة
- مبادل البايتات
- آلة حاسبة لأذونات UNIX
- باحث عن تعريفات مصطلحات ويكيبيديا
- أدوات الملفات
- مقسم الملفات
- دمج الملفات
- تمزيق الملفات
- عارض IEEE754 للأعداد العشرية العائمة
- آلة حاسبة للقسمة بواسطة الضرب الثابت
- عميل/خادم TCP
- آلة حاسبة لخوارزمية إقليدس
- طلبات HTTP
محدث محتوى مدمج
- تنزيل جميع الملفات الموجودة في قاعدة البيانات مباشرة من داخل ImHex
- ملفات الأنماط لفك تشفير تنسيقات الملفات المختلفة
- مكتبات للغة الأنماط
- ملفات القيم السحرية لكشف أنواع الملفات
- عقد معالج البيانات المخصصة
- الترميزات المخصصة
- الثيمات المخصصة
- قواعد YARA
واجهة حديثة
- دعم مساحات عمل متعددة
- دعم تخطيطات مخصصة
- نوافذ قابلة للفصل
سهولة البدء
- دعم العديد من اللغات المختلفة
- وضع مبسط للمبتدئين
- وثائق شاملة
- العديد من الملفات النموذجية المتاحة في قاعدة البيانات
- إنجازات ترشدك خلال ميزات ImHex
- دروس تفاعلية
لغة الأنماط
لغة الأنماط هي لغة البرمجة المخصصة بالكامل المطورة لـ ImHex.
تتيح لك تعريف الهياكل وأنواع البيانات بتركيب شبيه بـ C ثم استخدامها لتحليل وتمييز محتوى الملف.
قاعدة البيانات
لأنماط التنسيقات والمكتبات وملفات القيم السحرية والثوابت، تفضل بزيارة مستودع ImHex-Patterns.
لا تتردد في إرسال ملفاتك الخاصة هناك أيضًا عبر Pull Request!
المتطلبات
لاستخدام ImHex، يجب تلبية متطلبات النظام الدنيا التالية.
[!IMPORTANT]
يتطلب ImHex وجود GPU مع دعم OpenGL 3.0 بشكل عام.
هناك إصدارات متاحة (مع اللاحقة -NoGPU) تعتمد على العرض البرمجي ولا تتطلب GPU، ولكنها قد تكون أبطأ بكثير من الإصدارات المسرّعة بواسطة GPU.
إذا كان ذلك ممكنًا، اجعل ImHex يستخدم GPU المخصص على نظامك بدلاً من المدمج.
عادةً ما يعمل ImHex بشكل جيد مع GPUs المدمجة أيضًا، لكن من المعروف أن بعض برامج تشغيل Intel HD GPU على Windows تسبب تشوهات رسومية.
- نظام التشغيل:
- Windows: Windows 7 أو أحدث (Windows 10/11 موصى به)
- macOS: macOS 15 (Sequoia) أو أحدث,
- الإصدارات الأقدم يجب أن تعمل أيضًا، لكنك ستحتاج إلى تجميع ImHex بنفسك. الملفات الثنائية للإصدارات لن تعمل بسبب عدم توفر عدّاءات CI لنظام macOS 15 أو أقل في GitHub.
- إصدار macOS غير موقع وسيتطلب منك السماح بها يدويًا في إعدادات الأمان والخصوصية.
- Linux: "حديث". التوزيعات التالية لديها إصدارات رسمية متاحة. التوزيعات الأخرى مدعومة من خلال إصدارات AppImage و Flatpak و Snap.
- Ubuntu و Debian
- Fedora
- RHEL/AlmaLinux
- Arch Linux
- أي توزيعة أخرى ستعمل أيضًا عند تجميع ImHex من المصادر.
- FreeBSD: تم اختباره على FreeBSD 14.3
- الإصدارات الأخرى من المرجح أن تعمل أيضًا ولكن لم يتم اختبارها
- المعالج (CPU): المدعوم رسميًا: x86, AMD64 و ARM64، لكن أي معالج Little Endian يجب أن يعمل.
- بطاقة الرسوميات (GPU): OpenGL 3.0 أو أعلى
- بطاقات Intel HD iGPU المدمجة مدعومة، لكن من المعروف أن بعض برامج التشغيل تسبب تشوهات رسومية متنوعة، خاصة على Windows. استخدم على مسؤوليتك الخاصة.
- في حال عدم توفر GPU، هناك إصدارات تعتمد على العرض البرمجي متاحة لنظامي Windows و macOS
- RAM: ~50MiB، مطلوب المزيد للتحليل الأكثر تعقيدًا
- التخزين: ~100MiB
التثبيت
يمكن العثور على معلومات حول كيفية تثبيت ImHex في دليل التثبيت
التجميع
لتجميع ImHex على أي منصة، يلزم وجود GCC (أو Clang) بإصدار يدعم C++23 أو أعلى.
يتم بناء إصدارات Windows و Linux باستخدام أحدث إصدار متاح من GCC.
يتم بناء إصدارات macOS باستخدام أحدث إصدار متاح من LLVM Clang.
من المهم ملاحظة أن المترجمين MSVC و AppleClang غير مدعومين على الإطلاق لأنهما بشكل عام متخلفان بشدة ويفتقران إلى الميزات التي يمتلكها GCC و LLVM Clang.
[!NOTE]
يتم تضمين العديد من التبعيات في المستودع باستخدام الوحدات الفرعية، لذا تأكد من استنساخه باستخدام الخيار --recurse-submodules.
يمكن تثبيت جميع التبعيات غير المضمنة باستخدام نصوص تثبيت التبعيات الموجودة في مجلد /dist.
لمزيد من المعلومات، راجع دليل التجميع.
المساهمة
انظر المساهمة
تطوير الإضافات
لتطوير إضافات لـ ImHex، استخدم مشروع القالب التالي للبدء. سيكون لديك بعد ذلك وصول كامل إلى libimhex بالإضافة إلى واجهة برمجة تطبيقات ImHex وسجل المحتوى للتفاعل مع ImHex أو لإضافة محتوى جديد.
لبناء إضافة، ستحتاج إلى استخدام مجموعة التطوير الخاصة بنا (SDK).
الحصول على SDK محليًا
يمكنك بناء SDK عن طريق تجميع ImHex كما يلي:
cmake -G Ninja -DIMHEX_BUNDLE_PLUGIN_SDK=ON -B build
cd build
DESTDIR=install ninja install
ستكون SDK متاحة في install/usr/local/share/imhex/sdk. ستحتاج إلى تعيين المتغير IMHEX_SDK_PATH إلى هذا المسار (المطلق).
الحصول على SDK في سير عمل GitHub Actions CI
يمكنك استخدام هذا الإجراء لتنزيل SDK تلقائيًا إلى عدّاء GitHub الخاص بك.
الاعتمادات
المساهمون
- AxCut لكمية هائلة من المساهمات في محرر النصوص الخاص بالأنماط وأطنان من الأجزاء الأخرى من ImHex
- iTrooz لإيصال ImHex إلى الويب بالإضافة إلى مئات المساهمات في كل جزء من المشروع
- jumanji144 لمساهمات ضخمة في لغة الأنماط والبنية التحتية لـ ImHex
- Mary لمساعدتها الهائلة في نقل ImHex إلى macOS والمساعدة أثناء التطوير
- Roblabla لإضافة دعم مثبت MSI إلى ImHex
- Mailaender لإيصال ImHex إلى Flathub
- أي شخص آخر قام بالإبلاغ عن مشكلات على Discord أو GitHub وأجريت معه محادثات رائعة :)
التبعيات- جزيل الشكر لـ ocornut على Dear ImGui الرائع الذي يُستخدم لبناء الواجهة بأكملها
- الشكر لـ epezent على ImPlot المستخدم لرسم البيانات في أماكن مختلفة
- الشكر لـ Nelarius على ImNodes المستخدم كأساس لمعالج البيانات
- الشكر لـ BalazsJako على ImGuiColorTextEdit المستخدم لتمييز بناء الجملة للغة الأنماط
- الشكر لـ nlohmann على مكتبة json المستخدمة لملفات التكوين
- الشكر لـ vitaut على مكتبة libfmt التي تجعل التنسيق والتسجيل أفضل بكثير
- الشكر لـ btzy على nativefiledialog-extended ودعمهم الرائع، المستخدمة للتعامل مع مربعات حوار الملفات على جميع المنصات
- الشكر لـ danyspin97 على xdgpp المستخدمة للتعامل مع مسارات المجلدات على Linux
- الشكر لـ aquynh على capstone الذي هو أساس نافذة التفكيك
- الشكر لـ rxi على microtar المستخدمة لاستخراج أصول المتجر التي تم تنزيلها
- الشكر لـ VirusTotal على Yara المستخدمة بواسطة إضافة Yara
- الشكر لـ Martinsos على edlib المستخدمة للبحث عن التسلسلات في عرض الفروق
- الشكر لـ ron4fun على HashLibPlus الذي ينفذ كل خوارزمية تجزئة تحت الشمس
- الشكر لـ mackron على miniaudio المستخدمة لتشغيل الملفات الصوتية
- الشكر لجميع المجموعات والمنظمات الأخرى التي تُستخدم مكتباتها في ImHex
الترخيص
الجزء الأكبر من ImHex يخضع لترخيص GPLv2 فقط.
الاستثناءات البارزة لهذا هي الأجزاء التالية التي تخضع لترخيص LGPLv2.1:
- /lib/libimhex: المكتبة التي تسمح للإضافات بالتفاعل مع ImHex.
- /plugins/ui: مكتبة إضافة واجهة المستخدم التي تحتوي على بعض عناصر واجهة المستخدم الشائعة التي يمكن استخدامها بواسطة إضافات أخرى
السبب في ذلك هو السماح بتطوير إضافات مملوكة لـ ImHex.
سياسة توقيع الكود
توقيع الكود مجاني مقدم من SignPath.io، شهادة من مؤسسة SignPath.
لن يقوم هذا البرنامج بنقل أي معلومات إلى أنظمة شبكية أخرى إلا إذا طلب ذلك المستخدم أو الشخص الذي يقوم بتثبيته أو تشغيله.
الأشخاص الذين لديهم صلاحية الدفع المباشر