CheshireCaat / playwright-with-fingerprints

Anonymous automation via playwright with fingerprint replacement technology.
MIT License
139 stars 11 forks source link

[This plugin] 129 is detected on pixelscan.net as automation framework #52

Open dr3adx opened 1 month ago

dr3adx commented 1 month ago

How to reproduce:

1) Use playwright-with-fingerprint (do not use BAS windows application) 2) visit pixelscan.net, it will show flagged as automation framework.

This is is tested on latest playwright-with-fingerprints, chromium 129, engine 27.9.2 This issue appeared since 127

CheshireCaat commented 1 month ago

My code:

require('dotenv/config');
const { plugin } = require('playwright-with-fingerprints');
plugin.setServiceKey(process.env.FINGERPRINT_KEY);

(async () => {
  const fingerprint = await plugin.fetch({
    tags: ['Microsoft Windows', 'Chrome'],
    minBrowserVersion: '128', // the 'current' value works too.
    maxBrowserVersion: '128', // the 'current' value works too.
  });

  plugin.useProxy(process.env.FINGERPRINT_PROXY, {
    ipInfoMethod: 'ip-api.com',
    changeGeolocation: true,
    changeTimezone: true,
  });
  plugin.useFingerprint(fingerprint);

  const browser = await plugin.launch({ headless: false });

  const page = await browser.newPage();
  await page.goto('https://pixelscan.net', { waitUntil: 'commit' });
})();

My result №1 (128 version):

image

My result №2 (129 version):

image

I checked about 10 fingerprints - the maximum problem I encountered was incorrect geolocation, but this can be fixed by using another IP data detection service.

dr3adx commented 1 month ago

@CheshireCaat but what engine version did you use? fingerprint version doesnt matter, u must use engine >= 27.8.1 because issue is not present in previous engine versions

my code is:


const { plugin } = require('playwright-with-fingerprints');
const { BOT_FP_APIKEY } = require('./config/config');
const path = require('path')

plugin.useBrowserVersion('128.0.6613.85')

let main = async () => {
    plugin.setServiceKey(BOT_FP_APIKEY)
    const fingerprint = await plugin.fetch({
        tags: ['Android', 'Chrome'],
        // Fetch fingerprints only with a browser version higher than 125:
        minBrowserVersion: 128,
        // Fetch fingerprints only with a browser version lower than 127:
        maxBrowserVersion: 128,
        // Fetch fingerprints only collected in the last 15 days:
        timeLimit: '7 days',
        maxWidth: 1200,
        maxHeight: 820
    });

    plugin.useProxy('', { changeBrowserLanguage: true, changeGeolocation: true, changeTimezone: true })

    plugin.useFingerprint(fingerprint, {
        // It's disabled by default.
        emulateDeviceScaleFactor: true,
        safeElementSize: true,
        // It's enabled by default.
        safeBattery: true,
        safeCanvas: true,
        safeWebGL: true,
    });

    // Launch the browser instance:
    const browser = await plugin.launch({
        headless: false,
        key: BOT_FP_APIKEY
    });

    // The rest of the code is the same as for a standard `playwright` library:
    const page = await browser.newPage();
    await page.goto('https://pixelscan.net');

    await sleep(10000e3)
}

main()
CheshireCaat commented 1 month ago

@dr3adx i use the latest one, currently it's 27.9.2.

  1. You are using the 127 engine, but you are requesting the 128 version of the browser. This is not critical, but ideally the fingerprint should match the engine version.
  2. The critical thing (for me) in your code is that you are requesting an Android fingerprint, while you have not reported anywhere that the problem is with the emulation of a mobile device.

I'll try to figure out what the problem is. I tested everything on desktop fingerprints - there is no such problem there.

dr3adx commented 1 month ago

@CheshireCaat sorry I had pasted wrong code because I tested so many versions, I edited my reply above. It only happens when using engine >= 128.0.6613.85 (127 and below works) and looks like you're right it only happens on Android fingerprint (I reckon it happened on windows too but ill report back if anything changes), however Adroid fingerprints worked without being flagged in <= 127 versions