Quiero hacer una extensión de Chrome para el solucionador de hcaptcha. Estoy usando con éxito algunas api para resolver captchas, encontrar data-sitekey
y otros parámetros.
Pero exactamente en el sitio de Hcaptcha hay un bloque que actualmente no puedo eludir.
Anula (con ofuscación) XMLHttpRequest
y, en particular, el método de send
que permite solicitudes solo a algunos dominios, y obviamente necesito enviar la solicitud a un dominio personalizado, por lo que cuando intento hacerlo, arroja una excepción.
mi intento
En extensión, tengo dos archivos: content.js
e inject.js
.
content.js
simplemente inyectando inject.js
antes de que se cargue la página:
function injectScript() { var s = document.createElement('script'); s.setAttribute("charset", "UTF-8"); s.src = chrome.runtime.getURL('inject.js'); s.onload = function() { //this.remove(); }; (document.head || document.documentElement).prepend(s); } injectScript();
En inject.js
hay un interval
que intenta encontrar y analizar los datos de captcha necesarios para resolverlos y, después de analizarlos, enviarlos al servidor de resolución a través de una solicitud de Ajax.
Probé diferentes métodos, agregando al comienzo de inject.js
:
XMLHttpRequest
original - var dihdkn278dm = XMLHttpRequest
y luego no crea XMLHttpRequest
sino el objeto dihdkn278dm
;XMLHttpRequest
original - var dihdkn278dm = new XMLHttpRequest()
y luego, en lugar de crear el objeto de solicitud, utilícelo;send
XMLHttpRequest
(sí, solo native code
). Sin embargo, cuando se trata de llamar a send
el código, ya está sobrescrito.
¿Ideas de cómo evitarlo? ¿Solo inspeccionar código ofuscado?
* fetch
también anulado