Хотелось бы прояснить ситуацию с Chromium GOST и Dr.WEB.
Мы собрали Chromium (77.0.3865.102) из чистых исходников (без наших патчей и даже без КриптоПро CSP), чтобы быть уверенными, что
.
Репорт с подробным описанием обнаруженной под отладчиком проблемы передан разработчикам Dr.WEB.
Не срабатывает Chromium-ный функционал по расстановке патчей в дочернем процессе, список проблемных функций:
- NtSetInformationThread
- NtMapViewOfSection
- NtUnmapViewOfSection
Если данные функции не патчить, далее всё работает без видимых ошибок.
После удаления Dr.WEB ровно в этом же месте всё становится нормально, функции патчатся штатно.
На всякий случай, стек до проверки:
- chrome.exe!sandbox::ServiceResolverThunk::IsFunctionAService(void * local_thunk)
- chrome.exe!sandbox::ServiceResolverThunk::Setup(const void * target_module, const void * interceptor_module, const char * target_name, const char * interceptor_name, const void * interceptor_entry_point, void * thunk_storage, unsigned __int64 storage_bytes, unsigned __int64 * storage_used)
- chrome.exe!sandbox::InterceptionManager::PatchClientFunctions(sandbox::DllInterceptionData * thunks, unsigned __int64 thunk_bytes, sandbox::DllInterceptionData * dll_data)
- chrome.exe!sandbox::InterceptionManager::PatchNtdll(bool hot_patch_needed)
- chrome.exe!sandbox::InterceptionManager::InitializeInterceptions()
- chrome.exe!sandbox::PolicyBase::SetupAllInterceptions(sandbox::TargetProcess * target)
- chrome.exe!sandbox::PolicyBase::AddTarget(sandbox::TargetProcess * target)
- chrome.exe!sandbox::BrokerServicesBase::SpawnTarget(const wchar_t * exe_path, const wchar_t * command_line, scoped_refptr<sandbox::TargetPolicy> policy, sandbox::ResultCode * last_warning, unsigned long * last_error, _PROCESS_INFORMATION * target_info)
- chrome.dll!service_manager::SandboxWin::StartSandboxedProcess(base::CommandLine * cmd_line, const std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char> > & process_type, const std::__1::vector<void *,std::__1::allocator<void *> > & handles_to_inherit, service_manager::SandboxDelegate * delegate, base::Process * process)
Сама проверка в исходниках (если функция определяется как "сервис" она не патчится и приводит к SBOX_ERROR_CANNOT_SETUP_INTERCEPTION_THUNK):
https://cs.chromium.org/...mp;amp;g=0&l=133
Надеемся, что более коллеги не будут высказывать громких слов, не разобравшись в проблеме: