{"id":13415548,"url":"https://github.com/echo-devim/fhex","last_synced_at":"2025-05-16T01:07:48.841Z","repository":{"id":41397518,"uuid":"214864089","full_name":"echo-devim/fhex","owner":"echo-devim","description":"A Full-Featured HexEditor compatible with Linux/Windows/MacOS","archived":false,"fork":false,"pushed_at":"2024-11-06T16:02:44.000Z","size":2739,"stargazers_count":428,"open_issues_count":0,"forks_count":41,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-08T12:07:03.960Z","etag":null,"topics":["assembler","capstone","cplusplus-11","disassembler","gui","hexeditor","keystone","qt5","reverse-engineering"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/echo-devim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-13T17:35:10.000Z","updated_at":"2025-03-15T17:18:12.000Z","dependencies_parsed_at":"2023-11-17T14:16:53.453Z","dependency_job_id":"4dd20ad6-1e9c-458a-9504-b04299199e1b","html_url":"https://github.com/echo-devim/fhex","commit_stats":{"total_commits":177,"total_committers":3,"mean_commits":59.0,"dds":"0.10169491525423724","last_synced_commit":"38fddb217e511a6fd2c764b57112b61655d53447"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echo-devim%2Ffhex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echo-devim%2Ffhex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echo-devim%2Ffhex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echo-devim%2Ffhex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/echo-devim","download_url":"https://codeload.github.com/echo-devim/fhex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254448578,"owners_count":22072764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembler","capstone","cplusplus-11","disassembler","gui","hexeditor","keystone","qt5","reverse-engineering"],"created_at":"2024-07-30T21:00:50.202Z","updated_at":"2025-05-16T01:07:43.824Z","avatar_url":"https://github.com/echo-devim.png","language":"C++","funding_links":[],"categories":["Editor/IDE/Debugger","C++","Hex Editors"],"sub_categories":[],"readme":"# Fhex - A Full-Featured HexEditor\n\nThis project is born with the aim to develop a lightweight, but useful tool. The reason is that the existing hex editors have some different limitations (e.g. too many dependencies, missing hex coloring features, etc.).\n\n![screenshot](screenshot.png) \n![screenshot2](screenshot2.png)\n![screenshot3](screenshot3.png)\n\nThis project is based on **qhexedit2**, **capstone** and **keystone** engines. New features could be added in the future, PRs are welcomed.\n\n## Features\n\n* Chunks loader - Used to load only a portion of large files without exhaust the memory (use alt + left/right arrows to move among chunks). Please note that in chunk mode, all the operations (e.g. search) applies only to the current chunk except for file save (the entire file is saved). However, each time you edit a chunk, save it before to move to another chunk, otherwise you will lose your changes.\n* Search and replace (UTF-8, HEX, regex, reverse search supported) [`CTRL + F`]\n* Colored output (white spaces, ASCII characters, 0xFF, UTF-8 and NULL bytes have different colors)\n* Interpret selected bytes as integer, long, unsigned long [`CTRL + B`]\n* Copy \u0026 Paste  [`CTRL + C` and  `CTRL + V`]\n* Copy selected unicode characters [`CTRL + Space`]\n* Zeroing all the selected bytes [`Delete` or `CTRL + D`]\n* Undo \u0026 Redo [`CTRL + Z` and `CTRL + Y`]\n* Drag \u0026 Drop (*Hint:* Drag\u0026Drop two files to diff them)\n* Overwrite the same file or create a new one  [`CTRL + S`]\n* Goto offset  [`CTRL + G`]\n* Insert mode supported in order to insert new bytes instead to overwrite the existing one [`INS`]\n* Create new instances [`CTRL + N`]\n* Basic text viewer for the selected text [`CTRL + T`]\n* Reload the current file [`F5`]\n* Compare two different files at byte level\n* Browsable Binary Chart (see later for details) [`F1`]\n* Hex - Dec number converter [`F2`]\n* Hex String escaper (e.g from 010203 to \\x01\\x02\\x03) [`F3`]\n* Pattern Matching Engine (see later for details)\n* Disassebler based on Capstone Engine [`F4`]\n* Assembler based on Keystone Engine [`F4`]\n* Zoom-Out/Zoom-In bytes view (`CTRL + Up/Down` or `CTRL + -/+`)\n* Shortcuts for all these features\n\n## Pattern Matching Engine\nFhex can load at startup a configuration file (from `~/fhex/config.json`) in JSON format with a list of strings or bytes to highlight and a comment/label to add close to the matches.\n\nExamples:\n```json\n{\n    \"PatternMatching\":\n    [\n        {\n            \"string\" : \"://www.\",\n            \"color\" : \"rgba(250,200,200,50)\",\n            \"message\" : \"Found url\"\n        },\n        {\n            \"bytes\" : \"414243\",\n            \"color\" : \"rgba(250,200,200,50)\",\n            \"message\" : \"Found ABC\"\n        }\n    ]\n}\n```\nTo activate pattern matching press `CTRL + P`\nAt the end, Fhex will show also an offset list with all the result references.\n**Note:** Labels with comments are added only if the window is maximized, if labels are not displayed correctly please try to run pattern matching again.\n\n## Binary Chart\n\nFhex has the feature to chart the loaded binary file (*Note:* In order to compile the project, now you need also `qt5-charts` installed on the system).\nThe y-axis range is between 0 and 255 (in hex 0x0 and 0xff, i.e. the byte values). The x-axis range is between 0 and the filesize.\n\nThe chart plots the byte values of the binary file and let you focus only on the relevant sections. For example, if in a binary file there is an area full of null bytes, you can easily detect it from the chart.\n\n## Compilation\nThe project has the following dependences: qt5-charts (package: libqt5charts5-dev in debian/ubuntu), capstone (optional) and keystone (optional).\nOn linux you can check if you have the mandatory library with `ldconfig -p | grep -i qt5charts`\n\nFhex by default is compiled with the MINIMAL profile, this means it doesn't include capstone and keystone. You can change this option removing the related line from `fhex.pro`.\n\nIn order to build Fhex on linux execute these commands:\n```sh\nmkdir build\ncd build\nqmake ..\nmake -j$(nproc)\n```\n\n### License\nGPL-3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecho-devim%2Ffhex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecho-devim%2Ffhex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecho-devim%2Ffhex/lists"}