mirror of
https://github.com/es3n1n/defendnot.git
synced 2026-08-02 10:32:01 +00:00
fix(inject): add debug flags to process
This commit is contained in:
@@ -21,14 +21,20 @@ namespace loader {
|
||||
.bInheritHandle = TRUE,
|
||||
};
|
||||
|
||||
/// By setting ReadImageFileExecOptions to FALSE and attaching ourselves as a debugger we can skip the IFEO
|
||||
/// \xref: https://github.com/es3n1n/defendnot/issues/7#issuecomment-2874903650
|
||||
native::get_peb()->read_image_file_exec_options = 0;
|
||||
|
||||
std::println("** booting {}", proc_name);
|
||||
if (!CreateProcessA(nullptr, const_cast<char*>(proc_name.data()), &sa, &sa, FALSE, CREATE_SUSPENDED, nullptr, nullptr, &si, &pi)) {
|
||||
const auto process_flags = CREATE_SUSPENDED | DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS;
|
||||
if (!CreateProcessA(nullptr, const_cast<char*>(proc_name.data()), &sa, &sa, FALSE, process_flags, nullptr, nullptr, &si, &pi)) {
|
||||
throw std::runtime_error(std::format("unable to create process: {}", GetLastError()));
|
||||
}
|
||||
|
||||
/// Detach
|
||||
native::debug_set_process_kill_on_exit(false);
|
||||
native::debug_active_process_stop(pi.dwProcessId);
|
||||
|
||||
defer->void {
|
||||
CloseHandle(pi.hThread);
|
||||
/// Not closing hProcess because we return it
|
||||
|
||||
Reference in New Issue
Block a user