{"id":20631812,"url":"https://github.com/marcin-chwedczuk/elf-viewer","last_synced_at":"2025-04-15T18:43:13.366Z","repository":{"id":51612337,"uuid":"426136013","full_name":"marcin-chwedczuk/elf-viewer","owner":"marcin-chwedczuk","description":"Use Elf Viewer to see structure of ELF files. This is a GUI replacement for Linux readelf command. The main audience of this program are people learning about ELF file format and university students attending compsec courses. ","archived":false,"fork":false,"pushed_at":"2023-06-06T13:14:07.000Z","size":8591,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T23:51:08.311Z","etag":null,"topics":["elf-binaries","elf-parser","elf-viewer"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcin-chwedczuk.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}},"created_at":"2021-11-09T07:45:52.000Z","updated_at":"2024-12-30T08:08:26.000Z","dependencies_parsed_at":"2023-02-16T19:31:30.048Z","dependency_job_id":null,"html_url":"https://github.com/marcin-chwedczuk/elf-viewer","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":"marcin-chwedczuk/javafx-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-chwedczuk%2Felf-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-chwedczuk%2Felf-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-chwedczuk%2Felf-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcin-chwedczuk%2Felf-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcin-chwedczuk","download_url":"https://codeload.github.com/marcin-chwedczuk/elf-viewer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249131439,"owners_count":21217744,"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":["elf-binaries","elf-parser","elf-viewer"],"created_at":"2024-11-16T14:13:37.227Z","updated_at":"2025-04-15T18:43:13.349Z","avatar_url":"https://github.com/marcin-chwedczuk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elf Viewer\n\n![Main Window](./docs/elf-viewer-main-window.png)\n\n:warning: PROJECT IS USABLE, BUT STILL UNDER CONSTRUCTION :warning:\n\nCurrent status:\n* Covers about 80% of all ELF structures. \n  What is left are mostly GNU specific extensions and relocations.\n* GUI still needs a bit of polishing.\n\nTested on `libc` for x86, x86_64 and arm64 architectures. Solaris is not supported.\n\nRight now I am playing with the API and I try to figure out the most\nintuitive and Javaish API for dealing with ELFs.\n\nRest of the README comes from the standard template:\n\n---\n\n![Build Status](https://github.com/marcin-chwedczuk/elf-viewer/actions/workflows/ci.yaml/badge.svg)\n\n* Created for JDK 11+, with Java 9 modules support\n* Multi-module Maven project by default\n* Sass used instead of CSS\n* assertJ and jUnit 5 used for unit testing\n* TestFX used for integration testing\n* Example GitHub action that builds the project and runs integration tests in headless mode\n\n### How to run application\n```\n./mvnw javafx:run -pl gui\n```\n\n### How to rebuild `.css` files from `.scss`\n```\n./mvnw nl.geodienstencentrum.maven:sass-maven-plugin:update-stylesheets -pl gui\n```\n\n### How to watch for SCSS changes and regenerate them when they change\n```\nfswatch --exclude='.*' --include='.*[.]scss$' --print0 . | while read -d \"\" event; do\n    ./mvnw nl.geodienstencentrum.maven:sass-maven-plugin:update-stylesheets -pl gui \ndone\n```\nYou need to install `fswatch` command for this to work.\n\n### How to generate `jlink` image\n```\n./mvnw javafx:jlink -pl gui \n```\nYou can now send `./gui/target/gui.zip` to your friends :tada:\n\n### How to run integration tests (TestFX)\n```\n./mvnw verify -Dskip.integration.tests=false -Dskip.unit.tests=true\n```\n\n### How to run single integration test\n```\n./mvnw clean verify -Dskip.integration.tests=false -Dskip.unit.tests=true \\\n    -pl gui -Dit.test=MainWindowIT\n```\n\n### How to run integration tests in the headless mode\n```\n_JAVA_OPTIONS=\"-Djava.awt.headless=true \\\n-Dtestfx.robot=glass \\\n-Dtestfx.headless=true \\\n-Dprism.order=sw \\\n-Dprism.verbose=true\" ./mvnw verify -Dskip.integration.tests=false -pl gui \n```\n\nOn macOS you must allow IntelliJ or the terminal app that you are using,\nto \"take over your computer\":\n![macOS settings needed for IT](docs/macOS-it-perm.png)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcin-chwedczuk%2Felf-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcin-chwedczuk%2Felf-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcin-chwedczuk%2Felf-viewer/lists"}