Crates.io | crt0stack |
lib.rs | crt0stack |
version | 0.1.0 |
source | src |
created_at | 2020-08-19 21:08:46.941627 |
updated_at | 2020-08-19 21:08:46.941627 |
description | Tools for reading and creating Linux crt0 stack data |
homepage | https://github.com/enarx/crt0stack |
repository | https://github.com/enarx/crt0stack |
max_upload_size | |
id | 278400 |
size | 52,121 |
Create the initial stack frame to start an ELF binary on Linux
use crt0stack::{Builder, Entry};
let mut stack = [1u8; 512];
let stack = stack.as_mut();
let mut builder = Builder::new(stack);
builder.push("/init").unwrap();
let mut builder = builder.done().unwrap();
builder.push("HOME=/root").unwrap();
let mut builder = builder.done().unwrap();
let auxv = [
Entry::Gid(1000),
Entry::Uid(1000),
Entry::Platform("x86_64"),
Entry::ExecFilename("/init"),
];
auxv.iter().for_each(|e| builder.push(e).unwrap());
let handle = builder.done().unwrap();
License: Apache-2.0