Decode x86 binaries (both ELF and MachO, the crate name is a lie!) and print out which instruction set extensions they use.
Switch branches/tags
Clone or download
Latest commit 46df62a Oct 25, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Add CPU Generation output. Oct 16, 2018
.gitignore It works, I think! Sep 29, 2017
.travis.yml .travis.yml: add this Aug 6, 2018
CHANGELOG.md CHANGELOG.md: add this Oct 16, 2018
Cargo.lock Bump object from 0.10.0 to 0.11.0 Oct 25, 2018
Cargo.toml Bump object from 0.10.0 to 0.11.0 Oct 25, 2018
LICENSE It works, I think! Sep 29, 2017
README.md CHANGELOG.md: add this Oct 16, 2018

README.md

elfx86exts

Disassemble a binary containing x86 instructions and print out which extensions it uses. Despite the utterly misleading name, this tool supports ELF and MachO binaries, and perhaps PE-format ones as well. (It used to be 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 for news about what has changed between releases.

Installation

Prepackaged

This tool is installable through a few package managers:

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:

Both 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.

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. All contributions will be assumed to be licensed under the terms described below unless you explicitly state otherwise.

Licensing

Licensed under the MIT License.