প্রকল্প সম্পর্কে

ImHex একটি ওপেন-সোর্স হেক্স এডিটর, যা রিভার্স ইঞ্জিনিয়ার, প্রোগ্রামার এবং গভীর রাতে কাঁচা ডেটা নিয়ে কাজ করা মানুষের লক্ষ্য করে তৈরি। এটি Dear ImGui দিয়ে নির্মিত একটি আধুনিক গ্রাফিক্যাল ইন্টারফেস ব্যবহার করে এবং স্টেবল, নাইটলি ও ওয়েব সংস্করণ প্রদান করে। ডেস্কটপ অ্যাপ্লিকেশনটি Windows, macOS, Linux এবং FreeBSD সমর্থন করে; রিলিজে সফটওয়্যার-রেন্ডার করা "NoGPU" বিল্ডও থাকে, যা OpenGL 3.0-সামঞ্জস্যপূর্ণ গ্রাফিক্স হার্ডওয়্যার ছাড়া সিস্টেমের জন্য। মূল সম্পাদনা অভিজ্ঞতায় বাইট প্যাচিং, প্যাচ ব্যবস্থাপনা, অসীম undo/redo এবং নমনীয় কপি কমান্ড রয়েছে। ডেটা কাঁচা বাইট, হেক্স স্ট্রিং, C, C++, C#, Rust, Python, Java ও JavaScript-এর মতো ভাষার অ্যারে, ASCII-art হেক্স ভিউ বা স্বয়ংসম্পূর্ণ HTML হিসেবে কপি করা যায়। অনুসন্ধানে সাধারণ টেক্সট ও হেক্স, regex, ওয়াইল্ডকার্ডসহ বাইনারি প্যাটার্ন, সংখ্যাসূচক মানের রেঞ্জ এবং স্ট্রিং এক্সট্র্যাকশন অন্তর্ভুক্ত। এডিটরটি শুরু, শেষ বা কার্সর অবস্থান থেকে goto, পেজড ভিউ এবং একাধিক রঙ-হাইলাইটিং নিয়মও সমর্থন করে। ImHex-এ ফাইল কনটেন্ট পার্স ও হাইলাইট করার জন্য C++-সদৃশ একটি কাস্টম প্যাটার্ন ভাষা রয়েছে। এটি অ্যারে, পয়েন্টার, struct, union, enum, bitfield, namespace, little/big endian, কন্ডিশনাল এবং সহায়ক ত্রুটি বার্তা সমর্থন করে। প্যাটার্ন ভাষা ছবি, অডিও, 3D মডেল, কোঅর্ডিনেট ও টাইমস্ট্যাম্প ভিজ্যুয়ালাইজ করতে পারে। প্যাটার্ন ফাইল, লাইব্রেরি, magic ফাইল, এনকোডিং, থিম, প্রসেসর নোড এবং YARA নিয়ম ImHex ডেটাবেস থেকে বিল্ট-ইন কনটেন্ট আপডেটারের মাধ্যমে ডাউনলোড করা যায়। ডেটা ইন্সপেক্টর বাইটকে signed/unsigned integer, float, LEB128 মান, ASCII/wide/UTF-8 স্ট্রিং, টাইমস্ট্যাম্প, GUID, রঙ ইত্যাদি হিসেবে ব্যাখ্যা করতে পারে। এটি বাইট কপি ও পরিবর্তন, অব্যবহৃত সারি লুকানো এবং প্যাটার্ন ভাষার মাধ্যমে কাস্টম টাইপ যোগ করা সমর্থন করে। নোড-ভিত্তিক ডেটা প্রিপ্রসেসর ব্যবহারকারীদের হেক্স এডিটরে দেখানোর আগে ডেটা পরিবর্তন, ডিক্রিপ্ট বা ডিকোড করতে দেয়, অন্তর্নিহিত সোর্স না বদলে। কাস্টম নোড যোগ করা যায়। ডেটা অনেক উৎস থেকে লোড করা যায়: স্থানীয় ফাইল, কাঁচা ডিস্ক ও পার্টিশন, GDB সার্ভার মেমরি, Intel HEX ও Motorola SREC ফরম্যাট, Base64, UDP প্যাকেট, প্রসেস মেমরি এবং SSH/SFTP-এর মাধ্যমে রিমোট ফাইল। বড় ফাইল দক্ষভাবে লোড করতে পেজড ভিউ দিয়ে হ্যান্ডেল করা হয়। ডিফিং ভিউ বিভিন্ন উৎসের ডেটা তুলনা করে, পার্থক্য হাইলাইট করে এবং পার্থক্যের একটি টেবিল দেয়। সমন্বিত ডিসঅ্যাসেম্বলার Capstone-ভিত্তিক এবং ARM, ARM64, MIPS, x86, PowerPC, SPARC, RISC-V, WebAssembly ইত্যাদি আর্কিটেকচার সমর্থন করে। কাস্টম ডিসঅ্যাসেম্বলার যোগ করা যায়। বিশ্লেষণ সরঞ্জামের মধ্যে রয়েছে ফাইল magic ডিটেকশন, MIME টাইপ ডেটাবেস, বাইট ডিস্ট্রিবিউশন গ্রাফ, এনট্রপি গ্রাফ, সর্বোচ্চ/গড় এনট্রপি মান, এনক্রিপ্টেড/কম্প্রেসড ফাইল ডিটেকশন এবং digram/layered ডিস্ট্রিবিউশন গ্রাফ। দুর্বল ফাইল স্ক্যান করতে, মিল হাইলাইট করতে এবং ফলাফলে জাম্প করতে YARA নিয়ম চালানো যায়। বুকমার্ক কাস্টম নাম, রঙ, মন্তব্য, হাইলাইটিং, jump-to এবং নতুন ট্যাবে বুকমার্ক কনটেন্ট খোলা সমর্থন করে। হ্যাশিং সরঞ্জামের মধ্যে কাস্টম পলিনমিয়ালসহ CRC8/16/32, MD5, SHA পরিবার, Adler32 এবং আরও অনেক অ্যালগরিদম রয়েছে, যা নির্বাচিত অঞ্চল বা যেকোনো স্ট্রিংয়ে প্রয়োগ করা যায়। একগুচ্ছ সহায়ক ইউটিলিটি অন্তর্ভুক্ত: LLVM-ভিত্তিক Itanium/MSVC/Rust/D demangler, ASCII টেবিল, regex replacer, ক্যালকুলেটর, গ্রাফিং ক্যালকুলেটর, হেক্সাডেসিমাল কালার পিকার, বেস কনভার্টার, বাইট swapper, UNIX permissions ক্যালকুলেটর, IEEE754 float ভিজ্যুয়ালাইজার, ফাইল splitter/combiner/shredder, TCP ক্লায়েন্ট/সার্ভার, HTTP রিকোয়েস্ট টুল ইত্যাদি। ইন্টারফেস একাধিক workspace, কাস্টম লেআউট এবং detachable উইন্ডো সমর্থন করে। শিক্ষানবিশরা সরলীকৃত মোড, ইন্টারঅ্যাকটিভ টিউটোরিয়াল, অ্যাচিভমেন্ট এবং ডকুমেন্টেশন ব্যবহার করতে পারেন। ImHex প্লাগইন সমর্থন করে। SDK স্থানীয়ভাবে বিল্ড করা যায় বা GitHub Actions-এ আনা যায়, এবং একটি প্লাগইন টেমপ্লেট পাওয়া যায়। প্রকল্পটি মূলত GPLv2-only লাইসেন্সের অধীনে, তবে libimhex এবং UI প্লাগইন লাইব্রেরি LGPLv2.1-এর অধীনে, যাতে মালিকানাধীন প্লাগইন অনুমোদিত হয়। সিস্টেম প্রয়োজনীয়তা পরিমিত: প্রায় 50 MiB RAM এবং 100 MiB স্টোরেজ, সাধারণ রিলিজের জন্য OpenGL 3.0 সুপারিশকৃত। প্রকল্পটি অনেক ভাষায় অনূদিত এবং অবদানকে স্বাগত জানায়।