గ్రాజ్ యూనివర్శిటీ ఆఫ్ టెక్నాలజీ (ఆస్ట్రియా) నుండి పరిశోధకుల బృందం, గతంలో దాడి పద్ధతులను అభివృద్ధి చేయడంలో ప్రసిద్ధి చెందింది
ఈ పారామితులను గుర్తించడానికి, బ్రౌజర్లో పరిశోధకులు తయారుచేసిన జావాస్క్రిప్ట్ కోడ్ను అమలు చేయడం సరిపోతుంది. ఆచరణలో, ఈ పద్ధతిని పరోక్ష వినియోగదారు గుర్తింపు కోసం అదనపు మూలంగా మాత్రమే కాకుండా, OS, ఆర్కిటెక్చర్ మరియు బ్రౌజర్ను పరిగణనలోకి తీసుకొని దోపిడీల లక్ష్య వినియోగం కోసం సిస్టమ్ పర్యావరణ పారామితులను నిర్ణయించడానికి కూడా ఉపయోగించవచ్చు. టోర్ బ్రౌజర్ వంటి దాచిన గుర్తింపు నిరోధించే విధానాలతో బ్రౌజర్లను ఉపయోగిస్తున్నప్పుడు కూడా ఈ పద్ధతి ప్రభావవంతంగా ఉంటుంది. పద్ధతి అమలుతో సోర్స్ కోడ్ ప్రోటోటైప్ కోడ్
JIT, CPU మరియు మెమరీ కేటాయింపు మెకానిజమ్ల లక్షణాలపై ఆధారపడి, JavaScriptలోని వివిధ బ్రౌజర్ల లక్షణం మరియు కార్యకలాపాల అమలు సమయం యొక్క లక్షణాల యొక్క ప్రాపర్టీ స్టేట్ నమూనాల కేటాయింపు ఆధారంగా నిర్ణయం తీసుకోబడుతుంది. JavaScript నుండి అందుబాటులో ఉన్న అన్ని వస్తువుల జాబితాను రూపొందించడం ద్వారా లక్షణాలను నిర్వచించడం జరుగుతుంది. ఇది ముగిసినప్పుడు, వస్తువుల సంఖ్య నేరుగా బ్రౌజర్ ఇంజిన్ మరియు దాని సంస్కరణతో పరస్పర సంబంధం కలిగి ఉంటుంది.
ఫంక్షన్ getProperties(o) {
varresult = [];
అయితే (o !== శూన్యం) {
రిజల్ట్ = రిజల్ట్. కాంకాట్ (రిఫ్లెక్ట్.ఓన్ కీస్(ఓ));
o = Object.getPrototypeOf(o);
}
తిరిగి ఫలితం;
}
ఉదాహరణకు, Firefox కోసం, 2247 ప్రాపర్టీలకు మద్దతు డాక్యుమెంటేషన్లో ప్రకటించబడింది, అయితే నిర్దిష్ట లక్షణాల వాస్తవ సంఖ్య, నమోదుకాని వాటిని పరిగణనలోకి తీసుకుంటే, 15709 (టోర్ బ్రౌజర్లో - 15639), Chrome 2698 లక్షణాలు ప్రకటించబడ్డాయి, అయితే 13570 వాస్తవానికి అందించబడతాయి (Android కోసం Chromeలో - 13119) . ప్రాపర్టీల సంఖ్య మరియు విలువలు బ్రౌజర్ యొక్క వెర్షన్ నుండి వెర్షన్ మరియు వివిధ ఆపరేటింగ్ సిస్టమ్లలో మారుతూ ఉంటాయి.
OS రకాన్ని నిర్ణయించడానికి కొన్ని లక్షణాల విలువలు మరియు ఉనికిని ఉపయోగించవచ్చు. ఉదాహరణకు, కుబుంటులో window.innerWidth ప్రాపర్టీ 1000కి సెట్ చేయబడింది మరియు Windows 10లో 1001కి సెట్ చేయబడింది. Windowsలో, window.navigator.activeVRDisplays ప్రాపర్టీ అందుబాటులో ఉంది, కానీ Linuxలో అది లేదు. Android కోసం అనేక నిర్దిష్ట కాల్లు అందించబడ్డాయి, కానీ విండో లేదు.SharedWorker. ఆపరేటింగ్ సిస్టమ్ను గుర్తించడానికి, WebGL పారామితుల విశ్లేషణను ఉపయోగించడానికి కూడా ప్రతిపాదించబడింది, దీని స్థితి డ్రైవర్లపై ఆధారపడి ఉంటుంది. అదనంగా, WEBGL_debug_renderer_infoextensionకి కాల్ చేయడం వలన మీరు OpenGL రెండరింగ్ ఇంజిన్ గురించి సమాచారాన్ని పొందవచ్చు, ఇది ప్రతి ఆపరేటింగ్ సిస్టమ్కు భిన్నంగా ఉంటుంది.
CPUని నిర్ణయించడానికి, వివిధ సాధారణ కోడ్ బ్లాక్ల అమలు సమయంలో వ్యత్యాసాల అంచనా ఉపయోగించబడుతుంది, దీని ప్రాసెసింగ్ సూచనల సెట్ యొక్క నిర్మాణంపై ఆధారపడి ఉంటుంది, JIT యొక్క ప్రవర్తనను పరిగణనలోకి తీసుకుంటుంది (ఎన్ని CPU రిజిస్టర్ చేయబడుతుందో నిర్ణయించబడుతుంది. ప్రమేయం ఉంటుంది మరియు ఏ సందర్భాలలో JIT ఆప్టిమైజేషన్లతో సమర్థవంతమైన కోడ్ను ఉత్పత్తి చేస్తుంది మరియు పొడిగించిన సూచనలను కలిగి ఉంటుంది మరియు ఎప్పుడు కానప్పుడు ). మెమరీ కేటాయింపు వ్యవస్థ మరియు ఆపరేటింగ్ సిస్టమ్ యొక్క రకాన్ని నిర్ణయించడానికి, వివిధ నిర్మాణాలకు మెమరీ కేటాయింపు సమయంలో వ్యత్యాసం కూడా కొలుస్తారు, ఇది మెమరీ బ్లాక్ల పరిమాణాన్ని నిర్ధారించడానికి ఉపయోగించవచ్చు.
స్క్రిప్ట్ అమలు సమయంలో నిర్ణయించబడిన పారామితులు ముందుగా పరీక్షించిన పరిసరాలకు సంబంధించిన సూచన విలువలతో పోల్చబడతాయి. పరీక్ష సమయంలో, అభివృద్ధి చెందిన సాంకేతికత 40 విభిన్న పరీక్షా వాతావరణాలను ఖచ్చితంగా గుర్తించడం సాధ్యం చేసింది, ఉపయోగించిన బ్రౌజర్ల సంస్కరణలు, CPU తయారీదారు, ఉపయోగించిన ఆపరేటింగ్ సిస్టమ్ మరియు ఇది నిజమైన హార్డ్వేర్లో లేదా వర్చువల్ మెషీన్లో నడుస్తుందో లేదో నిర్ణయిస్తుంది.
విడిగా, బ్రౌజర్ యాడ్-ఆన్లను నిర్వచించే అవకాశం మరియు దాచిన గుర్తింపు పద్ధతులు లేదా ప్రైవేట్ బ్రౌజింగ్ యాక్టివిటీని నిరోధించడానికి రూపొందించిన యాడ్-ఆన్లతో సహా వ్యక్తిగత యాడ్-ఆన్ సెట్టింగ్లు కూడా గుర్తించబడ్డాయి. ప్రతిపాదిత పద్ధతి సందర్భంలో, అటువంటి చేర్పులు గుర్తింపు కోసం డేటా యొక్క మరొక మూలంగా మారతాయి. చేర్పులు ప్రవేశపెట్టిన అసలు పర్యావరణం యొక్క పారామితుల యొక్క వక్రీకరణల అంచనా ద్వారా చేర్పులు నిర్ణయించబడతాయి.
ఇతర గుర్తింపు పద్ధతులలో, అటువంటి పరోక్ష డేటా యొక్క పరిశీలనను గమనించడం సాధ్యమవుతుంది
మూలం: opennet.ru