ImHex — 🔍 محرر سداسي عشر لمهندسي الهندسة العكسية، والمبرمجين، والأشخاص الذين يهتمون بشبكية أعينهم أثناء العمل في الساعة 3 صباحًا. | Kitploit
أدوات / GitHub / werwolv / imhex
54.4k 2.4k 18 منذ 20س 16د
werwolv/imhex
ImHex 🔍 محرر سداسي عشر لمهندسي الهندسة العكسية، والمبرمجين، والأشخاص الذين يهتمون بشبكية أعينهم أثناء العمل في الساعة 3 صباحًا.
اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.
آخر 7 أيام آخر 30 يومًا
الدعم إذا أعجبك عملي، فالرجاء دعمي عبر GitHub Sponsors أو Ko-Fi أو PayPal. شكرًا جزيلاً!
الرعاة البارزون JetBrains، تزودنا برخص All Products Pack مجانية للتطوير SignPath، تزودنا بشهادات توقيع الكود مجانية لإصدارات Windows Amazon، تزودنا برصيد AWS Cloud مجاني للبنية التحتية للتكامل المستمر (CI)
لقطات الشاشة
الميزات
عرض سداسي عشري غني بالميزات
تصحيح البايت
إدارة التصحيحات
تراجع/إعادة غير محدود
"نسخ البايتات كـ..."
بايتات
سلسلة سداسية عشرية
مصفوفة 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.
سياسة توقيع الكود لن يقوم هذا البرنامج بنقل أي معلومات إلى أنظمة شبكية أخرى إلا إذا طلب ذلك المستخدم أو الشخص الذي يقوم بتثبيته أو تشغيله.
الأشخاص الذين لديهم صلاحية الدفع المباشر