Re: VS внедряет шпиона прямо в приложение!
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 11.01.22 18:10
Оценка: 1 (1) +1
Здравствуйте, Kolesiki, Вы писали:

K>Это чё ещё за нахрен?! Получается, не только сама студия беспрестанно лезет стучать на свои сервера, так они и мне в программу шпионов насовали?!


Очень интересно, но если бы это был к примеру дотнет, то я бы мог понять, но не простить.

Однако, Visual Studio прячет в программах сбор телеметрии для Microsoft (2016.06.11)

Новая волна интереса к теме последовала за постом на Reddit. Его автор обратил внимание на то, что в скомпилированных при помощи Visual Studio C++ исполняемых файлах появляется вызов функции telemetry_main_invoke_trigger. В исходниках этой функции нет, а её название позволяет предположить, что она каким-то образом связана со сбором данных телеметрии Microsoft.

И возникает вопрос, а можно ли доверять компиляторам майкрософт, то есть не просто IDE, а Microsoft Compilers.

Стандартная библиотека Visual Studio 2015 и телеметрия

В Visual Studio «настоящая» точка входа в программу называется mainCRTStartup. В комплекте с VS идут исходники стандартной библиотеки, в VS2015 определение mainCRTStartup находится в %PROGRAMFILES(X86)%\VC\crt\src\vcruntime\exe_main.cpp, но, впрочем, всю работу выполняет exe_common.inl рядом. Давайте туда посмотрим.

...
        // If this module has any thread-local destructors, register the
        // callback function with the Unified CRT to run on exit.
        _tls_callback_type const * const tls_dtor_callback = __scrt_get_dyn_tls_dtor_callback();
        if (*tls_dtor_callback != nullptr && __scrt_is_nonwritable_in_current_image(tls_dtor_callback))
        {
            _register_thread_local_exe_atexit_callback(*tls_dtor_callback);
        }

        __telemetry_main_invoke_trigger(nullptr);

        //
        // Initialization is complete; invoke main...
        //

        int const main_result = invoke_main();

        //
        // main has returned; exit somehow...
        //

        __telemetry_main_return_trigger(nullptr);

        if (!__scrt_is_managed_app())
            exit(main_result);

        if (!has_cctor)
            _cexit();

        // Finally, we terminate the CRT:
        __scrt_uninitialize_crt(true, false);
        return main_result;
...

В общем я тут подумал, наверное как пользовался mingw для винды, так и буду пользоваться. Ну или ещё что-нибудь GNU подобное (GNU Compiler Collection — GCC), то есть свободное как GCC.

Что-то гугл вспомнился, гугл наблюдает за тобой, гугл знает о тебе больше, чем ты сам. Яблоко не вспоминаем, там и так всё понятно.
Отредактировано 11.01.2022 18:12 velkin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.