| Crates.io | aragonite |
| lib.rs | aragonite |
| version | 0.1.0 |
| created_at | 2024-05-04 21:29:27.655522+00 |
| updated_at | 2024-05-04 21:29:27.655522+00 |
| description | a library for producing position-independent shellcode on win/linux targets |
| homepage | |
| repository | https://www.gitlab.com/aragonite-rs/aragonite |
| max_upload_size | |
| id | 1229845 |
| size | 14,927 |
Aragonite is a form of calcium-carbonate (CaCO3) commonly found in the materials for shell formation. In that spirit, aragonite is a set of tools necessary that makes generating position-independent shellcode in rust easy to do.
x86_64-unknown-linux-gnu). Ensure you have the required tooling/environment to compile code for this targetcargo-aragonite build tool via cargo install cargo-aragonite. This is a thin-wrapper that sets up the correct environment, release profile, and build scripts to generate proper position-independent shellcode.aragonite_main attribute. This handles setting up the correct attributes for the linker script, and automatic clean exits if a target family is supplied. See the examples/src/bin folder for examples.cargo aragonite build. Any extra arguments are transparently passed to cargo.targets/x86_64-unknown-linux-gnu/aragonite/[binaryname]#[aragonite_main] attributesfamilyCan be set to the following values:
| value | description |
|---|---|
win |
support for windows targets, performs automatic cleanup by calling the ExitProcess(0) function in kernel32.dll |
linux |
support for linux targets, performs automatic cleanup by calling the sys_exit(0) syscall for the target arch |
#[aragonite_main(family = "win")]
fn main() {
// my code here, will automatically call ExitProcess(0) at the end of the function
}
archCan be set to the following values:
| value | description |
|---|---|
x64 |
support for x64 targets, used to select correct ABI based on family attribute |
#[aragonite_main(family = "win", arch = "x64")]
fn main() {
// my code here, the code for ExitProcess(0) will assume it's running in a 64-bit process
}
no_cleanupThis flag disables automatic cleanup code generation if a family is specified.
#[aragonite_main(no_cleanup, family = "win")]
fn main() {
// my code here, no extra code will be added
}