Crates.io | lazy-re |
lib.rs | lazy-re |
version | 0.1.1 |
source | src |
created_at | 2022-07-07 05:11:13.963062 |
updated_at | 2022-07-19 03:41:52.283703 |
description | A library for lazy reverse engineers |
homepage | |
repository | https://github.com/etra0/lazy-re |
max_upload_size | |
id | 620940 |
size | 16,488 |
A simple proc macro for the lazy reverse engineers. It basically creates the padding for you.
#[repr(C, packed)]
#[lazy_re]
struct Lights {
#[lazy_re(offset = 0x10)]
x: f32,
y: f32,
z: f32
}
#[repr(C, packed)]
#[lazy_re]
struct PlayerEntity {
#[lazy_re(offset = 0x48)]
light: Lights,
#[lazy_re(offset = 0x90)]
player_x: f32,
player_y: f32,
player_z: f32,
}
That would create the padding for the Light
struct at the beginning, i.e.
the x
field will be at the offset 0x10
, and the rest is filled with [u8; 0x10]
.
Similarly, the PlayerEntity will have padding until the Light
struct, and
then it'll pad between the light and the player position, doing the math for
you.