where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminid") || md5(db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminpassword")) !== $_COOKIE["in_adminpassword"]) { exit("-1"); } $time = $_GET["time"]; $xml_size = $_GET["size"]; $tmp = IN_TMP_PATH . $time . ".apk"; $explode = explode("_", $time); $icontime = md5($explode[0] . "_" . $explode[1] . "_" . rand(2, pow(2, 24))) . ".png"; $apptime = md5($explode[1] . "_" . $explode[0] . "_" . rand(2, pow(2, 24))) . ".apk"; $apk = new \ApkParser\Parser($tmp); $xml_mnvs = $apk->getManifest()->getMinSdkLevel(); $xml_bid = $apk->getManifest()->getPackageName(); $xml_bsvs = $apk->getManifest()->getVersionName(); $xml_bvs = $apk->getManifest()->getVersionCode(); $labelResourceId = $apk->getManifest()->getApplication()->getLabel(); $appLabel = $apk->getResources($labelResourceId); $xml_name = detect_encoding($appLabel[0]); $resourceId = $apk->getManifest()->getApplication()->getIcon(); $resources = $apk->getResources($resourceId); foreach ($resources as $resource) { fwrite(fopen(IN_ATTACHMENT_PATH . $icontime, "w"), stream_get_contents($apk->getStream($resource))); } $function = PHP_OS == "Linux" ? "rename" : "copy"; $function($tmp, IN_ATTACHMENT_PATH . $apptime); echo "{'name':'" . $xml_name . "','mnvs':'" . $xml_mnvs . "','bid':'" . $xml_bid . "','bsvs':'" . $xml_bsvs . "','bvs':'" . $xml_bvs . "','form':'Android','nick':'*','type':'0','team':'*','icon':'" . $icontime . "','app':'" . $apptime . "','size':'" . $xml_size . "'}"; } function ipa() { require_once "depng/pngCompote.php"; require_once "deplist/CFPropertyList.php"; error_reporting(0); if (empty($_COOKIE["in_adminid"]) || empty($_COOKIE["in_adminname"]) || empty($_COOKIE["in_adminpassword"]) || empty($_COOKIE["in_permission"]) || empty($_COOKIE["in_adminexpire"]) || !db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminid") || md5(db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->value("in_adminpassword")) !== $_COOKIE["in_adminpassword"]) { exit("-1"); } $time = $_GET["time"]; $tmp = IN_TMP_PATH . $time . ".ipa"; $explode = explode("_", $time); $icontime = md5($explode[0] . "_" . $explode[1] . "_" . rand(2, pow(2, 24))) . ".png"; $apptime = md5($explode[1] . "_" . $explode[0] . "_" . rand(2, pow(2, 24))) . ".ipa"; $dir = IN_TMP_PATH . $time . "/Payload"; if (is_dir($dir)) { rename($tmp, IN_ATTACHMENT_PATH . $apptime); $d = NULL; $h = opendir($dir); while ($f = readdir($h)) { if ($f != "." && $f != ".." && is_dir($dir . "/" . $f)) { $d = $dir . "/" . $f; } } closedir($h); $info = file_get_contents($d . "/Info.plist"); $plist = new CFPropertyList(); $plist->parse($info); $plist = $plist->toArray(); $xml_size = $_GET["size"]; $xml_name = detect_encoding(isset($plist["CFBundleDisplayName"]) ? $plist["CFBundleDisplayName"] : $plist["CFBundleName"]); $xml_mnvs = $plist["MinimumOSVersion"]; $xml_bid = $plist["CFBundleIdentifier"]; $xml_bsvs = $plist["CFBundleShortVersionString"]; $xml_bvs = $plist["CFBundleVersion"]; $newfile = IN_ATTACHMENT_PATH . $icontime; $icon = $plist["CFBundleIcons"]["CFBundlePrimaryIcon"]["CFBundleIconFiles"]; if (!$icon) { $icon = $plist["CFBundleIconFiles"]; if (!$icon) { $icon = $plist["CFBundleIconFiles~ipad"]; } } if (preg_match("/\\./", $icon[0])) { $cvt = is_file($d . "/" . $icon[0]) ? "trim" : "strtolower"; for ($i = 0; $i < count($icon); $i++) { if (is_file($d . "/" . $cvt($icon[$i]))) { $big[] = filesize($d . "/" . $cvt($icon[$i])); $small[] = filesize($d . "/" . $cvt($icon[$i])); } } rsort($big); sort($small); for ($p = 0; $p < count($icon); $p++) { if ($big[0] == filesize($d . "/" . $cvt($icon[$p]))) { $bigfile = $d . "/" . $cvt($icon[$p]); } if ($small[0] == filesize($d . "/" . $cvt($icon[$p]))) { $smallfile = $d . "/" . $cvt($icon[$p]); } } } else { $ext = is_file($d . "/" . $icon[0] . ".png") ? ".png" : "@2x.png"; for ($i = 0; $i < count($icon); $i++) { if (is_file($d . "/" . $icon[$i] . $ext)) { $big[] = filesize($d . "/" . $icon[$i] . $ext); $small[] = filesize($d . "/" . $icon[$i] . $ext); } } rsort($big); sort($small); for ($p = 0; $p < count($icon); $p++) { if ($big[0] == filesize($d . "/" . $icon[$p] . $ext)) { $bigfile = is_file($d . "/" . $icon[$p] . "@3x.png") ? $d . "/" . $icon[$p] . "@3x.png" : $d . "/" . $icon[$p] . $ext; } if ($small[0] == filesize($d . "/" . $icon[$p] . $ext)) { $smallfile = preg_match("/AppIcon20x20/", $icon[$p]) ? $d . "/" . $icon[$p] . "@3x.png" : $d . "/" . $icon[$p] . $ext; } } } $png = new PngFile($smallfile); if (!$png->revertIphone($newfile)) { if (!rename($bigfile, $newfile)) { if ($plist["CFBundleIconFile"]) { if (preg_match("/\\./", $plist["CFBundleIconFile"])) { rename($d . "/" . $plist["CFBundleIconFile"], $newfile); } else { rename($d . "/" . $plist["CFBundleIconFile"] . ".png", $newfile); } } else { copy(IN_ROOT . "static/index/image/iOS.png", $newfile); } } } $em = file_get_contents($d . "/embedded.mobileprovision"); rename($d . "/embedded.mobileprovision", str_replace(".png", ".mobileprovision", $newfile)); $xml_nick = preg_match("/Name<\\/key>\r\n([\\s\\S]+?)([\\s\\S]+?)<\\/string>/", $em, $m) ? mb_convert_encoding($m[2], set_chars(), "HTML-ENTITIES") : "*"; $xml_type = preg_match("/^iOS Team Provisioning Profile:/", $xml_nick) ? 0 : 1; $xml_team = preg_match("/TeamName<\\/key>\r\n([\\s\\S]+?)([\\s\\S]+?)<\\/string>/", $em, $m) ? mb_convert_encoding($m[2], set_chars(), "HTML-ENTITIES") : "*"; echo "{'name':'" . $xml_name . "','mnvs':'" . $xml_mnvs . "','bid':'" . $xml_bid . "','bsvs':'" . $xml_bsvs . "','bvs':'" . $xml_bvs . "','form':'iOS','nick':'" . $xml_nick . "','type':'" . $xml_type . "','team':'" . $xml_team . "','icon':'" . $icontime . "','app':'" . $apptime . "','size':'" . $xml_size . "'}"; } } function open() { if (!isAdminLogin()) { exit(iframe_message("请先登录管理中心!")); } ?> 上传应用
上传图标
where("in_id", $_var_4)->value("in_icon"); if (!db("admin")->where("in_adminid", $_var_5)->value("in_adminid") || md5(db("admin")->where("in_adminid", $_var_5)->value("in_adminpassword")) !== $_var_6) { exit("Access denied"); } if (!empty($_FILES)) { $_var_8 = stristr($_var_7, "/") ? substr(strrchr($_var_7, "/"), 1) : $_var_7; $_var_2 = pathinfo($_FILES["file"]["name"]); if (in_array(strtolower($_var_2["extension"]), array("jpg", "jpeg", "gif", "png"))) { $_var_3 = IN_ATTACHMENT_PATH . $_var_8; @move_uploaded_file($_FILES["file"]["tmp_name"], $_var_3); echo $_var_8; } else { echo "-1"; } } } } function uplog() { if (!empty($_FILES)) { $_var_9 = pathinfo($_FILES["file"]["name"]); $_var_10 = strtolower($_var_9["extension"]); if (in_array($_var_10, array("ipa", "apk"))) { $_var_11 = $_POST["post"]; preg_match("/^(\\d+\\_\\d+)\$/", $_var_11) or exit("-1"); $_var_12 = IN_TMP_PATH . $_var_11 . "/"; if (!is_dir($_var_12)) { @mkdir($_var_12, 0777, true); } $_var_13 = IN_TMP_PATH . $_var_11 . "." . $_var_10; @move_uploaded_file($_FILES["file"]["tmp_name"], $_var_13); if ($_var_10 == "ipa") { $_var_14 = new PclZip($_var_13); $_var_14->extract(PCLZIP_OPT_PATH, $_var_12, PCLZIP_OPT_BY_PREG, "/^Payload\\/.*.app\\/Info.plist\$/"); $_var_14->extract(PCLZIP_OPT_PATH, $_var_12, PCLZIP_OPT_BY_PREG, "/^Payload\\/.*.app\\/embedded.mobileprovision\$/"); $_var_14->extract(PCLZIP_OPT_PATH, $_var_12, PCLZIP_OPT_BY_PREG, "/^Payload\\/.*.app\\/(?!.*\\/).*.png\$/"); } echo "{'extension':'" . $_var_10 . "','time':'" . $_var_11 . "','size':'" . $_FILES["file"]["size"] . "'}"; } else { echo "-1"; } } } }