Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pkgw/elfx86exts
Decode binaries and print out which instruction set extensions they use. This program's name is a lie: it supports not just x86/ELF but also ARM64, MachO, and possibly more.
https://github.com/pkgw/elfx86exts
Last synced: about 6 hours ago
JSON representation
Decode binaries and print out which instruction set extensions they use. This program's name is a lie: it supports not just x86/ELF but also ARM64, MachO, and possibly more.
- Host: GitHub
- URL: https://github.com/pkgw/elfx86exts
- Owner: pkgw
- License: mit
- Created: 2017-09-29T22:50:22.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-01-21T17:17:19.000Z (11 days ago)
- Last Synced: 2025-01-25T07:02:14.377Z (7 days ago)
- Language: Rust
- Homepage:
- Size: 451 KB
- Stars: 215
- Watchers: 7
- Forks: 14
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# elfx86exts
Disassemble a binary and print out which instruction set extensions it uses.
Despite the utterly misleading name, this tool supports ELF and MachO binaries,
and perhaps other formats as well, and has preliminary support for ARM64 as well
as X86/64. It used to be a lot more limited!I have no idea what I'm doing here, but it seems to work. There are several
Rust crates that make this pretty easy to do.## Change Log
See [the CHANGELOG on the release
branch](https://github.com/pkgw/elfx86exts/blob/release/CHANGELOG.md) for news
about what has changed between releases.## Installation
### Prepackaged
This tool is installable through a few package managers:
- [Arch Linux AUR](https://aur.archlinux.org/packages/elfx86exts/)
- [conda-forge](https://anaconda.org/conda-forge/elfx86exts) (Linux only right now)If you are interested in packaging `elfx86exts` in a new packaging system, or
have already done so, please submit a PR to add it to this list.### Compiling the Latest Release
If a package is not available, in most cases it will be straightforward to
build `elfx86exts` yourself. Dependencies are:- A [Rust](https://www.rust-lang.org/) toolchain
- The [Capstone](http://www.capstone-engine.org/) disassembly engineBoth of these dependencies are available through a wide variety of package
managers. Once they’re set up, you don’t even need to check out this
repository to install the latest release. Simply run:```
cargo install elfx86exts
```… and the tool will be installed in your Cargo binary directory, usually
`~/.cargo/bin/`. When using this method, you need to add the `--force` flag to
upgrade from one version to the next.### Compiling the Code From Git
This is hardly any more difficult than the above. Check out this repository,
then run:```
cargo install --path .
```To develop the program, use the `cargo build` and `cargo run` commands. For
more information, see
[The Cargo Book](https://doc.rust-lang.org/cargo/index.html).## Contributions
Contributions are welcome! Please submit PRs against this repository, or file
issues for discussion. The only important rule is that all participants are
expected to abide by the spirit of a standard
[Contributor Covenant code of conduct](https://www.contributor-covenant.org/).
All contributions will be assumed to be licensed under the terms described
below unless you explicitly state otherwise.## Licensing
Licensed under the [MIT License](https://opensource.org/licenses/MIT).