MCPcopy Create free account
hub / github.com/Kudaes/Split / nt_create_user_process

Function nt_create_user_process

dinvoke/src/lib.rs:798–814  ·  view source on GitHub ↗
(process_handle: *mut HANDLE, thread_handle: *mut HANDLE, process_access: u32, thread_access: u32, object_attributes: *mut OBJECT_ATTRIBUTES,
    thread_object_attr: *mut OBJECT_ATTRIBUTES, process_fl

Source from the content-addressed store, hash-verified

796}
797
798pub fn nt_create_user_process(process_handle: *mut HANDLE, thread_handle: *mut HANDLE, process_access: u32, thread_access: u32, object_attributes: *mut OBJECT_ATTRIBUTES,
799 thread_object_attr: *mut OBJECT_ATTRIBUTES, process_flags: u32, thread_flags: u32, parameters: PVOID, create_info: *mut PS_CREATE_INFO, attr_list: *mut PS_ATTRIBUTE_LIST) -> i32 {
800
801 unsafe
802 {
803 let ret;
804 let func_ptr: data::NtCreateUserProcess;
805 let ntdll = get_module_base_address(&lc!("ntdll.dll"));
806 dynamic_invoke!(ntdll,&lc!("NtCreateUserProcess"),func_ptr,ret,process_handle,thread_handle,process_access,thread_access,object_attributes,thread_object_attr,
807 process_flags,thread_flags,parameters,create_info,attr_list);
808
809 match ret {
810 Some(x) => return x,
811 None => return -1,
812 }
813 }
814}
815
816/// Dynamically calls an exported function from the specified module.
817///

Callers 1

forkFunction · 0.85

Calls 1

get_module_base_addressFunction · 0.85

Tested by

no test coverage detected