Анонимность в Human Emulator Studio. Управление информацией о браузере

Обсуждение статей из нашего блога
Ответить
Аватара пользователя
Support
Site Admin
Сообщения: 825
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Анонимность в Human Emulator Studio. Управление информацией о браузере

Сообщение Support » 30 окт 2019, 22:04

Первая статья из цикла Анонимность в Human Emulator Studio. - Управление информацией о браузере

Аватара пользователя
leo
Сообщения: 49
Зарегистрирован: 11 мар 2018, 21:19

Re: Анонимность в Human Emulator Studio. Управление информацией о браузере

Сообщение leo » 31 окт 2019, 15:31

Про эмуляцию плагинов посмотрите пожалуйста эту тему: viewtopic.php?t=2436

Аватара пользователя
Support
Site Admin
Сообщения: 825
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Анонимность в Human Emulator Studio. Управление информацией о браузере

Сообщение Support » 05 ноя 2019, 01:25

Обновили статью - изменили пример для работы с user-agent

пример создаёт случайным образом идентификатор браузера и задаёт все необходимые параметры в navigator

// user-agent для chrome
// Mozilla/5.0 ([Platform]) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[ChromeVer] Safari/537.36

// данные для генерации случайной строки user-agent
// версии хрома 
// содержимое файла выглядит следующим образом 
/* 78.0.3904.83
78.0.3904.84
78.0.3904.85
78.0.3904.86
78.0.3904.87
78.0.3904.88
78.0.3904.9
78.0.3904.90
*/
// файл должен лежать в папке со скриптом
// скачать его можно в теме на форуме
$arr_chrome_versions = file('chrome_versions.txt');
// операционная система
// 6.1 Windows 7
// 6.2 Windows 8
// 6.3 Windows 8.1
// 10.0 Windows 10
$arr_winOS = array("6.1","6.2","6.3","10.0"); 
// платформа
$arr_pltf= array("Win32","Win64");

// получаем случайным образом версию из файла 
$num = mt_rand(1,count($arr_chrome_versions)-1);
$version=trim($arr_chrome_versions[$num]);
// ось
$num = mt_rand(1,count($arr_winOS)-1);
$winOS=$arr_winOS[$num];
// платформа
$pltf =array_rand($arr_pltf); 
// битность запускаемых приложений 
$pltf_app_bit ="";
// navigator.cpuClass
$cpuClass="";
if($pltf=="Win32")
{
    $pltf_app_bit ="WOW64";
    $cpuClass="x86";
}
else
{
    $pltf_app_bit ="Win64; x64";
    $cpuClass="x64";
}

// соберём случайную строку
echo $user_agent_srting = "Mozilla/5.0 (Windows NT $winOS; $pltf_app_bit) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/$version Safari/537.36";

// задаём строку в браузер
$browser->set_user_agent($user_agent_srting);

// Зададим navigaror.platform и navigator.cpuClass
$browser->set_platform($pltf,$cpuClass);

// необходимо заполнять и доп. свойства навигатора: 
//appVersion, appName, appCodeName, language(s), platform, product, productsub, vendor, vendorSub

// зададим следующие параметы appName appCodeName appVersion product productSub vendor vendorSub
// vendor, vendorSub можно задавать с версии 7.0.42
$appMinorVersion = trim(str_replace("Mozilla/","",$user_agent_srting));
$browser->set_app_info("Netscape", "Mozilla", $appMinorVersion, "Gecko", "20030107","Google Inc.","");  

// язык 
$languges = "ru-RU,ru,en-US,en";
$arr_lang=explode(",",$languges);
// Задает одинаковыми параметры navigator language, browserLanguage, systemLanguage, userLanguage
// первый из списка
$browser->set_language($arr_lang[0]);
// весь список задаём в accepts
$browser->set_accept_language($languges);
chrome_versions.rar
архив с txt файлом
(5.79 КБ) 6 скачиваний
файл положить в папку со скриптом

Хозяин Гугла
Сообщения: 21
Зарегистрирован: 19 июн 2019, 19:59

Re: Анонимность в Human Emulator Studio. Управление информацией о браузере

Сообщение Хозяин Гугла » 05 ноя 2019, 02:46

Еще можно просто один большой файл набивать реальными юзир-агентами из публичных баз и вставлять рандомную строчку юзир-агента в браузир

Код: Выделить всё


$path_data = 'Z:\user_agents.txt';
$user = file($path_data,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$random_user = $user[ array_rand($user) ]; 
unset($user); 

$browser->set_user_agent("$random_user")."<br>";

Аватара пользователя
Support
Site Admin
Сообщения: 825
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Анонимность в Human Emulator Studio. Управление информацией о браузере

Сообщение Support » 05 ноя 2019, 03:06

Хозяин Гугла писал(а):
05 ноя 2019, 02:46
Еще можно просто один большой файл набивать реальными юзир-агентами из публичных баз и вставлять рандомную строчку юзир-агента в браузир

Код: Выделить всё


$path_data = 'Z:\user_agents.txt';
$user = file($path_data,FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$random_user = $user[ array_rand($user) ]; 
unset($user); 

$browser->set_user_agent("$random_user")."<br>";

можно и так делать, но тогда дополнительные параметры для навигатор надо будет разбирать из юзер агент строки. По сути это Platform и ChromeVer Mozilla/5.0 ([Platform]) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/[ChromeVer] Safari/537.36 и уже данные для платформы типа 10.0; Win64; x64 брать из Platform.

Аватара пользователя
Support
Site Admin
Сообщения: 825
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Анонимность в Human Emulator Studio. Управление информацией о браузере

Сообщение Support » 05 ноя 2019, 22:30

Ещё раз обновили статью на этот раз добавили актуальный пример по работе с функцией set_plugins_info. А также дали разъяснения как посмотреть в Хроме информацию о плагинах.

В яндекс.браузере достаточно просто ввести browser://plugins и появится страница со списком всех установленных плагинов. В Google Chrome к сожалению такого нет, там только через Инструменты Разработчика (F12). Также через Инструменты Разработчика можно посмотреть установленные плагины и в Human Emulator Studio, ну или через специализированные сайты, как например browserleaks.com.

пример на php:
// добавим информацию о 3 плагинах
/*
Chromium PDF Plugin
Portable Document Format
Имя:	Chromium PDF Plugin
Описание:	Portable Document Format
Версия:	
Расположение:	internal-pdf-viewer
Тип:	PPAPI (вне процесса)
 	
Типы MIME:	
Тип MIME	Описание	Расширения файлов
application/x-google-chrome-pdf	Portable Document Format	
-------------------------------------
Chromium PDF Viewer
Имя:	Chromium PDF Viewer
Версия:	
Расположение:	chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/
Тип:	Модуль браузера
 	
Типы MIME:	
Тип MIME	Описание	Расширения файлов
application/pdf		
.pdf
-------------------------------------
Adobe Flash Player - Версия: 31.0.0.153
Shockwave Flash 31.0 r0
Имя:	Shockwave Flash
Описание:	Shockwave Flash 31.0 r0 System
Версия:	31.0.0.153
Расположение:	C:\Windows\SysWOW64\Macromed\Flash\pepflashplayer32_31_0_0_153.dll
Тип:	PPAPI (вне процесса)
 	
Типы MIME:	
Тип MIME	Описание	Расширения файлов
application/x-shockwave-flash	Shockwave Flash	
.swf
application/futuresplash	FutureSplash Player	
.spl
*/


// "1. Зададим navigaror.plugins : ";
$plugins="[{ name: 'Chromium PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },    
           { name: 'Chromium PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' },    
           { name: 'Adobe Flash Player', filename: 'pepflashplayer32_31_0_0_153.dll', description: 'Shockwave Flash 31.0 r0 System' , version : '31.0.0.153'}]";

$mimes_types="[{type: 'application/x-google-chrome-pdf', suffixes: 'pdf', description: 'Portable Document Format',enabledPlugin: Plugin, __pluginName: 'Chromium PDF Plugin' },
               {type: 'application/pdf', suffixes: 'pdf', description: '', enabledPlugin: Plugin, __pluginName: 'Chromium PDF Viewer'},
               {type: 'application/x-shockwave-flash',suffixes: 'swf',description: 'Shockwave Flash',__pluginName: 'Adobe Flash Player'},
               {type: 'application/futuresplash',suffixes: 'spl',description: 'FutureSplash Player',__pluginName: 'Adobe Flash Player'}]";

// с версии 7.0.41 можно задавать для плагинов типы MIME
$browser->set_plugins_info($plugins,$mimes_types);

// 2 
// "2. Перейдем на страницу для детектирвоания браузера : ";
$browser->navigate("https://browserleaks.com/javascript");
$h3->set_focus_by_inner_text("Installed Plug-Ins", false);
sleep(5);
$btn->click_by_inner_text("iframe.contentWindow", false);
sleep(5);

Ответить