Anti-captcha JS

Just a script

目前为 2019-07-23 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/384000/719138/Anti-captcha%20JS.js

  1. //============================================================================
  2. // Anti-captcha System -submit
  3. //============================================================================
  4. function antiGoogleShits(token){
  5. function bitir(code)
  6. {
  7. var taskSolution=code;
  8. var injectedCode = "(" + function(taskSolution) {
  9. var recaptchaCallbackAlreadyFired = false;
  10. var recursiveCallbackSearch = function(object, solution, currentDepth, maxDepth) {
  11. if (recaptchaCallbackAlreadyFired) {
  12. return
  13. }
  14. var passedProperties = 0;
  15. for (var i in object) {
  16. passedProperties++;
  17. if (passedProperties > 15) {
  18. break
  19. }
  20. try {
  21. if (typeof object[i] == "object" && currentDepth <= maxDepth) {
  22. recursiveCallbackSearch(object[i], solution, currentDepth + 1, maxDepth)
  23. } else if (i == "callback") {
  24. if (typeof object[i] == "function") {
  25. recaptchaCallbackAlreadyFired = true;
  26. object[i](solution)
  27. } else if (typeof object[i] == "string" && typeof window[object[i]] == "function") {
  28. recaptchaCallbackAlreadyFired = true;
  29. window[object[i]](solution)
  30. }
  31. return
  32. }
  33. } catch (e) {}
  34. }
  35. };
  36. if (!recaptchaCallbackAlreadyFired) {
  37. if (typeof ___grecaptcha_cfg != "undefined" && typeof ___grecaptcha_cfg.clients != "undefined") {
  38. var oneVisibleRecaptchaClientKey = null;
  39. visible_recaptcha_element_search_loop: for (var i in ___grecaptcha_cfg.clients) {
  40. for (var j in ___grecaptcha_cfg.clients[i]) {
  41. if (___grecaptcha_cfg.clients[i][j] && typeof ___grecaptcha_cfg.clients[i][j].nodeName == "string" && typeof ___grecaptcha_cfg.clients[i][j].innerHTML == "string" && typeof ___grecaptcha_cfg.clients[i][j].innerHTML.indexOf("iframe") != -1) {
  42. if (___grecaptcha_cfg.clients[i][j].offsetHeight != 0 || ___grecaptcha_cfg.clients[i][j].childNodes.length && ___grecaptcha_cfg.clients[i][j].childNodes[0].offsetHeight != 0 || ___grecaptcha_cfg.clients[i][j].dataset.size == "invisible") {
  43. if (oneVisibleRecaptchaClientKey === null) {
  44. oneVisibleRecaptchaClientKey = i;
  45. break
  46. } else {
  47. oneVisibleRecaptchaClientKey = null;
  48. break visible_recaptcha_element_search_loop
  49. }
  50. }
  51. }
  52. }
  53. }
  54. if (oneVisibleRecaptchaClientKey !== null) {
  55. recursiveCallbackSearch(___grecaptcha_cfg.clients[oneVisibleRecaptchaClientKey], taskSolution, 1, 2)
  56. }
  57. }
  58. }
  59. } + ')("' + taskSolution + '");';
  60. var script = document.createElement("script");
  61. script.textContent = injectedCode;
  62. (document.head || document.documentElement).appendChild(script);
  63. script.remove();
  64. }
  65. //============================================================================
  66. // Anti-captcha System -captcha
  67. //============================================================================
  68. (function(){
  69. // ...
  70. var d = document.getElementById("anticaptcha-imacros-account-key");
  71. if (!d) {
  72. d = document.createElement("div");
  73. d.innerHTML = token;
  74. d.style.display = "none";
  75. d.id = "anticaptcha-imacros-account-key";
  76. document.body.appendChild(d);
  77. }
  78. var s = document.createElement("script");
  79. s.src = "https://cdn.antcpt.com/imacros_inclusion/recaptcha.js?" + Math.random();
  80. document.body.appendChild(s);
  81. // ...
  82. })();
  83. //============================================================================
  84. // Anti-captcha System -error_control
  85. //============================================================================
  86. setInterval(function(){captFixError()},10000);
  87. function captFixError()
  88. {
  89. // If the captcha api get an error, we will try to solve it
  90. //document.getElementsByClassName('antigate_solver in_process');
  91. var keyvalue = document.getElementsByClassName('g-recaptcha-response')[0].value;
  92. if( keyvalue.length >= 10){
  93. bitir(keyvalue);
  94. }
  95. if (document.getElementsByClassName('error').length >= 1)
  96. {
  97. document.getElementsByClassName("disconnectbtn")[0].click();
  98. document.getElementsByClassName("disconnectbtn")[0].click();
  99. window.location.reload();
  100. }
  101. else {
  102. console.log('Captcha Status: Good');
  103. }
  104. }
  105. }