Браузер делает запрос на
https://www.google.com/recaptcha/api2/anchor в ответ приходит обратный вызов функции
recaptcha.anchor.Main.init которая содержит 2 параметра закодированные в base64.
Первый из которых, параметры для первой точки входа
https://www.google.com/js/bg/6yg-ggdQgQAg8SAADJkAjc-JMNnOnYuIGgH_iBV7uf8.js, второй дважды закодированные в base64 бинарные данные.
Вся эта кухня, это реализация виртуальной машины на JS со своим байт кодом!
Первая точка входа - функция
M, которая выполняется , когда ReCaptcha загружена, и вторая это
M.prototype.ha - которая отрабатывает когда нажимаем чекбокс и она возвращает инфу для серваков гугла о юзере.
Байт - код зашифрован с использованием
XTEA алгоритма. Каждый блок из 8 байт операции XOR с ключевым потоком (для дешифрования и шифрования функции такие же), где первые 32-разрядное слово открытого текста читается из файла байт-кода, второй 32-битное слово, это позиция в файле байт-кода кратная 8, а точка входа
по умолчанию [0, 0, 0, 0] .
байт - код имеет прямой доступ к переменным JavaScript своего
собственного интерпретатора, и изменяет свой
собственный ключ дешифрования и даже свои
собственные номера опкодов во многих точках.
и т.д.
В сухом остатке- это виртуальная машина изменяющая свое состояние (опкоды) при каждом событии (действии юзера). Все это накрыто обфускатором XTEA.
Чтобы ее ковырять нужен дизассемблер и декомпилятор для байт-кода))