Last active
June 9, 2020 09:07
-
-
Save tansautn/8ebbcae35944479b54e4d38bd55d21b3 to your computer and use it in GitHub Desktop.
SPYPRO Bot Fake Referer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "zuko/fkr", | |
"type": "project", | |
"require": { | |
"symfony/panther": "^1.0@dev" | |
}, | |
"authors": [ | |
{ | |
"name": "Zuko", | |
"email": "[email protected]" | |
} | |
], | |
"minimum-stability": "dev" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- * | |
* @PROJECT : Magebay Spytool | |
* @AUTHOR : Zuko | |
* @COPYRIGHT : © 2019 Magebay - Magento Ext Provider | |
* @LINK : https://www.magebay.com/ | |
* @FILE : fake-referer.php | |
* @CREATED : 17:03 , 11/May/2019 | |
* --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- * | |
**/ | |
use Symfony\Component\Panther\ProcessManager\ChromeManager; | |
include __DIR__.'/vendor/autoload.php'; | |
//error_reporting( E_ERROR ); | |
date_default_timezone_set('UTC'); | |
/* Config */ | |
$baseUrlApi = 'https://tools.spypro.io/api/'; | |
$gateUrl = 'https://tools.spypro.io/gate?uri='; | |
//$baseUrlApi = 'https://zuko.pro/fapi/api/'; | |
$pageNum = @$argv[1] ?: 1; | |
$day = @$argv[2] ?: 3; | |
if($pageNum === 'reset'){ | |
$incrementValue = -1; | |
echo 'SET INCREMENT = ' . ($incrementValue + 1) . PHP_EOL; | |
file_put_contents('fake-referer-auto-increment.txt',$incrementValue + 1); | |
exit(); | |
} | |
$limitnf = 100; | |
$twoDaysAgo = date('Y-m-d', strtotime('-' . $day . ' days')); | |
$incrementValue = file_get_contents('fake-referer-auto-increment.txt') === '' ? 1 : (int)file_get_contents('fake-referer-auto-increment.txt'); | |
$pageNum += $incrementValue; | |
$url_pages = "{$baseUrlApi}posts?fbads=1&created_at=gt:{$twoDaysAgo}&limit={$limitnf}&page={$pageNum}"; | |
//$url_pages = $baseUrlApi . 'posts?id=1870224'; | |
echo $url_pages . PHP_EOL; | |
$postData = file_get_contents($url_pages); | |
$postData = json_decode($postData,true); | |
if(count($postData['data'])) { | |
$incrementValue = file_get_contents('fake-referer-auto-increment.txt') === '' ? 1 : (int)file_get_contents('fake-referer-auto-increment.txt'); | |
echo 'SET INCREMENT = ' . ($incrementValue + 1) . PHP_EOL; | |
file_put_contents('fake-referer-auto-increment.txt',$incrementValue + 1); | |
$postData = $postData['data']; | |
$spentTime = microtime(true); | |
$iCount = 0; | |
$cOptions = []; | |
foreach ($postData as $item) { | |
if($item['status'] == 1 || $item['status'] == 2){ | |
/* $url = $item['org_url_post']; | |
echo $url . PHP_EOL;*/ | |
echo $item['post_website'] . PHP_EOL; | |
echo $item['org_url_post'] . PHP_EOL; | |
echo $item['id'] . PHP_EOL; | |
$url = $item['post_website']; | |
$isBitly = false; | |
if($url && $url !== '' && $url !== 'NoURL'){ | |
try { | |
init: | |
echo 'Fake REFERER & Accessing : ' . $url . PHP_EOL; | |
$client = \Symfony\Component\Panther\Client::createChromeClient(null, null, $cOptions); | |
getData: | |
$beforeStart = microtime(true); | |
$execTime = null; | |
try{ | |
$crawler = $client->request('GET', $gateUrl . urlencode($url)); | |
$result = $client->getInternalResponse(); | |
}catch (\Exception $e){ | |
if($e instanceof \RuntimeException && strpos($e->getMessage(),'The port') !== false){ | |
$port = str_between($e->getMessage(),'The port','is already in use'); | |
++$port; | |
if($client instanceof ChromeManager){ | |
$client->quit(); | |
} | |
$cOptions = ['port' => $port]; | |
$client = \Symfony\Component\Panther\Client::createChromeClient(null,null,$cOptions); | |
echo $e->getMessage().PHP_EOL; | |
goto getData; | |
}elseif(strpos($e->getMessage(),'Operation timed out after') !== false){ | |
echo 'Timeout , continue next loop'. PHP_EOL; | |
}elseif(strpos($e->getMessage(),'session deleted') !== false){ | |
echo 'session crash , continue next loop'. PHP_EOL; | |
}else{ | |
echo get_class($e) . PHP_EOL; | |
} | |
if($client instanceof ChromeManager){ | |
$client->quit(); | |
} | |
continue; | |
} | |
$execTime = microtime(true) - $beforeStart; | |
if($result){ | |
$iCount++; | |
echo sprintf('OK - HTTP CODE : %s - Content : %s%s', $result->getStatusCode(), $result->getHeader('content_type'), PHP_EOL); | |
echo sprintf('Total Time : %s%s%s', $execTime, PHP_EOL, PHP_EOL); | |
} | |
$client->quit(); | |
if($isBitly){ | |
continue; | |
} | |
} | |
catch (\Exception $e) { | |
continue; | |
} | |
} | |
if(strpos($item['org_url_post'],'bit.ly') !== false) { | |
$url = $item['org_url_post']; | |
$isBitly = true; | |
goto init; | |
} | |
} | |
} | |
$spentTime = microtime(true) - $spentTime; | |
echo PHP_EOL; | |
echo '------- REPORT -------' . PHP_EOL; | |
echo 'Accessed : ' . $iCount . ' urls' . PHP_EOL; | |
echo 'Spent : ' . $spentTime . ' secs' . PHP_EOL; | |
} | |
function str_between($haystack,$before,$after){ | |
$str = explode($before,$haystack)[1]; | |
$str = explode($after,$str)[0]; | |
return trim($str); | |
} | |
function curlGetData($url,$returnInfo = false){ | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'); | |
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); | |
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); | |
curl_setopt($ch, CURLOPT_REFERER, 'https://tools.spypro.io'); | |
curl_setopt($ch, CURLOPT_URL, $url); | |
$_body = curl_exec($ch); | |
$_info = curl_getinfo($ch); | |
/* if($_info['total_time'] < 1){ | |
$fileName = preg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $url); | |
$fileName = preg_replace("([\.]{2,})", '', $fileName) . '.html'; | |
file_put_contents('debug-logs/' . $fileName,$_body); | |
echo 'Debug html : https://zuko.pro/fapi/debug-logs/' . $fileName . PHP_EOL; | |
}*/ | |
// $_error = curl_error($ch); | |
$lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); | |
$_info['EFFECTIVE_URL'] = $lastUrl; | |
curl_close($ch); | |
return $returnInfo ? $_info : $_body; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-16"?> | |
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> | |
<RegistrationInfo> | |
<Date>2019-07-25T08:38:19.9686963</Date> | |
<Author>ZUKO-WORKPC\Zuko</Author> | |
<URI>\Zuko\php fake-referer</URI> | |
</RegistrationInfo> | |
<Triggers> | |
<LogonTrigger> | |
<Repetition> | |
<Interval>PT15M</Interval> | |
<StopAtDurationEnd>false</StopAtDurationEnd> | |
</Repetition> | |
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit> | |
<Enabled>true</Enabled> | |
<Delay>PT10M</Delay> | |
</LogonTrigger> | |
</Triggers> | |
<Principals> | |
<Principal id="Author"> | |
<UserId>S-1-5-21-3742515154-3125140647-4188878469-1001</UserId> | |
<LogonType>InteractiveToken</LogonType> | |
<RunLevel>LeastPrivilege</RunLevel> | |
</Principal> | |
</Principals> | |
<Settings> | |
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> | |
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> | |
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> | |
<AllowHardTerminate>true</AllowHardTerminate> | |
<StartWhenAvailable>false</StartWhenAvailable> | |
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> | |
<IdleSettings> | |
<StopOnIdleEnd>true</StopOnIdleEnd> | |
<RestartOnIdle>false</RestartOnIdle> | |
</IdleSettings> | |
<AllowStartOnDemand>true</AllowStartOnDemand> | |
<Enabled>false</Enabled> | |
<Hidden>false</Hidden> | |
<RunOnlyIfIdle>false</RunOnlyIfIdle> | |
<WakeToRun>false</WakeToRun> | |
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit> | |
<Priority>7</Priority> | |
</Settings> | |
<Actions Context="Author"> | |
<Exec> | |
<Command>E:\Github\spytools\fkr\run.bat</Command> | |
<WorkingDirectory>E:\Github\spytools\fkr\</WorkingDirectory> | |
</Exec> | |
</Actions> | |
</Task> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-16"?> | |
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> | |
<RegistrationInfo> | |
<Date>2019-07-29T13:43:50.546999</Date> | |
<Author>ZUKO-WORKPC\Zuko</Author> | |
<URI>\Zuko\reset increment</URI> | |
</RegistrationInfo> | |
<Triggers> | |
<CalendarTrigger> | |
<StartBoundary>2019-07-29T14:00:00</StartBoundary> | |
<Enabled>true</Enabled> | |
<ScheduleByDay> | |
<DaysInterval>1</DaysInterval> | |
</ScheduleByDay> | |
</CalendarTrigger> | |
</Triggers> | |
<Principals> | |
<Principal id="Author"> | |
<UserId>S-1-5-21-3742515154-3125140647-4188878469-1001</UserId> | |
<LogonType>InteractiveToken</LogonType> | |
<RunLevel>LeastPrivilege</RunLevel> | |
</Principal> | |
</Principals> | |
<Settings> | |
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> | |
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> | |
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> | |
<AllowHardTerminate>true</AllowHardTerminate> | |
<StartWhenAvailable>true</StartWhenAvailable> | |
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> | |
<IdleSettings> | |
<StopOnIdleEnd>true</StopOnIdleEnd> | |
<RestartOnIdle>false</RestartOnIdle> | |
</IdleSettings> | |
<AllowStartOnDemand>true</AllowStartOnDemand> | |
<Enabled>false</Enabled> | |
<Hidden>false</Hidden> | |
<RunOnlyIfIdle>false</RunOnlyIfIdle> | |
<WakeToRun>false</WakeToRun> | |
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit> | |
<Priority>7</Priority> | |
</Settings> | |
<Actions Context="Author"> | |
<Exec> | |
<Command>php</Command> | |
<Arguments>fake-referer.php reset</Arguments> | |
<WorkingDirectory>E:\Github\spytools\fkr</WorkingDirectory> | |
</Exec> | |
</Actions> | |
</Task> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@ECHO OFF | |
start /B php.exe fake-referer.php 1 5 >> logfile1.txt | |
start /B php.exe fake-referer.php 2 5 >> logfile2.txt | |
start /B php.exe fake-referer.php 3 5 >> logfile3.txt | |
start /B php.exe fake-referer.php 4 5 >> logfile4.txt | |
start /B php.exe fake-referer.php 5 5 >> logfile5.txt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment