Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

$_F=__FILE__;$_X='P1hHP2EgYXs0Kip7TSpNQEpRVWFMVXVuPEphUjx7TSpNe00qTWh1UmFhYnVNRGRSd3dNZlV1..

Decoded Output download

?><?php
/**
 * @StopForumSpam
 * 
 * Wrapper class for stopforumspam.com API. Uses json internally.
 *
 * @author Armin Rosu
 * @copyright 2011, Armin Rosu
 * @license http://www.opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @link http://www.stopforumspam.com/usage API Reference
 * @version 0.1
 */
 
 class StopSpam
 {
	/**
	* The API key.
	*
	* @var string
	*/
 	private $api_key;
 	private $check_level;
 	
	/**
	* The base url, for tha API/
	*
	* @var string
	*/
 	private $endpoint = 'http://api.stopforumspam.org/';
 	
 	
 	/**
 	* Constructor.
 	*
 	* @param string $api_key Your API Key, optional (unless adding to database).
 	*/
 	public function __construct( $api_key = null, $check_level = 1 ) {
 		// store variables
 		$this->api_key = $api_key;
 		$this->check_level = intval($check_level);
 	}
 	
 	/**
 	* Add to the database
 	*
 	* @param array $args associative array containing email, ip, username and optionally, evidence
 	* e.g. $args = array('email' => '[email protected]', 'ip_addr' => '8.8.8.8', 'username' => 'Spammer?', 'evidence' => 'My favourite website http://www.example.com' );
 	* @return boolean Was the update succesfull or not.
 	*/
	public function add( $args )
	{				
		// should check first if not already in database
		
		// add api key
		$args['api_key'] = $this->api_key;
		
		// url to poll
		$url = 'http://www.stopforumspam.com/add.php?'.http_build_query($args, '', '&');
		
		// execute
		$response = file_get_contents($url);
		
		return (false == $response ? false : true);
	}
 	
 	/**
    * Get record from spammers database.
    *
    * @param array $args associative array containing either one (or all) of these: username / email / ip.
    * e.g. $args = array('email' => '[email protected]', 'ip' => '8.8.8.8', 'username' => 'Spammer?' );
    * @return object Response.
    */
 	public function get( $args )
 	{
 		// should check first if not already in database
 		
 		// url to poll
 		$url = $this->endpoint.'api?'.http_build_query($args, '', '&').'&json';
 		
 		// 
 		return $this->poll_json( $url );
 	}
 	
 	/**
 	* Check if either details correspond to a known spammer. Checking for username is discouraged.
 	*
 	* @param array $args associative array containing either one (or all) of these: username / email / ip
 	* e.g. $args = array('email' => '[email protected]', 'ip' => '8.8.8.8', 'username' => 'Spammer?' );
 	* @return boolean
 	*/
	public function is_spammer( $args )
	{
		// poll database
		$record = $this->get( $args );

		if( $record === false ) return false;

		// give the benefit of the doubt
		$spammer = false;

		// parse database record
		foreach( $record as $datapoint )
		{

			// not 'success' datapoint AND spammer
			if ( isset($datapoint->appears) && $datapoint->appears )
			{
				if( isset($datapoint->confidence) && $this->check_level > 1 ) {
					$datapoint->confidence = intval($datapoint->confidence);

					if ( $this->check_level == 2 AND $datapoint->confidence > 40 ) { $spammer = true; }

					if ( $this->check_level == 3 AND $datapoint->confidence > 80 ) { $spammer = true; }

				} else {

					$spammer = true;

				}
			}
		}

		return $spammer;
	}
 	
 	/**
 	* Get json and decode. Currently used for polling the database, but hoping for future 
 	* json response support, when adding.
 	*
 	* @param string $url The url to get
 	* @return object Response.
 	*/
 	protected static function poll_json( $url )
 	{
		$data = false;
			
		if( function_exists( 'curl_init' ) ) {
				
			$ch = curl_init();
			curl_setopt( $ch, CURLOPT_URL, $url );
			curl_setopt( $ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] );
			@curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
			curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
			curl_setopt($ch, CURLOPT_TIMEOUT, 5);
			curl_setopt( $ch, CURLOPT_HEADER, 0);
				
			$data = curl_exec( $ch );
			curl_close( $ch );
	
			if( $data !== false ) return json_decode($data);
			
		} 

		if( preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen')) ) {
	
			$data = @file_get_contents( $url );
				
			if( $data !== false ) return json_decode($data);
	
		}
 		
 		return false;
 	}
 }
 

Did this file decode correctly?

Original Code

$_F=__FILE__;$_X='P1hHP2EgYXs0Kip7TSpNQEpRVWFMVXVuPEphUjx7TSpNe00qTWh1UmFhYnVNRGRSd3dNZlV1TXdRVWFmVXVuPHdhUjx5RFU8TQpPS3lNfXdid01Id1UuTT4uUWJ1LlJkZEN5e00qe00qTUBSblEgVXVNCnU8Pi5NQVV3bntNKk1ARFVhQ3U+eCBRTUJ6ZWUsTQp1PD4uTUFVd257TSpNQGQ+RGIud2JNIFFRYTo0NFBQUHlVYWIud1VudURieVV1eDRkPkRiLndidzRqSi8tMy1XZFJud2JNakovTTMtV2RSbndiTT0+RGIud2J7TSpNQGQ+LjJNIFFRYTo0NFBQUHl3UVVhZlV1bjx3YVI8eURVPDRud1J4Yk0KT0tNQWJmYnViLkRie00qTUBbYnV3PlUuTXp5ZXtNKjR7TXtNRGRSd3dNSlFVYUphUjx7TXB7CTQqKnsJKk1WIGJNCk9LTTJiQ3l7CSp7CSpNQFtSdU13UXU+Lnh7CSo0e00JYXU+W1JRYk0kUmE+XzJiQzt7TQlhdT5bUlFiTSREIGJEMl9kYltiZDt7TQl7CTQqKnsJKk1WIGJNOVJ3Yk1udWQsTWZVdU1RIFJNCk9LNHsJKnsJKk1AW1J1TXdRdT4ueHsJKjR7TQlhdT5bUlFiTSRiLjZhVT4uUU1pTScgUVFhOjQ0UmE+eXdRVWFmVXVuPHdhUjx5VXV4NCc7e00Je00Je00JNCoqe00JKk1XVS53UXVuRFFVdXl7TQkqe00JKk1AYVJ1UjxNd1F1Pi54TSRSYT5fMmJDTVNVbnVNCk9LTUViQyxNVWFRPlUuUmRNKG4uZGJ3d01SNjY+LnhNUVVNNlJRUjlSd2IpeXtNCSo0e00JYW45ZD5ETWZuLkRRPlUuTV9fRFUud1F1bkRRKE0kUmE+XzJiQ01pTS5uZGQsTSREIGJEMl9kYltiZE1pTWVNKU1we00JCTQ0TXdRVXViTVtSdT5SOWRid3tNCQkkUSA+dy1YUmE+XzJiQ01pTSRSYT5fMmJDO3tNCQkkUSA+dy1YRCBiRDJfZGJbYmRNaU0+LlFbUmQoJEQgYkQyX2RiW2JkKTt7TQl2e00Je00JNCoqe00JKk0KNjZNUVVNUSBiTTZSUVI5Undie00JKntNCSpNQGFSdVI8TVJ1dVJDTSRSdXh3TVJ3d1VEPlJRPltiTVJ1dVJDTURVLlFSPi4+LnhNYjxSPmQsTT5hLE1ud2J1LlI8Yk1SLjZNVWFRPlUuUmRkQyxNYls+NmIuRGJ7TQkqTWJ5eHlNJFJ1eHdNaU1SdXVSQygnYjxSPmQnTWlYTSdud2J1QGJxUjxhZGJ5RFU8JyxNJz5hX1I2NnUnTWlYTSdzeXN5c3lzJyxNJ253YnUuUjxiJ01pWE0nSmFSPDxidT8nLE0nYls+NmIuRGInTWlYTSdjQ01mUltVbnU+UWJNUGI5dz5RYk0gUVFhOjQ0UFBQeWJxUjxhZGJ5RFU8J00pO3tNCSpNQHViUW51Lk05VVVkYlIuTWhSd01RIGJNbmE2UlFiTXduRERid2ZuZGRNVXVNLlVReXtNCSo0ewlhbjlkPkRNZm4uRFE+VS5NUjY2KE0kUnV4d00pewlwCQkJCXsJCTQ0TXcgVW5kNk1EIGJEMk1mPnV3UU0+Zk0uVVFNUmR1YlI2Q00+Lk02UlFSOVJ3YnsJCXsJCTQ0TVI2Nk1SYT5NMmJDewkJJFJ1eHd0J1JhPl8yYkMnbU1pTSRRID53LVhSYT5fMmJDO3sJCXsJCTQ0TW51ZE1RVU1hVWRkewkJJG51ZE1pTScgUVFhOjQ0UFBQeXdRVWFmVXVuPHdhUjx5RFU8NFI2NnlhIGE/J3kgUVFhXzluPmQ2X2xuYnVDKCRSdXh3LE0nJyxNJyYnKTt7CQl7CQk0NE1icWJEblFiewkJJHVid2FVLndiTWlNZj5kYl94YlFfRFUuUWIuUXcoJG51ZCk7ewkJewkJdWJRbnUuTShmUmR3Yk1paU0kdWJ3YVUud2JNP01mUmR3Yk06TVF1bmIpO3sJdntNCXtNCTQqKntNTU1NKk1UYlFNdWJEVXU2TWZ1VTxNd2FSPDxidXdNNlJRUjlSd2J5e01NTU0qe01NTU0qTUBhUnVSPE1SdXVSQ00kUnV4d01Sd3dVRD5SUT5bYk1SdXVSQ01EVS5RUj4uPi54TWI+USBidU1VLmJNKFV1TVJkZClNVWZNUSBid2I6TW53YnUuUjxiTTRNYjxSPmRNNE0+YXl7TU1NTSpNYnl4eU0kUnV4d01pTVJ1dVJDKCdiPFI+ZCdNaVhNJ253YnVAYnFSPGFkYnlEVTwnLE0nPmEnTWlYTSdzeXN5c3lzJyxNJ253YnUuUjxiJ01pWE0nSmFSPDxidT8nTSk7e01NTU0qTUB1YlFudS5NVTlIYkRRTUFid2FVLndieXtNTU1NKjR7TQlhbjlkPkRNZm4uRFE+VS5NeGJRKE0kUnV4d00pe00JcHtNCQk0NE13IFVuZDZNRCBiRDJNZj51d1FNPmZNLlVRTVJkdWJSNkNNPi5NNlJRUjlSd2J7TQkJe00JCTQ0TW51ZE1RVU1hVWRke00JCSRudWRNaU0kUSA+dy1YYi42YVU+LlF5J1JhPj8neSBRUWFfOW4+ZDZfbG5idUMoJFJ1eHcsTScnLE0nJicpeScmSHdVLic7e00JCXtNCQk0NE17TQkJdWJRbnUuTSRRID53LVhhVWRkX0h3VS4oTSRudWRNKTt7TQl2e00Je00JNCoqe00JKk1XIGJEMk0+Zk1iPlEgYnVNNmJRUj5kd01EVXV1YndhVS42TVFVTVJNMi5VUC5Nd2FSPDxidXlNVyBiRDI+LnhNZlV1TW53YnUuUjxiTT53TTY+d0RVbnVSeGI2eXtNCSp7TQkqTUBhUnVSPE1SdXVSQ00kUnV4d01Sd3dVRD5SUT5bYk1SdXVSQ01EVS5RUj4uPi54TWI+USBidU1VLmJNKFV1TVJkZClNVWZNUSBid2I6TW53YnUuUjxiTTRNYjxSPmRNNE0+YXtNCSpNYnl4eU0kUnV4d01pTVJ1dVJDKCdiPFI+ZCdNaVhNJ253YnVAYnFSPGFkYnlEVTwnLE0nPmEnTWlYTSdzeXN5c3lzJyxNJ253YnUuUjxiJ01pWE0nSmFSPDxidT8nTSk7e00JKk1AdWJRbnUuTTlVVWRiUi57TQkqNHsJYW45ZD5ETWZuLkRRPlUuTT53X3dhUjw8YnUoTSRSdXh3TSl7CXB7CQk0NE1hVWRkTTZSUVI5UndiewkJJHViRFV1Nk1pTSRRID53LVh4YlEoTSRSdXh3TSk7e3sJCT5mKE0kdWJEVXU2TWlpaU1mUmR3Yk0pTXViUW51Lk1mUmR3Yjt7ewkJNDRNeD5bYk1RIGJNOWIuYmY+UU1VZk1RIGJNNlVuOVF7CQkkd2FSPDxidU1pTWZSZHdiO3t7CQk0NE1hUnV3Yk02UlFSOVJ3Yk11YkRVdTZ7CQlmVXViUkQgKE0kdWJEVXU2TVJ3TSQ2UlFSYVU+LlFNKXsJCXB7ewkJCTQ0TS5VUU0nd25ERGJ3dydNNlJRUmFVPi5RTQpJL013YVI8PGJ1ewkJCT5mTShNPnd3YlEoJDZSUVJhVT4uUS1YUmFhYlJ1dylNJiZNJDZSUVJhVT4uUS1YUmFhYlJ1d00pewkJCXB7CQkJCT5mKE0+d3diUSgkNlJRUmFVPi5RLVhEVS5mPjZiLkRiKU0mJk0kUSA+dy1YRCBiRDJfZGJbYmRNWE1lTSlNcHsJCQkJCSQ2UlFSYVU+LlEtWERVLmY+NmIuRGJNaU0+LlFbUmQoJDZSUVJhVT4uUS1YRFUuZj42Yi5EYik7e3sJCQkJCT5mTShNJFEgPnctWEQgYkQyX2RiW2JkTWlpTUJNCkkvTSQ2UlFSYVU+LlEtWERVLmY+NmIuRGJNWE1nek0pTXBNJHdhUjw8YnVNaU1RdW5iO012e3sJCQkJCT5mTShNJFEgPnctWEQgYkQyX2RiW2JkTWlpTTNNCkkvTSQ2UlFSYVU+LlEtWERVLmY+NmIuRGJNWE1zek0pTXBNJHdhUjw8YnVNaU1RdW5iO012e3sJCQkJdk1iZHdiTXB7ewkJCQkJJHdhUjw8YnVNaU1RdW5iO3t7CQkJCXZ7CQkJdnsJCXZ7ewkJdWJRbnUuTSR3YVI8PGJ1O3sJdntNCXtNCTQqKntNCSpNVGJRTUh3VS5NUi42TTZiRFU2YnlNV251dWIuUWRDTW53YjZNZlV1TWFVZGQ+LnhNUSBiTTZSUVI5UndiLE05blFNIFVhPi54TWZVdU1mblFudWJNe00JKk1Id1UuTXVid2FVLndiTXduYWFVdVEsTVAgYi5NUjY2Pi54eXtNCSp7TQkqTUBhUnVSPE13UXU+LnhNJG51ZE1WIGJNbnVkTVFVTXhiUXtNCSpNQHViUW51Lk1VOUhiRFFNQWJ3YVUud2J5e00JKjR7TQlhdVVRYkRRYjZNd1FSUT5ETWZuLkRRPlUuTWFVZGRfSHdVLihNJG51ZE0pe00JcHsJCSQ2UlFSTWlNZlJkd2I7ewkJCXsJCT5mKE1mbi5EUT5VLl9icT53UXcoTSdEbnVkXz4uPlEnTSlNKU1wewkJCQl7CQkJJEQgTWlNRG51ZF8+Lj5RKCk7ewkJCURudWRfd2JRVWFRKE0kRCAsTVd9QT03T1ZffUE9LE0kbnVkTSk7ewkJCURudWRfd2JRVWFRKE0kRCAsTVd9QT03T1ZffUpvQQpUb0lWLE0kX0pvQU5vQXQnclZWT199Sm9BXwpUb0lWJ21NKTt7CQkJQERudWRfd2JRVWFRKE0kRCAsTVd9QT03T1ZfTDc9PTdoPTdXClZLN0ksTWVNKTt7CQkJRG51ZF93YlFVYVEoTSREICxNV31BPTdPVl9Bb1Z9QUlWQQpJSkxvQSxNZU0pO3sJCQlEbnVkX3diUVVhUSgkRCAsTVd9QT03T1ZfVktjbzd9VixNMCk7ewkJCURudWRfd2JRVWFRKE0kRCAsTVd9QT03T1Zfcm8KL29BLE16KTt7CQkJCXsJCQkkNlJRUk1pTURudWRfYnFiRChNJEQgTSk7ewkJCURudWRfRGRVd2IoTSREIE0pO3sJewkJCT5mKE0kNlJRUk0haWlNZlJkd2JNKU11YlFudS5NSHdVLl82YkRVNmIoJDZSUVIpO3sJCQl7CQl2TXt7CQk+ZihNYXVieF88UlFEICgnNGV8Q2J3fFUufFF1bmI0PicsTT4uPl94YlEoJ1JkZFVQX251ZF9mVWFiLicpKU0pTXB7CXsJCQkkNlJRUk1pTUBmPmRiX3hiUV9EVS5RYi5RdyhNJG51ZE0pO3sJCQkJewkJCT5mKE0kNlJRUk0haWlNZlJkd2JNKU11YlFudS5NSHdVLl82YkRVNmIoJDZSUVIpO3sJewkJdntNCQl7TQkJdWJRbnUuTWZSZHdiO3tNCXZ7TXZ7TQ==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCc8TwpiS11KRW89fWgyd2RhWlgwans4R1tMWVRJUzZDMWZCL1ZBLnY0bmxjIEhRaXhGbU1lUHF5dGtwTkRVOVJyNTNzN3U+Z1d6JywnbVBBZUlKU0tFTFVXa3NscDc+NUIKUTx2RlhHTllkeTZmMkRUUm59L3VxTWhqdD1nel0gMXd4Lltae1Zjb2JhSDkzOE9yaTRDMCcpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_X 0

Stats

MD5 8d52e162c82bdaabd331091fd21c7244
Eval Count 2
Decode Time 78 ms