Как остановить снятие снятия пальцев холста, введя случайность в коде Хрома холста.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как остановить снятие снятия пальцев холста, введя случайность в коде Хрома холста.

Сообщение Anonymous »

Я экспериментирую с предотвращением методов отпечатков пальцев в браузере, специально предназначая метод снятия пальцев холста, используемый такими инструментами, как этот демонстрация снятия пальцев https://drbh.github.io/wasm-fingerprint/. Идея состоит в том, чтобы изменить исходный код Chromium, чтобы внедрить случайность в то, как отображаются изображения Canvas, ожидая, что это даст разные отпечатки пальцев при последующих посещениях. /> third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.ccобразного/> Оригинальная реализация:
:

Код: Выделить всё

ImageData* CanvasRenderingContext2D::getImageDataInternal(
int sx,
int sy,
int sw,
int sh,
ImageDataSettings* image_data_settings,
ExceptionState& exception_state) {
UMA_HISTOGRAM_BOOLEAN(
"Blink.Canvas.GetImageData.WillReadFrequently",
CreationAttributes().will_read_frequently ==
CanvasContextCreationAttributesCore::WillReadFrequently::kTrue);

return BaseRenderingContext2D::getImageDataInternal(
sx, sy, sw, sh, image_data_settings, exception_state);
}
Моя модифицированная реализация (добавлена ​​случайность):
ImageData* CanvasRenderingContext2D::getImageDataInternal(
int sx,
int sy,
int sw,
int sh,
ImageDataSettings* image_data_settings,
ExceptionState& exception_state) {

UMA_HISTOGRAM_BOOLEAN(
"Blink.Canvas.GetImageData.WillReadFrequently",
CreationAttributes().will_read_frequently ==
CanvasContextCreationAttributesCore::WillReadFrequently::kTrue);

auto jitter = []() { return base::RandInt(-5, 5); };

int new_x = std::max(0, sx + jitter());
int new_y = std::max(0, sy + jitter());

int new_w = std::max(1, sw + jitter());
int new_h = std::max(1, sh + jitter());

return BaseRenderingContext2D::getImageDataInternal(
new_x, new_y, new_w, new_h, image_data_settings, exception_state);
}
< /code>
Я ожидал, что каждый вызов произведет слегка рандомизированные данные изображения, что приведет к уникальным отпечаткам пальцев при обновлении этой демонстрации. Однако, даже после изменения кода, переработки хрома и его перезапуска, отпечаток пальца остается последовательным в разных посещениях. Внедрение случайности для достижения моей цели?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... ums-canvas
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»