Я бы предположил, что они поддерживают белый список, а не черный список, поэтому ваши модификации сборок все еще не вызывали загрузку dll.
Редактировать: Из вашего комментария это на самом деле не так! Похоже, они ведут черный список и делают некоторые тайный вызов NtMapViewOfSection для предотвращения загрузки dll (за что я благодарен, что мне никогда не приходилось использовать Windows API):
#if defined(_WIN64)
// Interception of NtMapViewOfSection within the current process.
// It should never be called directly. This function provides the means to
// detect dlls being loaded, so we can patch them if needed.
SANDBOX_INTERCEPT NTSTATUS WINAPI BlNtMapViewOfSection64(
HANDLE section, HANDLE process, PVOID *base, ULONG_PTR zero_bits,
SIZE_T commit_size, PLARGE_INTEGER offset, PSIZE_T view_size,
SECTION_INHERIT inherit, ULONG allocation_type, ULONG protect);
#endif
// Replace the default NtMapViewOfSection with our patched version.
#if defined(_WIN64)
NTSTATUS ret = thunk->Setup(::GetModuleHandle(sandbox::kNtdllName),
reinterpret_cast(&__ImageBase),
"NtMapViewOfSection",
NULL,
&blacklist::BlNtMapViewOfSection64,
thunk_storage,
sizeof(sandbox::ThunkData),
NULL);
Помимо подхода Chromium, существует также ряд сторонних приложений, которые усложняют загрузку динамических библиотек, например. Arxan GuardIT.
Сборки .Net также могут быть сильно подписанными с закрытым ключом, то приложение будет загружать только dll, подписанные этим ключом.
person
RJFalconer
schedule
06.04.2016