-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
emulation leak in service-worker and new-tab #58
Comments
|
@kaliiiiiiiiii It shows that error if |
Oh now I think I got what you mean.
|
Yes,
It's just an thought, if i remove cores, no lies found # https://stackoverflow.com/questions/59367665/spoof-navigator-properties-in-chrome-selenium-webdriver
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'deviceMemory', {
get: () => 99
})
"""
}) |
Yes, this is indeed an option, but abrahamjuliot/creepjs#147 or adtechmadness.wordpress.com/2019/03/23/javascript-tampering-detection-and-stealth might give you a starting point why overwriting isn't that easy |
yes, indeed. The emulation causes some other leaks as well inside worker scopes:
|
creep-js
related to #50 |
Implementation like in puppeteer/puppeteer#3667 (comment) should be possible to fix this issue => working on it :) |
might be possible to implement using something like globalThis.tab_event = {checked_tabs:[],tab_callbacks:undefined}
tab_event.req_callback = async function(details) {
var tab_id = details['tabId']
if(tab_id >= 0){
if(!(tab_event.checked_tabs.includes(tab_id))){
await tab_event.tab_callbacks.forEach( async function (func){
await func(details)
})
tab_event.checked_tabs.push(tab_id)
}
}
return {};
}
tab_event.on_tab_removed = function(tabId) {
var idx= tab_event.checked_tabs.indexOf(tabId);
tab_event.checked_tabs = tab_event.checked_tabs.splice(idx, 1);
}
tab_event.addEventListener = function(callback){
if(!(tab_event.tab_callbacks)){
tab_event.tab_callbacks = [callback]
chrome.webRequest.onBeforeRequest.addListener(
tab_event.req_callback,
{urls: ["<all_urls>"]},
["blocking"]
);
chrome.tabs.onRemoved.addListener(tab_event.on_tab_removed)
}else{tab_event.tab_callbacks.push(callback)}
}
tab_event.removeEventListener = function(listener){
var idx= tab_event.tab_callbacks.indexOf(listener);
tab_event.tab_callbacks = tab_event.tab_callbacks.splice(idx, 1);
}
tab_event.pause = async function(details){
var tab_id = details['tabId']
var target = {"tabId":tab_id}
await chrome.debugger.attach(target,"1.2")
await chrome.debugger.sendCommand(target,"Debugger.enable",{})
chrome.debugger.sendCommand(target,"Debugger.pause",{},
async function(){
await chrome.tabs.executeScript(tab_id,{"code":"debugger"})
await chrome.debugger.detach(target)
}
)
}
tab_event.continue_if_paused = async function(details){
var tab_id = details['tabId']
var target = {"tabId":tab_id}
await chrome.debugger.attach(target,"1.2")
await chrome.debugger.sendCommand(target,"Debugger.enable",{})
await chrome.debugger.sendCommand(target,"Debugger.resume",{})
}
tab_event.addEventListener(console.log)
tab_event.addEventListener(tab_event.pause)
in selenium-injector |
issue: cdp-requests don't get received while network resumed |
Yep, this issue still persists Getting score F+ |
I solved matching the cpu cores of my pc with the cores in the profile.
|
It’s already discussed above. we are looking for a way to bypass without match. because it’s easily fingerprinted. |
Describe the bug
Navigator.hardwareConcurrency: does not match worker scope
To Reproduce
same as documentation
Expected behavior or error-message
ram and core should be probably match, unfortunately it fails to match or spoof both
Environment (please complete the following information):
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: