Json.parse fingerprint



  • Есть отпечаток

    немогу никак вытащить подобного вида значения (screen.availHeight) с точкой внутри, помогите
    Остальные значения без проблем выдергиваю.

    [
      {
        "valid": true,
        "payload": "(function(){var refs={};;var aliases={};aliases[\"window.navigator.userAgent\"] = eval(\"window.navigator.userAgent\");aliases[\"window.navigator\"] = eval(\"window.navigator\");aliases[\"window.navigator.language\"] = eval(\"window.navigator.language\");aliases[\"window.navigator.languages\"] = eval(\"window.navigator.languages\");aliases[\"window.navigator.geolocation\"] = eval(\"window.navigator.geolocation\");aliases[\"window.navigator.mediaDevices\"] = eval(\"window.navigator.mediaDevices\");aliases[\"window.navigator.webkitTemporaryStorage\"] = eval(\"window.navigator.webkitTemporaryStorage\");aliases[\"window.navigator.webkitPersistentStorage\"] = eval(\"window.navigator.webkitPersistentStorage\");aliases[\"window.navigator.getBattery\"] = eval(\"window.navigator.getBattery\");aliases[\"window.navigator.sendBeacon\"] = eval(\"window.navigator.sendBeacon\");aliases[\"window.navigator.getGamepads\"] = eval(\"window.navigator.getGamepads\");aliases[\"window.navigator.getUserMedia\"] = eval(\"window.navigator.getUserMedia\");aliases[\"window.navigator.webkitGetUserMedia\"] = eval(\"window.navigator.webkitGetUserMedia\");aliases[\"window.navigator.javaEnabled\"] = eval(\"window.navigator.javaEnabled\");aliases[\"window.navigator.vibrate\"] = eval(\"window.navigator.vibrate\");aliases[\"window.navigator.requestMIDIAccess\"] = eval(\"window.navigator.requestMIDIAccess\");aliases[\"window.navigator.permissions\"] = eval(\"window.navigator.permissions\");aliases[\"window.navigator.presentation\"] = eval(\"window.navigator.presentation\");;\n\n;(function(){var resp = null;Object.defineProperty(window.screen, \"orientation\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = (function(){var res = {};var prot = {};if(res)Object.defineProperty(res,'toString', {configurable: true,enumerable: false, get: function() { return function(){return \"[object ScreenOrientation]\"}}});if(res)Object.defineProperty(res,'valueOf', {configurable: true,enumerable: false, get: function() { return function(){return \"[object ScreenOrientation]\"}}});prot[\"angle\"] = 0;prot[\"type\"] = \"portrait-primary\";prot[\"onchange\"] = null;prot[\"lock\"] = (function(){var res = function(){}; res.toString = function(){return \"function lock() { [native code] }\"}; res.valueOf = function(){return \"function lock() { [native code] }\"}; return res;})();prot[\"unlock\"] = (function(){var res = function(){}; res.toString = function(){return \"function unlock() { [native code] }\"}; res.valueOf = function(){return \"function unlock() { [native code] }\"}; return res;})();prot[\"addEventListener\"] = (function(){var res = function(){}; res.toString = function(){return \"function addEventListener() { [native code] }\"}; res.valueOf = function(){return \"function addEventListener() { [native code] }\"}; return res;})();prot[\"removeEventListener\"] = (function(){var res = function(){}; res.toString = function(){return \"function removeEventListener() { [native code] }\"}; res.valueOf = function(){return \"function removeEventListener() { [native code] }\"}; return res;})();prot[\"dispatchEvent\"] = (function(){var res = function(){}; res.toString = function(){return \"function dispatchEvent() { [native code] }\"}; res.valueOf = function(){return \"function dispatchEvent() { [native code] }\"}; return res;})();Object.setPrototypeOf(res, prot);return res;})();;return resp;}})})();\n\n\n\n;\n\n\n\n;Object.defineProperty(window.navigator, \"registerProtocolHandler\", {configurable: true, enumerable:false, get: function() {return undefined;}});\n\n\n\n;Object.defineProperty(window.navigator, \"unregisterProtocolHandler\", {configurable: true, enumerable:false, get: function() {return undefined;}});\n\n\n\n;Object.defineProperty(window.navigator, \"deviceMemory\", {configurable: true, enumerable:false, get: function() {return undefined;}});\n\n\n\n;\n\n\n\n;Object.defineProperty(window.navigator, \"storage\", {configurable: true, enumerable:false, get: function() {return undefined;}});\n\n\n\n;Object.defineProperty(window.navigator, \"requestMediaKeySystemAccess\", {configurable: true, enumerable:false, get: function() {return undefined;}});\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"maxTouchPoints\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = 5;return resp;}})})();\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"cookieEnabled\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = true;return resp;}})})();\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"onLine\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = true;return resp;}})})();\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"doNotTrack\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = null;return resp;}})})();\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"connection\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = (function(){var res = {};var prot = {};if(res)Object.defineProperty(res,'toString', {configurable: true,enumerable: false, get: function() { return function(){return \"[object NetworkInformation]\"}}});if(res)Object.defineProperty(res,'valueOf', {configurable: true,enumerable: false, get: function() { return function(){return \"[object NetworkInformation]\"}}});prot[\"onchange\"] = null;prot[\"effectiveType\"] = \"4g\";prot[\"rtt\"] = 50;prot[\"downlink\"] = 5.25;prot[\"saveData\"] = true;prot[\"downlinkMax\"] = null;prot[\"type\"] = \"wifi\";prot[\"ontypechange\"] = null;prot[\"addEventListener\"] = (function(){var res = function(){}; res.toString = function(){return \"function addEventListener() { [native code] }\"}; res.valueOf = function(){return \"function addEventListener() { [native code] }\"}; return res;})();prot[\"removeEventListener\"] = (function(){var res = function(){}; res.toString = function(){return \"function removeEventListener() { [native code] }\"}; res.valueOf = function(){return \"function removeEventListener() { [native code] }\"}; return res;})();prot[\"dispatchEvent\"] = (function(){var res = function(){}; res.toString = function(){return \"function dispatchEvent() { [native code] }\"}; res.valueOf = function(){return \"function dispatchEvent() { [native code] }\"}; return res;})();Object.setPrototypeOf(res, prot);return res;})();;return resp;}})})();\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"mediaSession\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = (function(){var res = {};var prot = {};if(res)Object.defineProperty(res,'toString', {configurable: true,enumerable: false, get: function() { return function(){return \"[object MediaSession]\"}}});if(res)Object.defineProperty(res,'valueOf', {configurable: true,enumerable: false, get: function() { return function(){return \"[object MediaSession]\"}}});prot[\"metadata\"] = null;prot[\"playbackState\"] = \"none\";prot[\"setActionHandler\"] = (function(){var res = function(){}; res.toString = function(){return \"function setActionHandler() { [native code] }\"}; res.valueOf = function(){return \"function setActionHandler() { [native code] }\"}; return res;})();Object.setPrototypeOf(res, prot);return res;})();;return resp;}})})();\n\n\n\n;(function(){var resp = null;Object.defineProperty(window.navigator, \"mediaCapabilities\", {configurable: true, enumerable:true, get: function() {if(resp)return resp;resp = (function(){var res = {};var prot = {};if(res)Object.defineProperty(res,'toString', {configurable: true,enumerable: false, get: function() { return function(){return \"[object MediaCapabilities]\"}}});if(res)Object.defineProperty(res,'valueOf', {configurable: true,enumerable: false, get: function() { return function(){return \"[object MediaCapabilities]\"}}});prot[\"decodingInfo\"] = (function(){var res = function(){}; res.toString = function(){return \"function () { [native code] }\"}; res.valueOf = function(){return \"function () { [native code] }\"}; return res;})();Object.setPrototypeOf(res, prot);return res;})();;return resp;}})})();\n\n;(function(){var resp = null;delete window.navigator.plugins;Object.defineProperty(window.navigator, \"plugins\", {configurable: true, enumerable:false, get: function() {if(resp)return resp;resp = (function(){var res = {};var prot = {};if(res)Object.defineProperty(res,'toString', {configurable: true,enumerable: false, get: function() { return function(){return \"[object PluginArray]\"}}});if(res)Object.defineProperty(res,'valueOf', {configurable: true,enumerable: false, get: function() { return function(){return \"[object PluginArray]\"}}});prot[\"length\"] = 0;prot[\"refresh\"] = (function(){var res = function(){}; res.toString = function(){return \"function refresh() {\\n    [native code]\\n}\"}; res.valueOf = function(){return \"function refresh() {\\n    [native code]\\n}\"}; return res;})();prot[\"namedItem\"] = (function(){var res = function(item){var length=window.navigator.plugins.length;for(var i=0;i<length;i++){var p = window.navigator.plugins[i];if(p.name == item)return p}}; res.toString = function(){return \"function namedItem() { [native code] }\"}; res.valueOf = function(){return \"function namedItem() { [native code] }\"}; return res;})();prot[\"item\"] = (function(){var res = function(item){return window.navigator.plugins[item]}; res.toString = function(){return \"function item() { [native code] }\"}; res.valueOf = function(){return \"function item() { [native code] }\"}; return res;})();Object.setPrototypeOf(res, prot);return res;})();;return resp;}})})();;(function(){var resp = null;delete window.navigator.mimeTypes;Object.defineProperty(window.navigator, \"mimeTypes\", {configurable: true, enumerable:false, get: function() {if(resp)return resp;resp = (function(){var res = {};var prot = {};if(res)Object.defineProperty(res,'toString', {configurable: true,enumerable: false, get: function() { return function(){return \"[object MimeTypeArray]\"}}});if(res)Object.defineProperty(res,'valueOf', {configurable: true,enumerable: false, get: function() { return function(){return \"[object MimeTypeArray]\"}}});prot[\"length\"] = 0;prot[\"item\"] = (function(){var res = function(item){return window.navigator.mimeTypes[item]}; res.toString = function(){return \"function item() { [native code] }\"}; res.valueOf = function(){return \"function item() { [native code] }\"}; return res;})();prot[\"namedItem\"] = (function(){var res = function(item){var length=window.navigator.mimeTypes.length;for(var i=0;i<length;i++){var p = window.navigator.mimeTypes[i];if(p.type == item)return p}}; res.toString = function(){return \"function namedItem() { [native code] }\"}; res.valueOf = function(){return \"function namedItem() { [native code] }\"}; return res;})();Object.setPrototypeOf(res, prot);return res;})();;return resp;}})})();;(function(){var resp = null;delete window.navigator.hardwareConcurrency;Object.defineProperty(window.navigator, \"hardwareConcurrency\", {configurable: true, enumerable:false, get: function() {if(resp)return resp;resp = 8;return resp;}})})();})();",
        "ua": "Mozilla/5.0 (Linux; Android 7.1.2; M6 Note) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36",
        "dnt": false,
        "width": 980,
        "height": 1415,
        "canvas": "c0c9bc51d65ca19da765ca8e64211efd2ed02357b4736c538d4b226ade069f27de1f541b5ca17040eb003960d7d1c4bf5689bacc4710dba73dc5574605b73700837b7b807b8280807f81817e7c7d7b7c7d7e7f7e83828280838081817c807d837c837c817f7b7c7c81837c8281838283817c7d",
        "webgl": "8d79f5003dbea4131d53454a8dac640e1063b3d35aefc91003a16260f8fe8d0b39fa37ccf6a5c8ae0e5691a341f15691e8fa63a9a58bcd8bc79f29eb0474ad06837b7b807b8280807f81817e7c7d7b7c7d7e7f7e83828280838081817c807d837c837c817f7b7c7c81837c8281838283817c7d",
        "audio": "ac1d183a58779391301d4f5fcfbd2efebfd1a1c62cfa692ba6922ad880e6ac763f05329ab2c60d5b74b7997166677ecc9785de450befe0a9f8321e8b542ade0e8a796e8491857a7889756f7777906e838e7373868d6e888d728e80716f90938090918a898b79897770736b83709291826d7191818583818a6e7c6e7c938f8e6f8b70806b8a8b8c8f73796c6b8a6b85707b718a8a85778f928781926b7c8c72738c898188",
        "battery": "d188aeb25f81935b03c6dc960dff9e4ef14bc622cd3a010ab6bbe31d2779fd47d52d5f8abf0da08f24ebf2f69d45f41d345d70e3e3adde33034405568f3e4d0d08a060b3391056",
        "has_battery_api": true,
        "has_battery_device": true,
        "webgl_properties": {
          "unmaskedVendor": "Qualcomm",
          "unmaskedRenderer": "Adreno (TM) 506",
          "vendor": "WebKit",
          "renderer": "WebKit WebGL",
          "alphaBits": "8",
          "blueBits": "8",
          "depthBits": "24",
          "greenBits": "8",
          "maxCombinedTextureImageUnits": "96",
          "maxCubeMapTextureSize": "16384",
          "maxFragmentUniformVectors": "256",
          "maxRenderBufferSize": "16384",
          "maxTextureImageUnits": "16",
          "maxTextureSize": "4096",
          "maxVaryingVectors": "31",
          "maxVertexAttribs": "32",
          "maxVertexTextureImageUnits": "16",
          "maxVertexUniformVectors": "256",
          "redBits": "8",
          "stencilBits": "0",
          "extensions": "ANGLE_instanced_arrays,EXT_blend_minmax,EXT_color_buffer_half_float,EXT_texture_filter_anisotropic,WEBKIT_EXT_texture_filter_anisotropic,EXT_sRGB,OES_element_index_uint,OES_standard_derivatives,OES_texture_float,OES_texture_float_linear,OES_texture_half_float,OES_texture_half_float_linear,OES_vertex_array_object,WEBGL_color_buffer_float,WEBGL_compressed_texture_astc,WEBGL_compressed_texture_etc1,WEBGL_debug_renderer_info,WEBGL_debug_shaders,WEBGL_depth_texture,WEBKIT_WEBGL_depth_texture,WEBGL_lose_context,WEBKIT_WEBGL_lose_context",
          "shadingLanguage": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)",
          "version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)",
          "maxAnisotropy": "16"
        },
        "audio_properties": {
          "BaseAudioContextSampleRate": 48000,
          "AudioContextBaseLatency": 0.08008333333333334,
          "AudioDestinationNodeMaxChannelCount": 2
        },
        "fonts": [
          "Arial",
          "Courier",
          "Courier New",
          "Georgia",
          "Helvetica",
          "Monaco",
          "Palatino",
          "Tahoma",
          "Times",
          "Times New Roman",
          "Verdana",
          "Baskerville"
        ],
        "headers": [
          "Host",
          "X-Real-Ip",
          "X-Forwarded-For",
          "Connection",
          "Content-Length",
          "Cache-Control",
          "Accept-Datetime",
          "Origin",
          "X-Csrf-Token",
          "If-Unmodified-Since",
          "If-Range",
          "Authorization",
          "X-Requested-With",
          "If-Modified-Since",
          "Save-Data",
          "X-Http-Method-Override",
          "X-Request-Id",
          "Pragma",
          "Upgrade-Insecure-Requests",
          "User-Agent",
          "Content-Type",
          "Max-Forwards",
          "If-None-Match",
          "If-Match",
          "Range",
          "Accept",
          "Referer",
          "Accept-Encoding",
          "Accept-Language"
        ],
        "lang": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
        "native_code": "function Object() { [native code] }",
        "attr": {
          "navigator.vendorSub": "",
          "navigator.productSub": "20030107",
          "navigator.vendor": "Google Inc.",
          "navigator.appCodeName": "Mozilla",
          "navigator.appName": "Netscape",
          "navigator.appVersion": "5.0 (Linux; Android 7.1.2; M6 Note) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36",
          "navigator.platform": "Linux armv8l",
          "navigator.product": "Gecko",
          "navigator.userAgent": "Mozilla/5.0 (Linux; Android 7.1.2; M6 Note) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36",
          "screen.availHeight": 640,
          "screen.availWidth": 360,
          "screen.width": 360,
          "screen.height": 640,
          "screen.colorDepth": 24,
          "screen.pixelDepth": 24,
          "screen.availLeft": 0,
          "screen.availTop": 0,
          "outerHeight": 640,
          "outerWidth": 360
        }
      }
    ]
    


  • @goldii said in Json.parse fingerprint:

    screen.availHeight

    Надо указывать в кавычках и в квадратных скобках blabla['screen.availHeight']



  • @UserTrue Подскажите, пожалуйста. Куплен ключ Fingerprint, при первой прогрузке профиля создается ФП, затем я его сохраняю в папку профиля в файл, в строку , файл в формате json
    Если этот профиль потом повторно грузится, берется эта строка и в "применить отпечаток". Возникает такая ошибка Requested keys of a value....
    В чем может быть проблема?
    Спасибо



  • @kuzkuz said in Json.parse fingerprint:

    @UserTrue Подскажите, пожалуйста. Куплен ключ Fingerprint, при первой прогрузке профиля создается ФП, затем я его сохраняю в папку профиля в файл, в строку , файл в формате json
    Если этот профиль потом повторно грузится, берется эта строка и в "применить отпечаток". Возникает такая ошибка Requested keys of a value....
    В чем может быть проблема?
    Спасибо

    Отпечаток в профиле сохраняется автоматически



  • @Fox Не нашел в какой файл. Не подскажете?
    А прогружается отпечаток также автоматически при загрузке профиля?
    ps понятно что проверить быстрее, но сейчас не проверить



  • @kuzkuz said in Json.parse fingerprint:

    @Fox Не нашел в какой файл. Не подскажете?
    А прогружается отпечаток также автоматически при загрузке профиля?
    ps понятно что проверить быстрее, но сейчас не проверить

    После успешного применения отпечатка, в папке профиля создаётся файл fingerprint.json, в нём находятся настройки и сам отпечаток.
    При переключении профиля можно указать, брать отпечаток из профиля или нет:
    1c0be5f1-2a8a-4a53-8e67-db9e1fe37f8d-изображение.png



  • @Fox Спасибо. Я просто напутал, сперва фп грузил, потом профиль..



  • @Fox, подскажите, пожалуйста,

    1. в файл fingerprint.json записывается отпечаток. Почему когда я вывожу в лог фингерпринт - значение в файле и логе отличаются?

    Спасибо



  • @kuzkuz said in Json.parse fingerprint:

    @Fox, подскажите, пожалуйста,

    1. в файл fingerprint.json записывается отпечаток. Почему когда я вывожу в лог фингерпринт - значение в файле и логе отличаются?

    Спасибо

    А теперь перечитайте моё сообщение внимательнее, я указал почему отличается



  • @Fox Не понял.
    Я получаю отпечаток (в первый раз для этого профиля), в переменную FINGERPRINT и вывожу его в лог. Тем временем отпечаток записывается в файл fingerprint.json
    Так вот если сравнить данные в файле и данные выводимые в лог - они разные.
    Я не про загрузку из профиля.



  • @kuzkuz, потому что в fingerprint.json сохраняются ещё и указанные вами настройки



  • @kuzkuz said in Json.parse fingerprint:

    @Fox Не понял.
    Я получаю отпечаток, в FINGERPRINT и вывожу его в лог. Тем временем отпечаток записывается в файл fingerprint.json
    Так вот если сравнить данные в файле и данные выводимые в лог - они разные.

    Невнимательно перечитали
    e4d47d1f-632f-47be-9a3d-c6e1d3e96ff6-изображение.png

    В действии "Применить отпечаток" есть настройки:
    f8d16bb7-b1bd-4619-94da-ffadfc9a2067-изображение.png

    они и записываются



  • @GhostZ блин, во я туплю. Простите. Точно, там же ещё настройки браузера. Спасибо



  • This post is deleted!

Log in to reply