After reading the previous articles from the series Anonymity in Human Emulator Studio:
Managing embedded browser information.
Cookies, cash and more.
The location.
Browser fingerprints.
We have learned how to adjust the level of anonymity we need in the program. And now a completely legitimate question arises, how can we preserve and use all this splendor at the right time.
What is a profile?
Let’s say we have a task to log into some social network under different users with different settings, and at the same time it is necessary that all settings are the same for each login, including such settings as proxies, browser fingerprints, etc.
A profile will help us cope with this task. A profile is a collection of different settings that we can save and load. You can work with profiles in two ways using commands and the profile dialog.
When working in the Isolated browsers mode, in the tabs of each bookmark, you can set your own profile, if the Isolate browsers in Tabs checkbox is not checked in the settings, then one profile applies to all browser bookmarks.
After restarting the program, the profile is reset, so if you need to use the same profile that you used before restarting it, be sure to load it.
Profile dialog.
With the help of the profile dialog, we can see all the settings that are included in the profile, as well as configure them, save or load, set them by default.
The dialog can be opened using the Profile context menu. To do this, we right-click on the browser tab and in the menu that appears, click on the Profile item.
Or for this purpose you can use the button Profile in the top toolbar of the built-in browser of the program.
After that, we will open the Browser Profile dialog at the current setting.
The dialog consists of the following tabs: Description, Cache|Cookies, Proxies, Languages|Accepts, Hardware, Application, Window, Geolocation, Internationalization, Web GL, Audio and Other.
From the name it is not difficult to guess what each tab of this dialog is needed for, but let’s consider each tab separately.
Description.
On this tab, we set the Name and Description of the profile.
Cash|Cookies.
Using this tab, set the path to the folder with Cookies and Cash.
Please note that since version 7.0.37 (2019.08.21) the cache folder is not configured separately, but is stored inside the cookie folder. That is, the command and setting for specifying the path to the cache folder will not work. These changes are related to changes in the work of the Chromium engine.
Proxy.
This tab of the profile dialog is used to configure proxy/socks. Also on this tab there is a button Use TOR. This button sets the proxy setting socks5: //127.0.0.1: 9150 to work through the toro. In this case, the Tor should already be running on your computer.
Languages and Acceptances.
This tab is used to set the language parameters in the navigator and in the HTTP Accept request header. The language can be selected as from the existing one, or register your own, or set a random one by clicking on the dice icon.
Here and elsewhere, the Default value indicates that these values will not be replaced, but those that are by default will be used.
To set the use of default values, you can click the Default button or write this text in the field for the specified value.
Hardware.
Using this tab, we configure the parameters of the hardware used – the screen resolution, and the parameters of the navigator Platform, CPU Class, Hardware Concurrency, Device Memory, as well as the parameters of the touch screen, the parameters navigator.maxTouchPoints and window.ontouchstart, and the parameter devicePixelRatio.
You can read about these options in the article Managing Browser Information.
Application.
On this tab, change the following User Agent string parameters, as well as the navigator Product, Product Sub, App Name, App Code Name, App Minor Version, Vendor, Vendor Sub parameters.
You can read about these options in the article Managing Browser Information.
Window.
Everything is simple here, the first field is the width of the browser window, and the second field is the height of the window built-in browser .
Geolocation.
Setting navigator.geolocation.getCurrentPosition – Latitude, Longitude, Accuracy, Altitude, Altitude Accuracy, Speed ( travel speed), Heading (direction of travel (in radians)).
And also you can set here the Time Zone.
You can read more about these parameters in The location.
Internationalization.
In this tab, the parameters of internalization are set, which can be found in the article The location.
Web GL.
This is the profile dialog tab used for working with Web GL Fingerprint. Read about Web GL Fingerprint in the Browser Fingerprints article. If you set the check box Randomize Web GL Fingerprint, then it enable the substitution of all the parameters listed below. If the check box is not checked, the default values are used, provided that Web GL is not disabled in the settings.
Audio.
From version 7.0.43 added the Audio tab.
This tab distorts the AudioContext Fingerprint. You can find out more about audio prints in our article Browser fingerprints. Values for the Audio Noise field can be from 1 to 999999, Frequence Noise can be from 1 to 99.
Other.
On this tab, we manage the referrer, canvas fingerprint (To Data URL), Bounds noise and plugins information. Read about Canvas Fingerprint and Font Fingerprint in the article Browser Fingerprints, about plugins in the article Managing Browser Information. Since version 7.0.43 the Bounds noise field has appeared. This field is used for working with Font Fingerprint. Its value can be from -1 to 999999999. At -1, distortion is disabled.
After we have set all the necessary profile settings, we save it as a json file using the Save button. In order to use the saved profile, you need to load it using the Load button.
Manage profile settings using commands.
Everything that we set in the dialog can be set using the appropriate commands.
Here’s an php example all the commands used to configure a profile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
// set the path to the cookie folder $browser->set_cookies_folder("test_cookies_folder1"); // Set the torus as a proxy $browser->enable_proxy("all connections", "socks5: //127.0.0.1: 9150"); // language $languges = "ru-RU, ru, en-US, en"; $arr_lang = explode(",", $languges); // Sets the same parameters for navigator language, browserLanguage, systemLanguage, userLanguage // first from the list $browser->set_language($arr_lang [0]); // set the entire list in accepts $browser->set_accept_language($languges); // set mixed acceptances $browser->set_accept_encoding("gzip, deflate, txt"); // set English acceptances $browser->set_accept("text/html, application/xhtml + xml, application/xml; q = 0.1, image/webp, image/apng, */*; q = 0.2"); // Set the resolution to 1024x768 and bitness 24 $browser->set_screen_resolution(1024,768, 24); // Set navigaror.platform and navigator.cpuClass $browser->set_platform("Win64; x64", "x64"); // Set the number of processors to 2 and 4 GB of memory and the resolution ratio to 1 $browser->set_hardware_info(2,4,1); // Set information about the screen sensor // 5 simultaneous touch contacts and enable the transmission of touch events $browser->set_touch_info(5, true); $user_agent_srting = "Mozilla/5.0(Windows NT 6.1; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36"; // set the string to the browser $browser->set_user_agent($user_agent_srting); // set the following parameters appName appCodeName appVersion product productSub vendor vendorSub // vendor and vendorSub can be set since version 7.0.42 $appMinorVersion = trim(str_replace("Mozilla /", "", $user_agent_srting)); $browser->set_app_info("Netscape", "Mozilla", $appMinorVersion, "Gecko", "20030107", "Google Inc.", ""); // resize the browser window // randomly in the range from 300 to 1200 // width $browser->set_width(rand(300,1200)); // height $browser->set_height(rand(300,1200)); // set the coordinates of Berlin $browser->set_geo("51.299300", "9.491000"); // set the timezone of Berlin $browser->set_time_zone(1); // set internalization $browser->set_internazionalization("en-US", "UTC", "gregory", "latn", "numeric", "numeric", "numeric"); // Set to generate a random WebGL fingerprint: $browser->set_random_webgl_fingerprint(true, "123456", "123456789012345678901234567890", "New Unmasked Vendor", "New Unmasked Renderer", "New GL Version", "New Shading Version", "New Vendor", "New Renderer" ); // since version 7.0.43 // set the maximum distortion of the sound print $browser->set_random_audio_fingerprint("999999", "99"); // Set up a referrer $browser->set_referer("https://ya.ru"); // set the noise $browser->set_canvas_toDataURL("231213hsg"); // since version 7.0.43 // Set to generate a random Bounds fingerprint $browser->set_random_bounds_fingerprint(999999999); // Set 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'}] "; // since version 7.0.41 you can set MIME types for plugins $browser->set_plugins_info($plugins, $mimes_types); // save profile $browser->save_profile("active_page_profile.json"); |
In order to use the profile, use the command:
1 2 3 |
// set the given profile $browser->load_profile("active_page_profile.json"); |
Working with profiles is constantly being improved, so you can discuss this article and make your comments or suggestions about profiles on our forum.