🦀️ atos for linux by rust
A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols.
Tested on DWARF and Mach-O formats.
- Features
- Quick Start
- Installation
- Usage
- Configuration
- Examples
- Development
- Contributing
- License
- Star History
- Symbolication: Convert memory addresses to symbols (function names, source files, line numbers).
- Cross-Platform: Designed to bring Apple's
atosfunctionality to Linux. - Format Support: Supports DWARF and Mach-O binary formats.
- Performance: Built with Rust for speed and safety.
If you have Rust installed, getting started is as simple as:
cargo install atoslIf you don't have Rust installed, follow the official guide: https://www.rust-lang.org/tools/install
Method A: via Cargo (Recommended)
# macOS / Linux
cargo install atoslMethod B: Ubuntu / Debian Dependencies
If you are building on a fresh Ubuntu environment, you might need the following dependencies:
sudo apt update
sudo apt install git curl build-essential
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Install atosl
cargo install atoslatosl [OPTIONS] -o <OBJECT_PATH> -l <LOAD_ADDRESS> [ADDRESSES]...
| Argument | Description |
|---|---|
<ADDRESSES>... |
Addresses to translate (hex or decimal). |
| Option | Short | Description |
|---|---|---|
--object-path |
-o |
Symbol file path or binary file path. |
--load-address |
-l |
Load address of the binary image. |
--file-offset-type |
-f |
Treat addresses as file offsets (ignore vmaddr in __TEXT or executable segments). |
--verbose |
-v |
Enable verbose mode with extra output. |
--help |
-h |
Print help information. |
--version |
-V |
Print version information. |
atosl -l 4581015552 -o "full path to dwarf file" 4674962060 4786995348atosl -l 9093120 -o "full path to libsystem_malloc.dylib" 6754325196To contribute or run the project locally from source:
-
Clone the repository:
git clone https://github.com/everettjf/atosl-rs.git cd atosl-rs -
Run locally:
cargo run -- -o <path_to_binary> -l <load_address> <address>
-
Run tests:
cargo test
Contributions are welcome! If you find a bug or want to optimize the tool, feel free to make a pull request.
Please ensure your code is formatted and linted:
cargo fmt
cargo clippyThis project is licensed under the MIT License. See the LICENSE file for details.