Anti-captcha JS

Just a script

目前为 2019-08-25 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/384000/728166/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.  
  11. var recursiveCallbackSearch = function(object, solution, currentDepth, maxDepth) {
  12. if (recaptchaCallbackAlreadyFired) {
  13. return
  14. }
  15. var passedProperties = 0;
  16. for (var i in object) {
  17. passedProperties++;
  18. if (passedProperties > 15) {
  19. break
  20. }
  21. try {
  22. if (typeof object[i] == "object" && currentDepth <= maxDepth) {
  23. recursiveCallbackSearch(object[i], solution, currentDepth + 1, maxDepth)
  24. } else if (i == "callback") {
  25. if (typeof object[i] == "function") {
  26. recaptchaCallbackAlreadyFired = true;
  27. object[i](solution)
  28. } else if (typeof object[i] == "string" && typeof window[object[i]] == "function") {
  29. recaptchaCallbackAlreadyFired = true;
  30. window[object[i]](solution)
  31. }
  32. return
  33. }
  34. } catch (e) {}
  35. }
  36. };
  37.  
  38. if (!recaptchaCallbackAlreadyFired) {
  39. if (typeof ___grecaptcha_cfg != "undefined" && typeof ___grecaptcha_cfg.clients != "undefined") {
  40. var oneVisibleRecaptchaClientKey = null;
  41. visible_recaptcha_element_search_loop: for (var i in ___grecaptcha_cfg.clients) {
  42. for (var j in ___grecaptcha_cfg.clients[i]) {
  43. 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) {
  44. 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") {
  45. if (oneVisibleRecaptchaClientKey === null) {
  46. oneVisibleRecaptchaClientKey = i;
  47. break
  48. } else {
  49. oneVisibleRecaptchaClientKey = null;
  50. break visible_recaptcha_element_search_loop
  51. }
  52. }
  53. }
  54. }
  55. }
  56. if (oneVisibleRecaptchaClientKey !== null) {
  57. recursiveCallbackSearch(___grecaptcha_cfg.clients[oneVisibleRecaptchaClientKey], taskSolution, 1, 2)
  58. }
  59. }
  60. }
  61. } + ')("' + taskSolution + '");';
  62. var script = document.createElement("script");
  63. script.textContent = injectedCode;
  64. (document.head || document.documentElement).appendChild(script);
  65. script.remove();
  66. }
  67.  
  68. //============================================================================
  69. // Anti-captcha System -captcha
  70. //============================================================================
  71. (function(){
  72. // ...
  73. var d = document.getElementById("anticaptcha-imacros-account-key");
  74. if (!d) {
  75. d = document.createElement("div");
  76. d.innerHTML = token;
  77. d.style.display = "none";
  78. d.id = "anticaptcha-imacros-account-key";
  79. document.body.appendChild(d);
  80. }
  81.  
  82. var s = document.createElement("script");
  83. s.src = "https://cdn.antcpt.com/imacros_inclusion/recaptcha.js?" + Math.random();
  84. document.body.appendChild(s);
  85. // ...
  86. })();
  87. //============================================================================
  88. // Anti-captcha System -error_control
  89. //============================================================================
  90. setInterval(function(){captFixError()},10000);
  91. function captFixError()
  92. {
  93. // If the captcha api get an error, we will try to solve it
  94. //document.getElementsByClassName('antigate_solver in_process');
  95. try
  96. {
  97. var moneySaver = 1;
  98. var keyvalue = document.getElementsByClassName('g-recaptcha-response')[0].value;
  99. if( keyvalue.length >= 10){
  100. bitir(keyvalue);
  101. console.log('Keycode submited value was: '+ keyvalue.substr(1, 30)+'...');
  102. moneySaver = bot.reach;
  103. console.log("moneySaver: " + moneySaver);
  104. //prevent spend unnecessary money in captchas
  105. if (moneySaver >= 2) {
  106. window.location.href = "http://CAPTCHA-BANNED.com";
  107. }
  108. }
  109. }
  110. catch (e) {
  111. console.log(e);
  112. }
  113. if (document.getElementsByClassName('error').length >= 1)
  114. {
  115. document.getElementsByClassName("disconnectbtn")[0].click();
  116. document.getElementsByClassName("disconnectbtn")[0].click();
  117. window.location.reload();
  118. }
  119. else {
  120. console.log('Captcha Status: Good');
  121. }
  122. }
  123. }