git: Modernize readme
This commit is contained in:
parent
ad8e3e38f0
commit
a54cbca6d2
296
README.md
296
README.md
@ -51,88 +51,265 @@ If you like my work, please consider supporting me on GitHub Sponsors, Patreon o
|
|||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
![Hex editor, patterns and data information](https://user-images.githubusercontent.com/10835354/139717326-8044769d-527b-4d88-8adf-2d4ecafdca1f.png)
|
![Hex editor, patterns and data information](https://private-user-images.githubusercontent.com/10835354/290512928-ae20c3ce-4c02-4579-9471-640f43fd6bad.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMyNDk0NTksIm5iZiI6MTcwMzI0OTE1OSwicGF0aCI6Ii8xMDgzNTM1NC8yOTA1MTI5MjgtYWUyMGMzY2UtNGMwMi00NTc5LTk0NzEtNjQwZjQzZmQ2YmFkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIyVDEyNDU1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFmN2RhYmNlYWVjYzI0YWQxNjE0YjI1NDNjMTQ2MGFlODhkMmYzMTVkY2Y3MzNlYzUzYTM3N2IwNWE4OGY2YTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.RbVnFXxuJS0xUoWbdgqCHtd-BopaFCyDypAfgkzGezU)
|
||||||
![Bookmarks, disassembler and data processor](https://user-images.githubusercontent.com/10835354/139717323-1f8c9d52-f7eb-4f43-9f11-097ac728ed6c.png)
|
![Bookmarks, disassembler and data processor](https://user-images.githubusercontent.com/10835354/139717323-1f8c9d52-f7eb-4f43-9f11-097ac728ed6c.png)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>More Screenshots</summary>
|
||||||
|
|
||||||
|
![Data Processor decrypting some data and displaying it as an image](https://private-user-images.githubusercontent.com/10835354/290514353-d7f53f91-09e9-46c4-a720-e979c1c4e820.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMyNDk0NTksIm5iZiI6MTcwMzI0OTE1OSwicGF0aCI6Ii8xMDgzNTM1NC8yOTA1MTQzNTMtZDdmNTNmOTEtMDllOS00NmM0LWE3MjAtZTk3OWMxYzRlODIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIyVDEyNDU1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE4OGIxNjg0NDcyMWVkYTMzOTAzMTAxMmJlNjE2ZjVkMTVmNzhlMDU1ZWNhODQyZjNjYTgzMzgzYjYyODVlNzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Y4VAVgSPBZI3Q1gDehPuoC98pQXVe-z9FUWhvDAV-1g)
|
||||||
|
![STL Parser written in the Pattern Language visualizing a 3D model](https://private-user-images.githubusercontent.com/10835354/290517253-426d83c5-f6b7-4b69-aa87-05e48ab73e24.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMyNDk0NTksIm5iZiI6MTcwMzI0OTE1OSwicGF0aCI6Ii8xMDgzNTM1NC8yOTA1MTcyNTMtNDI2ZDgzYzUtZjZiNy00YjY5LWFhODctMDVlNDhhYjczZTI0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIyVDEyNDU1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJlMmJmZDYzOTgyZGYxOWQ5MmJhMTMyMzA2YWE3YmU0ODJlY2MwYmQxM2RlODc1MTgwYTQ5ZGYxMWNkY2JlNjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.lsJSbAnAWZNXm_bteUWZUM96Nd4qKhk3H3WZtjsFQB4)
|
||||||
|
![Data Information view displaying various stats about the file](https://private-user-images.githubusercontent.com/10835354/290517882-1601cd05-e50b-41f7-8272-cb9af9e6fb81.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDMyNDk0NTksIm5iZiI6MTcwMzI0OTE1OSwicGF0aCI6Ii8xMDgzNTM1NC8yOTA1MTc4ODItMTYwMWNkMDUtZTUwYi00MWY3LTgyNzItY2I5YWY5ZTZmYjgxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzEyMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMjIyVDEyNDU1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRlZjNmNDA4NThlZjFmOTdmYWVlNGIxODQ3MDdmZDkzZGM4ZDEwOWZmNWRiMmM3NjNlODFiMTQ5ZTFhZTRlOTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.AWm3GajW2KkNMT7AWhhCYca18UbXqZCS3-8RG4YN_ng)
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Featureful hex view
|
<details>
|
||||||
|
<summary>Featureful hex view</summary>
|
||||||
|
|
||||||
- Byte patching
|
- Byte patching
|
||||||
- Patch management
|
- Patch management
|
||||||
- Copy bytes as feature
|
- Infinite Undo/Redo
|
||||||
|
- "Copy bytes as..."
|
||||||
- Bytes
|
- Bytes
|
||||||
- Hex string
|
- Hex string
|
||||||
- C, C++, C#, Rust, Python, Java & JavaScript array
|
- C, C++, C#, Rust, Python, Java & JavaScript array
|
||||||
- ASCII-Art hex view
|
- ASCII-Art hex view
|
||||||
- HTML self-contained div
|
- HTML self-contained div
|
||||||
- String and hex search
|
- Simple string and hex search
|
||||||
- Colorful highlighting
|
|
||||||
- Goto from start, end and current cursor position
|
- Goto from start, end and current cursor position
|
||||||
- Custom C++-like pattern language for parsing highlighting a file's content
|
- Colorful highlighting
|
||||||
- Automatic loading based on MIME type
|
- Configurable foreground highlighting rules
|
||||||
- arrays, pointers, structs, unions, enums, bitfields, namespaces, little and big endian support, conditionals and much more!
|
- Background highlighting using patterns, find results and bookmarks
|
||||||
|
- Displaying data as a list of many different types
|
||||||
|
- Hexadecimal integers (8, 16, 32, 64 bit)
|
||||||
|
- Signed and unsigned decimal integers (8, 16, 32, 64 bit)
|
||||||
|
- Floats (16, 32, 64 bit)
|
||||||
|
- RGBA8 Colors
|
||||||
|
- HexII
|
||||||
|
- Binary
|
||||||
|
- Decoding data as ASCII and custom encodings
|
||||||
|
- Built-in support for UTF-8, UTF-16, ShiftJIS, most Windows encodings and many more
|
||||||
|
- Paged data view
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Custom C++-like pattern language for parsing highlighting a file's content</summary>
|
||||||
|
|
||||||
|
- Automatic loading based on MIME types and magic values
|
||||||
|
- Arrays, pointers, structs, unions, enums, bitfields, namespaces, little and big endian support, conditionals and much more!
|
||||||
- Useful error messages, syntax highlighting and error marking
|
- Useful error messages, syntax highlighting and error marking
|
||||||
- Doesn't burn out your retinas when used in late-night sessions
|
- Support for visualizing many different types of data
|
||||||
- Dark mode by default, but a light mode is available as well
|
- Images
|
||||||
- Data importing
|
- Audio
|
||||||
|
- 3D Models
|
||||||
|
- Coordinates
|
||||||
|
- Time stamps
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Theming support</summary>
|
||||||
|
|
||||||
|
- Doesn't burn out your retinas when used in late-night sessions
|
||||||
|
- Dark mode by default, but a light mode is available as well
|
||||||
|
- Customizable colors and styles for all UI elements through shareable theme files
|
||||||
|
- Support for custom fonts
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Importing and Exporting data</summary>
|
||||||
|
|
||||||
- Base64 files
|
- Base64 files
|
||||||
- IPS and IPS32 patches
|
- IPS and IPS32 patches
|
||||||
- Data exporting
|
- Markdown reports
|
||||||
- IPS and IPS32 patches
|
</details>
|
||||||
- Data inspector allowing interpretation of data as many different types (little and big endian)
|
|
||||||
- Huge file support with fast and efficient loading
|
<details>
|
||||||
- String search
|
<summary>Data Inspector</summary>
|
||||||
- Copying of strings
|
|
||||||
- Copying of demangled strings
|
- Interpreting data as many different types with endianess, decimal, hexadecimal and octal support and bit inversion
|
||||||
- File hashing support
|
- Unsigned and signed integers (8, 16, 24, 32, 48, 64 bit)
|
||||||
- CRC16 and CRC32 with custom initial values and polynomials
|
- Floats (16, 32, 64 bit)
|
||||||
- MD4, MD5
|
- Signed and Unsigned LEB128
|
||||||
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
|
- ASCII, Wide and UTF-8 characters and strings
|
||||||
- Diffing
|
- time32_t, time64_t, DOS date and time
|
||||||
- Compare binaries and analyze differences with ease
|
- GUIDs
|
||||||
- Disassembler supporting many architectures (frontend for Capstone)
|
- RGBA8 and RGB65 Colors
|
||||||
- ARM32 (ARM, Thumb, Cortex-M, AArch32)
|
- Copying and modifying bytes through the inspector
|
||||||
- ARM64
|
- Adding new data types through the pattern language
|
||||||
- MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
|
- Support for hiding rows that aren't used
|
||||||
- x86 (16-bit, 32-bit, 64-bit)
|
</details>
|
||||||
- PowerPC (32-bit, 64-bit)
|
|
||||||
- SPARC
|
<details>
|
||||||
- IBM SystemZ
|
<summary>Node-based data pre-processor</summary>
|
||||||
- xCORE
|
|
||||||
- M68K
|
- Modify, decrypt and decode data before it's being displayed in the hex editor
|
||||||
- TMS320C64X
|
- Modify data without touching the underlying source
|
||||||
- M680X
|
- Support for adding custom nodes
|
||||||
- Ethereum
|
</details>
|
||||||
- RISC-V
|
|
||||||
- WebAssembly
|
<details>
|
||||||
- MOS65XX
|
<summary>Loading data from many different data sources</summary>
|
||||||
- Berkeley Packet Filter
|
|
||||||
- Bookmarks
|
- Local Files
|
||||||
- Region highlighting
|
- Support for huge files with fast and efficient loading
|
||||||
- Comments
|
- Raw Disks
|
||||||
- Data Analyzer
|
- Loading data from raw disks and partitions
|
||||||
|
- GDB Server
|
||||||
|
- Access the RAM of a running process or embedded devices through GDB
|
||||||
|
- Intel Hex and Motorola SREC data
|
||||||
|
- Process Memory
|
||||||
|
- Inspect the entire address space of a running process
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Data searching</summary>
|
||||||
|
|
||||||
|
- Support for searching the entire file or only a selection
|
||||||
|
- String extraction
|
||||||
|
- Option to specify minimum length and character set (lower case, upper case, digits, symbols)
|
||||||
|
- Option to specify encoding (ASCII, UTF-8, UTF-16 big and little endian)
|
||||||
|
- Sequence search
|
||||||
|
- Search for a sequence of bytes or characters
|
||||||
|
- Option to ignore character case
|
||||||
|
- Regex search
|
||||||
|
- Search for strings using regular expressions
|
||||||
|
- Binary Pattern
|
||||||
|
- Search for sequences of bytes with optional wildcards
|
||||||
|
- Numeric Value search
|
||||||
|
- Search for signed/unsigned integers and floats
|
||||||
|
- Search for ranges of values
|
||||||
|
- Option to specify size and endianess
|
||||||
|
- Option to ignore unaligned values
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Data hashing support</summary>
|
||||||
|
|
||||||
|
- Many different algorithms available
|
||||||
|
- CRC8, CRC16 and CRC32 with custom initial values and polynomials
|
||||||
|
- Many default polynomials available
|
||||||
|
- MD5
|
||||||
|
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
|
||||||
|
- Hashing of specific regions of the loaded data
|
||||||
|
- Hashing of arbitrary strings
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Diffing support</summary>
|
||||||
|
|
||||||
|
- Compare data of different data sources
|
||||||
|
- Difference highlighting
|
||||||
|
- Table view of differences
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Integrated disassembler</summary>
|
||||||
|
|
||||||
|
- Support for all architectures supported by 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
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Bookmarks</summary>
|
||||||
|
|
||||||
|
- Support for bookmarks with custom names and colors
|
||||||
|
- Highlighting of bookmarked region in the hex editor
|
||||||
|
- Jump to bookmarks
|
||||||
|
- Open content of bookmark in a new tab
|
||||||
|
- Add comments to bookmarks
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Featureful data analyzer and visualizer</summary>
|
||||||
|
|
||||||
- File magic-based file parser and MIME type database
|
- File magic-based file parser and MIME type database
|
||||||
- Byte distribution graph
|
- Byte type distribution graph
|
||||||
- Entropy graph
|
- Entropy graph
|
||||||
- Highest and average entropy
|
- Highest and average entropy
|
||||||
- Encrypted / Compressed file detection
|
- Encrypted / Compressed file detection
|
||||||
- Built-in Content Store
|
- Digram and Layered distribution graphs
|
||||||
- Download all files found in the database directly from within ImHex
|
</details>
|
||||||
- Yara Rules support
|
|
||||||
- Quickly scan a file for vulnerabilities with official yara rules
|
<details>
|
||||||
- Helpful tools
|
<summary>YARA Rule support</summary>
|
||||||
- Itanium and MSVC demangler
|
|
||||||
|
- Scan a file for vulnerabilities with official yara rules
|
||||||
|
- Highlight matches in the hex editor
|
||||||
|
- Jump to matches
|
||||||
|
- Apply multiple rules at once
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Helpful tools</summary>
|
||||||
|
|
||||||
|
- Itanium, MSVC, Rust and D-Lang demangler based on LLVM
|
||||||
- ASCII table
|
- ASCII table
|
||||||
- Regex replacer
|
- Regex replacer
|
||||||
- Mathematical expression evaluator (Calculator)
|
- Mathematical expression evaluator (Calculator)
|
||||||
- Hexadecimal Color picker
|
- Graphing calculator
|
||||||
|
- Hexadecimal Color picker with support for many different formats
|
||||||
- Base converter
|
- Base converter
|
||||||
|
- Byte swapper
|
||||||
- UNIX Permissions calculator
|
- UNIX Permissions calculator
|
||||||
- Wikipedia term definition finder
|
- Wikipedia term definition finder
|
||||||
- File utilities
|
- File utilities
|
||||||
- File splitter
|
- File splitter
|
||||||
- File combiner
|
- File combiner
|
||||||
- File shredder
|
- File shredder
|
||||||
|
- IEEE754 Float visualizer
|
||||||
|
- Division by invariant multiplication calculator
|
||||||
|
- TCP Client/Server
|
||||||
|
- Euclidean algorithm calculator
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Built-in Content updater</summary>
|
||||||
|
|
||||||
|
- Download all files found in the database directly from within ImHex
|
||||||
|
- Pattern files for decoding various file formats
|
||||||
|
- Libraries for the pattern language
|
||||||
|
- Magic files for file type detection
|
||||||
|
- Custom data processor nodes
|
||||||
|
- Custom encodings
|
||||||
|
- Custom themes
|
||||||
|
- Yara rules
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Modern Interface</summary>
|
||||||
|
|
||||||
|
- Support for multiple workspaces
|
||||||
|
- Support for custom layouts
|
||||||
|
- Detachable windows
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Easy to get started</summary>
|
||||||
|
|
||||||
|
- Support for many different languages
|
||||||
|
- Simplified mode for beginners
|
||||||
|
- Extensive documentation
|
||||||
|
- Many example files available on [the Database](https://github.com/WerWolv/ImHex-Patterns)
|
||||||
|
- Achievements guiding you through the features of ImHex
|
||||||
|
- Interactive tutorials
|
||||||
|
</details>
|
||||||
|
|
||||||
## Pattern Language
|
## Pattern Language
|
||||||
|
|
||||||
@ -150,7 +327,13 @@ For format patterns, libraries, magic and constant files, check out the [ImHex-P
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
To use ImHex, the following minimal system requirements need to be met:
|
To use ImHex, the following minimal system requirements need to be met.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> ImHex requires a GPU with OpenGL 3.0 support in general.
|
||||||
|
> There are releases available (with the `-NoGPU` suffix) that are software rendered and don't require a GPU, however these can be a lot slower than the GPU accelerated versions.
|
||||||
|
>
|
||||||
|
> If possible at all, make ImHex use the dedicated GPU on your system instead of the integrated one (especially Intel HD GPUs are known to cause issues).
|
||||||
|
|
||||||
- **OS**:
|
- **OS**:
|
||||||
- **Windows**: Windows 7 or higher (Windows 10/11 recommended)
|
- **Windows**: Windows 7 or higher (Windows 10/11 recommended)
|
||||||
@ -177,8 +360,9 @@ To compile ImHex on any platform, GCC (or Clang) is required with a version that
|
|||||||
On macOS, Clang is also required to compile some ObjC code.
|
On macOS, Clang is also required to compile some ObjC code.
|
||||||
All releases are being built using latest available GCC.
|
All releases are being built using latest available GCC.
|
||||||
|
|
||||||
Many dependencies are bundled into the repository using submodules so make sure to clone it using the `--recurse-submodules` option.
|
> [!NOTE]
|
||||||
All dependencies that aren't bundled, can be installed using the dependency installer scripts found in the `/dist` folder.
|
> Many dependencies are bundled into the repository using submodules so make sure to clone it using the `--recurse-submodules` option.
|
||||||
|
> All dependencies that aren't bundled, can be installed using the dependency installer scripts found in the `/dist` folder.
|
||||||
|
|
||||||
For more information, check out the [Compiling](/dist/compiling) guide.
|
For more information, check out the [Compiling](/dist/compiling) guide.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user