[INFO] cloning repository https://github.com/0xm1r41/syscall-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0xm1r41/syscall-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xm1r41%2Fsyscall-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xm1r41%2Fsyscall-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ad47b6dd6f8437479a6bae31b67036ec5251ab23
[INFO] checking 0xm1r41/syscall-rs against master#fcac501a73cdde54de46a0683567f1a890730555 for pr-151102
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xm1r41%2Fsyscall-rs" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0xm1r41/syscall-rs
[INFO] finished tweaking git repo https://github.com/0xm1r41/syscall-rs
[INFO] tweaked toml for git repo https://github.com/0xm1r41/syscall-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0xm1r41/syscall-rs on toolchain fcac501a73cdde54de46a0683567f1a890730555
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0xm1r41/syscall-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 06c626ee9758ce4ef6f6afd3e59e121539b7a4caa16c31c505e09854cbe5c412
[INFO] running `Command { std: "docker" "start" "-a" "06c626ee9758ce4ef6f6afd3e59e121539b7a4caa16c31c505e09854cbe5c412", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "06c626ee9758ce4ef6f6afd3e59e121539b7a4caa16c31c505e09854cbe5c412", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "06c626ee9758ce4ef6f6afd3e59e121539b7a4caa16c31c505e09854cbe5c412", kill_on_drop: false }`
[INFO] [stdout] 06c626ee9758ce4ef6f6afd3e59e121539b7a4caa16c31c505e09854cbe5c412
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+fcac501a73cdde54de46a0683567f1a890730555" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f7a2ee431a3882b9b459af898231af35ac60dcf1e7bb479188de8b2ff4a93d2a
[INFO] running `Command { std: "docker" "start" "-a" "f7a2ee431a3882b9b459af898231af35ac60dcf1e7bb479188de8b2ff4a93d2a", kill_on_drop: false }`
[INFO] [stderr]     Checking syscall_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     asm!("mov {}, gs:[0x60]", out(reg) peb);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub unsafe fn get_peb() -> *mut u8 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     asm!("mov {}, gs:[0x60]", out(reg) peb);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub unsafe fn get_peb() -> *mut u8 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let ldr = *(peb.add(0x18) as *const *const u8);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub unsafe fn find_module_base(peb: *mut u8, dll_name: &str) -> Option<*mut u8> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let ldr = *(peb.add(0x18) as *const *const u8);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub unsafe fn find_module_base(peb: *mut u8, dll_name: &str) -> Option<*mut u8> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let ldr = *(peb.add(0x18) as *const *const u8);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let module_list = *(ldr.add(0x10) as *const *const u8); 
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let module_list = *(ldr.add(0x10) as *const *const u8); 
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let ldr = *(peb.add(0x18) as *const *const u8);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut current = *(module_list as *const *const u8);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let module_list = *(ldr.add(0x10) as *const *const u8); 
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let base_dll_name = &(*entry).base_dll_name;
[INFO] [stdout]    |                              ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let module_list = *(ldr.add(0x10) as *const *const u8); 
[INFO] [stdout]    |                         ^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut current = *(module_list as *const *const u8);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let base_dll_name = &(*entry).base_dll_name;
[INFO] [stdout]    |                              ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |             current = *(current as *const *const u8);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:50:26
[INFO] [stdout]    |
[INFO] [stdout] 50 |           let name_slice = core::slice::from_raw_parts(
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 51 | |             base_dll_name.buffer,
[INFO] [stdout] 52 | |             (base_dll_name.length / 2) as usize,
[INFO] [stdout] 53 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |             return Some((*entry).dll_base);
[INFO] [stdout]    |                         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:60:19
[INFO] [stdout]    |
[INFO] [stdout] 60 |         current = *(current as *const *const u8);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |             current = *(current as *const *const u8);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:50:26
[INFO] [stdout]    |
[INFO] [stdout] 50 |           let name_slice = core::slice::from_raw_parts(
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 51 | |             base_dll_name.buffer,
[INFO] [stdout] 52 | |             (base_dll_name.length / 2) as usize,
[INFO] [stdout] 53 | |         );
[INFO] [stdout]    | |_________^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 |             return Some((*entry).dll_base);
[INFO] [stdout]    |                         ^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:60:19
[INFO] [stdout]    |
[INFO] [stdout] 60 |         current = *(current as *const *const u8);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:71:20
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let e_lfanew = *dos_header.add(0x3C / 2) as usize;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub unsafe fn find_export(base: *mut u8, func_name: &str) -> Option<*mut u8> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let e_lfanew = *dos_header.add(0x3C / 2) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:72:22
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let nt_headers = base.add(e_lfanew);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:73:27
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let optional_header = nt_headers.add(0x18);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:75:22
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let export_rva = *(optional_header.add(0x70) as *const u32) as usize;
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let export_rva = *(optional_header.add(0x70) as *const u32) as usize;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:80:22
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let export_dir = base.add(export_rva);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let names_rva = *(export_dir.add(0x20) as *const u32) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let names_rva = *(export_dir.add(0x20) as *const u32) as usize;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:82:24
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let ordinals_rva = *(export_dir.add(0x24) as *const u32) as usize;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:82:26
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let ordinals_rva = *(export_dir.add(0x24) as *const u32) as usize;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let funcs_rva = *(export_dir.add(0x1C) as *const u32) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:83:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let funcs_rva = *(export_dir.add(0x1C) as *const u32) as usize;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let num_names = *(export_dir.add(0x18) as *const u32) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let num_names = *(export_dir.add(0x18) as *const u32) as usize;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:87:24
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let name_rva = *(base.add(names_rva + i * 4) as *const u32) as usize;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:87:26
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let name_rva = *(base.add(names_rva + i * 4) as *const u32) as usize;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:71:20
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let e_lfanew = *dos_header.add(0x3C / 2) as usize;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/lib.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub unsafe fn find_export(base: *mut u8, func_name: &str) -> Option<*mut u8> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let e_lfanew = *dos_header.add(0x3C / 2) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:72:22
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let nt_headers = base.add(e_lfanew);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:73:27
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let optional_header = nt_headers.add(0x18);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:75:22
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let export_rva = *(optional_header.add(0x70) as *const u32) as usize;
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let export_rva = *(optional_header.add(0x70) as *const u32) as usize;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:80:22
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let export_dir = base.add(export_rva);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let name_ptr = base.add(name_rva) as *const u8;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let c = *name_ptr.add(offset);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let c = *name_ptr.add(offset);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:102:27
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let ordinal = *(base.add(ordinals_rva + i * 2) as *const u16) as usize;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let ordinal = *(base.add(ordinals_rva + i * 2) as *const u16) as usize;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let func_rva = *(base.add(funcs_rva + ordinal * 4) as *const u32) as usize;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let func_rva = *(base.add(funcs_rva + ordinal * 4) as *const u32) as usize;
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |             return Some(base.add(func_rva));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `get_peb` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let peb = get_peb();
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub unsafe fn get_ssn(func_name: &str) -> u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `find_module_base` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:113:28
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let ntdll_base = match find_module_base(peb, "ntdll.dll") {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `find_export` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:118:26
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let func_ptr = match find_export(ntdll_base, func_name) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let ssn_ptr = func_ptr.add(4) as *const u32;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::read_unaligned` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     ptr::read_unaligned(ssn_ptr)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let names_rva = *(export_dir.add(0x20) as *const u32) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let names_rva = *(export_dir.add(0x20) as *const u32) as usize;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:82:24
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let ordinals_rva = *(export_dir.add(0x24) as *const u32) as usize;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:82:26
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let ordinals_rva = *(export_dir.add(0x24) as *const u32) as usize;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let funcs_rva = *(export_dir.add(0x1C) as *const u32) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:83:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let funcs_rva = *(export_dir.add(0x1C) as *const u32) as usize;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let num_names = *(export_dir.add(0x18) as *const u32) as usize;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let num_names = *(export_dir.add(0x18) as *const u32) as usize;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:87:24
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let name_rva = *(base.add(names_rva + i * 4) as *const u32) as usize;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:87:26
[INFO] [stdout]    |
[INFO] [stdout] 87 |         let name_rva = *(base.add(names_rva + i * 4) as *const u32) as usize;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let name_ptr = base.add(name_rva) as *const u8;
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let c = *name_ptr.add(offset);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::add` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/lib.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let c = *name_ptr.add(offset);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:102:27
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let ordinal = *(base.add(ordinals_rva + i * 2) as *const u16) as usize;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 102 |             let ordinal = *(base.add(ordinals_rva + i * 2) as *const u16) as usize;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let func_rva = *(base.add(funcs_rva + ordinal * 4) as *const u32) as usize;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let func_rva = *(base.add(funcs_rva + ordinal * 4) as *const u32) as usize;
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |             return Some(base.add(func_rva));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `get_peb` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let peb = get_peb();
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/lib.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub unsafe fn get_ssn(func_name: &str) -> u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `find_module_base` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:113:28
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let ntdll_base = match find_module_base(peb, "ntdll.dll") {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `find_export` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:118:26
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let func_ptr = match find_export(ntdll_base, func_name) {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::add` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let ssn_ptr = func_ptr.add(4) as *const u32;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::read_unaligned` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/lib.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     ptr::read_unaligned(ssn_ptr)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `copy_nonoverlapping`
[INFO] [stdout]  --> examples/demo.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ptr::{null_mut, copy_nonoverlapping};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `syscall_rs::get_ssn` is unsafe and requires unsafe block
[INFO] [stdout]   --> examples/demo.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 let syscall_num = get_ssn("NtAllocateVirtualMemory");
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> examples/demo.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | /          unsafe fn NtAllocateVirtualMemory(
[INFO] [stdout] 15 | |                 process_handle: isize,
[INFO] [stdout] 16 | |                 base_address: *mut *mut c_void,
[INFO] [stdout] 17 | |                 zero_bits: usize,
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | |                 protect: u32,
[INFO] [stdout] 21 | |             ) -> i32 {
[INFO] [stdout]    | |____________________^
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> examples/demo.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | /                 asm!(
[INFO] [stdout] 25 | |                     "sub rsp, 0x28",
[INFO] [stdout] 26 | |                     "mov r10, rcx",
[INFO] [stdout] 27 | |                     "mov [rsp+0x28], rsi",
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |                     clobber_abi("win64"),
[INFO] [stdout] 42 | |                 );
[INFO] [stdout]    | |_________________^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `syscall_rs::get_ssn` is unsafe and requires unsafe block
[INFO] [stdout]   --> examples/demo.rs:55:35
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 let syscall_num = get_ssn("NtWriteVirtualMemory");
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> examples/demo.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 | /             unsafe fn NtWriteVirtualMemory(
[INFO] [stdout] 48 | |                 process_handle: isize,
[INFO] [stdout] 49 | |                 base_address: *mut c_void,
[INFO] [stdout] 50 | |                 buffer: *const c_void,
[INFO] [stdout] 51 | |                 number_of_bytes_to_write: usize,
[INFO] [stdout] 52 | |                 number_of_bytes_written: *mut usize,
[INFO] [stdout] 53 | |             ) -> i32 {
[INFO] [stdout]    | |____________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]   --> examples/demo.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 | /                 asm!(
[INFO] [stdout] 57 | |                     "sub rsp, 0x28",
[INFO] [stdout] 58 | |                     "mov [rsp+0x28], {bytes_written}",
[INFO] [stdout] 59 | |                     "mov r10, rcx",
[INFO] [stdout] ...  |
[INFO] [stdout] 71 | |                     clobber_abi("win64"),  
[INFO] [stdout] 72 | |                 );
[INFO] [stdout]    | |_________________^ use of inline assembly
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `syscall_rs::get_ssn` is unsafe and requires unsafe block
[INFO] [stdout]   --> examples/demo.rs:84:35
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 let syscall_num = get_ssn("NtProtectVirtualMemory");
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> examples/demo.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 | /             unsafe fn NtProtectVirtualMemory(
[INFO] [stdout] 77 | |                 process_handle: isize,
[INFO] [stdout] 78 | |                 base_address: *mut *mut c_void,
[INFO] [stdout] 79 | |                 region_size: *mut usize,
[INFO] [stdout] 80 | |                 new_protect: u32,
[INFO] [stdout] 81 | |                 old_protect: *mut u32,
[INFO] [stdout] 82 | |             ) -> i32 {
[INFO] [stdout]    | |____________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/demo.rs:86:17
[INFO] [stdout]     |
[INFO] [stdout]  86 | /                 asm!(
[INFO] [stdout]  87 | |                     "sub rsp, 0x28",
[INFO] [stdout]  88 | |                     "mov r10, rcx",
[INFO] [stdout]  89 | |                     "mov [rsp + 0x28], rsi",
[INFO] [stdout] ...   |
[INFO] [stdout] 100 | |                     clobber_abi("win64"),
[INFO] [stdout] 101 | |                 );
[INFO] [stdout]     | |_________________^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `syscall_rs::get_ssn` is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/demo.rs:119:35
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let syscall_num = get_ssn("NtCreateThreadEx");
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/demo.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 | /             unsafe fn NtCreateThreadEx(
[INFO] [stdout] 106 | |                 thread_handle: *mut *mut c_void,
[INFO] [stdout] 107 | |                 desired_access: u32,
[INFO] [stdout] 108 | |                 object_attributes: *mut c_void,
[INFO] [stdout] ...   |
[INFO] [stdout] 116 | |                 attribute_list: *mut c_void,
[INFO] [stdout] 117 | |             ) -> i32 {
[INFO] [stdout]     | |____________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/demo.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 | /                 asm!(
[INFO] [stdout] 121 | |                     "sub rsp, 0x70",
[INFO] [stdout] 122 | |                     "mov r10, rcx",
[INFO] [stdout] 123 | |                     "mov [rsp + 0x28], rsi",
[INFO] [stdout] ...   |
[INFO] [stdout] 147 | |                     clobber_abi("win64"),
[INFO] [stdout] 148 | |                 );
[INFO] [stdout]     | |_________________^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `syscall_rs::get_ssn` is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/demo.rs:159:35
[INFO] [stdout]     |
[INFO] [stdout] 159 |                 let syscall_num = get_ssn("NtFreeVirtualMemory");
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/demo.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 | /             unsafe fn NtFreeVirtualMemory(
[INFO] [stdout] 153 | |                 process_handle: isize,
[INFO] [stdout] 154 | |                 base_address: *mut *mut c_void,
[INFO] [stdout] 155 | |                 region_size: *mut usize,
[INFO] [stdout] 156 | |                 free_type: u32
[INFO] [stdout] 157 | |             ) -> i32 {
[INFO] [stdout]     | |____________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: use of inline assembly is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/demo.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 | /                 asm!(
[INFO] [stdout] 162 | |                     "sub rsp, 0x28",
[INFO] [stdout] 163 | |                     "mov r10, rcx",
[INFO] [stdout] 164 | |                     "mov eax, {syscall_num:e}",
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |                     clobber_abi("win64"),
[INFO] [stdout] 174 | |                 );
[INFO] [stdout]     | |_________________^ use of inline assembly
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: inline assembly is entirely unchecked and can cause undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `NtAllocateVirtualMemory` should have a snake case name
[INFO] [stdout]   --> examples/demo.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |          unsafe fn NtAllocateVirtualMemory(
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `nt_allocate_virtual_memory`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `NtWriteVirtualMemory` should have a snake case name
[INFO] [stdout]   --> examples/demo.rs:47:23
[INFO] [stdout]    |
[INFO] [stdout] 47 |             unsafe fn NtWriteVirtualMemory(
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `nt_write_virtual_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `NtProtectVirtualMemory` should have a snake case name
[INFO] [stdout]   --> examples/demo.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |             unsafe fn NtProtectVirtualMemory(
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `nt_protect_virtual_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `NtCreateThreadEx` should have a snake case name
[INFO] [stdout]    --> examples/demo.rs:105:23
[INFO] [stdout]     |
[INFO] [stdout] 105 |             unsafe fn NtCreateThreadEx(
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `nt_create_thread_ex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `NtFreeVirtualMemory` should have a snake case name
[INFO] [stdout]    --> examples/demo.rs:152:23
[INFO] [stdout]     |
[INFO] [stdout] 152 |             unsafe fn NtFreeVirtualMemory(
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `nt_free_virtual_memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] running `Command { std: "docker" "inspect" "f7a2ee431a3882b9b459af898231af35ac60dcf1e7bb479188de8b2ff4a93d2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7a2ee431a3882b9b459af898231af35ac60dcf1e7bb479188de8b2ff4a93d2a", kill_on_drop: false }`
[INFO] [stdout] f7a2ee431a3882b9b459af898231af35ac60dcf1e7bb479188de8b2ff4a93d2a
