pub struct JumpTable {
pub lib: PathBuf,
pub map: AddressMap,
pub aslr_reference: u64,
pub new_base_address: u64,
pub ifunc_count: u64,
}Expand description
One patch: the library holding the new code and the old -> new address map into it.
Fields§
§lib: PathBufThe patch dylib, a path the platform loader can open directly.
map: AddressMapOld function address -> new function address, both as link-time addresses: neither the
running binary’s ASLR slide nor the patch’s load address is applied yet
(apply_patch rebases both sides).
aslr_reference: u64Link-time address of the running binary’s main, the anchor that recovers its ASLR slide.
new_base_address: u64Link-time address of the patch library’s main, the anchor that recovers its load address.
ifunc_count: u64Indirect-function count; only a wasm loader reads it, kept so the wire shape is identical.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for JumpTable
impl<'de> Deserialize<'de> for JumpTable
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for JumpTable
Auto Trait Implementations§
impl Freeze for JumpTable
impl RefUnwindSafe for JumpTable
impl Send for JumpTable
impl Sync for JumpTable
impl Unpin for JumpTable
impl UnsafeUnpin for JumpTable
impl UnwindSafe for JumpTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more