no unable to load error
This commit is contained in:
parent
369b0f3a1c
commit
38a153865f
@ -47,6 +47,8 @@ namespace arxan
|
||||
{
|
||||
*static_cast<ULONG*>(info) = 1;
|
||||
}
|
||||
|
||||
//https://docs.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntqueryinformationprocess
|
||||
}
|
||||
|
||||
return status;
|
||||
@ -113,11 +115,6 @@ namespace arxan
|
||||
}
|
||||
}
|
||||
|
||||
int just_return()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
class component final : public component_interface
|
||||
{
|
||||
public:
|
||||
@ -128,11 +125,6 @@ namespace arxan
|
||||
//return set_thread_context_stub;
|
||||
}
|
||||
|
||||
if (function == "LoadStringA" || function == "LoadStringW")
|
||||
{
|
||||
return just_return;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -145,7 +137,7 @@ namespace arxan
|
||||
nt_close_hook.create(ntdll.get_proc<void*>("NtClose"), nt_close_stub);
|
||||
nt_query_information_process_hook.create(ntdll.get_proc<void*>("NtQueryInformationProcess"),
|
||||
nt_query_information_process_stub);
|
||||
|
||||
// https://www.geoffchappell.com/studies/windows/win32/ntdll/api/index.htm
|
||||
AddVectoredExceptionHandler(1, exception_filter);
|
||||
}
|
||||
|
||||
@ -155,8 +147,12 @@ namespace arxan
|
||||
if (game::environment::is_sp()) return;
|
||||
|
||||
// some of arxan crashes
|
||||
utils::hook::nop(0x14CDEFCAA, 6);
|
||||
utils::hook::call(0x1405BCAD1, &just_return);
|
||||
utils::hook::nop(0xCDEFCAA_b, 6);
|
||||
utils::hook::nop(0x930FCAA_b, 6);
|
||||
utils::hook::nop(0x867B66_b, 4);
|
||||
utils::hook::nop(0x81F0C0_b, 6);
|
||||
utils::hook::nop(0x5813609_b, 6);
|
||||
utils::hook::nop(0x8DD678_b, 0xEB);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -50,6 +50,10 @@ launcher::mode detect_mode_from_arguments()
|
||||
return launcher::mode::none;
|
||||
}
|
||||
|
||||
int returning()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
FARPROC load_binary(const launcher::mode mode, uint64_t* base_address)
|
||||
{
|
||||
@ -75,6 +79,11 @@ FARPROC load_binary(const launcher::mode mode, uint64_t* base_address)
|
||||
return get_proc_address;
|
||||
}
|
||||
|
||||
if (function == "LoadStringA" || function == "LoadStringW")
|
||||
{
|
||||
return returning;
|
||||
}
|
||||
|
||||
return component_loader::load_import(library, function);
|
||||
});
|
||||
|
||||
@ -162,12 +171,12 @@ int main()
|
||||
{
|
||||
auto premature_shutdown = true;
|
||||
const auto _ = gsl::finally([&premature_shutdown]()
|
||||
{
|
||||
if (premature_shutdown)
|
||||
{
|
||||
if (premature_shutdown)
|
||||
{
|
||||
component_loader::pre_destroy();
|
||||
}
|
||||
});
|
||||
component_loader::pre_destroy();
|
||||
}
|
||||
});
|
||||
|
||||
try
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user