Пример #1
1
function verifyTiezi_send($uid, $tid, $pid, $water = 'StusGame Tieba Cloud Sign Plugin "verifyTiezi"', $device = 4)
{
    if (empty($uid) || empty($tid) || empty($pid)) {
        return array('status' => '1', 'msg' => '');
    }
    $ck = misc::GetCookie($pid);
    $xs = verifyTiezi_gettie($tid, $ck);
    $x = array('BDUSS' => $ck, '_client_id' => 'wappc_136' . rand_int(10) . '_' . rand_int(3), '_client_type' => $device, '_client_version' => '5.0.0', '_phone_imei' => md5(rand_int(16)), 'anonymous' => '0', 'content' => $water, 'fid' => $xs['fid'], 'kw' => $xs['word'], 'net_type' => '3', 'tbs' => $xs['tbs'], 'tid' => $tid, 'title' => '');
    $y = '';
    foreach ($x as $key => $value) {
        $y .= $key . '=' . $value;
    }
    $x['sign'] = strtoupper(md5($y . 'tiebaclient!!!'));
    $c = new wcurl('http://c.tieba.baidu.com/c/c/post/add', array('Content-Type: application/x-www-form-urlencoded'));
    /* //Note:普通的
    	$x = verifyTiezi_gettie($tid,$ck);
    	$c = new wcurl('http://tieba.baidu.com'.$x['__formurl']);
    	unset($x['__formurl']);
    	$x['co'] = $water;
    	*/
    $c->addcookie('BDUSS=' . $ck);
    $return = json_decode($c->post($x), true);
    $c->close();
    if (!empty($return['error_code']) && $return['error_code'] != '1') {
        return array('status' => $return['error_code'], 'msg' => $return['error_msg']);
    } else {
        return array('status' => '1', 'msg' => '');
    }
}
Пример #2
0
function cron_mok_zdwk()
{
    //如果今天签到过了直接返回日志
    if (option::get('mok_zdwk_run') == date('d')) {
        return option::get('mok_zdwk_log');
    }
    global $m;
    $prefix = DB_PREFIX;
    //选出用户的options和bduss
    $res = $m->query("SELECT {$prefix}users_options.`name` , {$prefix}users_options.`value` , {$prefix}baiduid.`bduss` \nFROM {$prefix}baiduid\nINNER JOIN {$prefix}users_options ON {$prefix}users_options.uid = {$prefix}baiduid.uid\nWHERE {$prefix}users_options.`name` =  'mok_zdwk_wk'\nOR {$prefix}users_options.`name` =  'mok_zdwk_zd'");
    $wk = $zd = 0;
    $bduss = array();
    if ($m->num_rows($res) != 0) {
        while ($row = $res->fetch_array()) {
            //判断该选项是否开启
            if ($row['value'] == 'on') {
                //记录bduss(数量),如果bduss数组内没有该bduss,则加入数组
                if (!in_array($row['bduss'], $bduss)) {
                    $bduss[] = $row['bduss'];
                }
                if ($row['name'] === 'mok_zdwk_wk') {
                    $wk++;
                    $head = array('Accept:*/*', 'Accept-Encoding:gzip, deflate, sdch', 'Accept-Language:zh-CN,zh;q=0.8', 'Connection:keep-alive', 'Host:wenku.baidu.com', 'Referer:http://wenku.baidu.com/task/browse/daily', 'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36', 'X-Requested-With:XMLHttpRequest');
                    $c = new wcurl('http://wenku.baidu.com/task/submit/signin', $head);
                    $c->addCookie('BDUSS=' . $row['bduss']);
                    $c->exec();
                    $c->close();
                } else {
                    if ($row['name'] === 'mok_zdwk_zd') {
                        $zd++;
                        $c = new wcurl('http://zhidao.baidu.com/');
                        $c->addCookie('BDUSS=' . $row["bduss"]);
                        $stoken = $c->get();
                        $c->close();
                        $stoken = textMiddle($stoken, '"stoken":"', '",');
                        if ($stoken != "") {
                            $c = new wcurl('http://zhidao.baidu.com/submit/user');
                            $c->addCookie('BDUSS=' . $row["bduss"]);
                            $c->post(array('cm' => '100509', 'utdata' => '90,90,102,96,107,101,99,97,96,90,98,103,103,99,127,106,99,99,14138554765830', 'stoken' => $stoken));
                            $c->close();
                        }
                    }
                }
            }
        }
    }
    $log = "知道、文库签到完毕<br/>" . date("Y-m-d H:i:s") . "<br/>共计百度账号: " . count($bduss) . " 个<br/>知道签到: {$zd} 个<br/>文库签到: {$wk} 个";
    option::set('mok_zdwk_run', date('d'));
    option::set('mok_zdwk_log', $log);
    return $log;
}
Пример #3
0
function wmzz_zan_do($kw, $pid, $tid, $b)
{
    $pda = array('BDUSS' => $b, '_client_id' => 'wappc_1396611108603_817', '_client_type' => '2', '_client_version' => '5.7.0', '_phone_imei' => '642b43b58d21b7a5814e1fd41b08e2a6', 'action' => 'like', 'from' => 'tieba', 'kw' => $kw, 'post_id' => $pid, 'thread_id' => $tid);
    $ex = '';
    foreach ($pda as $k => $v) {
        $ex .= $k . '=' . $v;
    }
    $pda['sign'] = md5($ex . 'tiebaclient!!!');
    //!!
    $x = new wcurl('http://c.tieba.baidu.com/c/c/zan/like', array('Content-Type: application/x-www-form-urlencoded'));
    $x->addcookie('BDUSS=' . $b);
    $x->set(CURLOPT_TIMEOUT, 1);
    return $x->post($pda);
    //$x->close();
}
Пример #4
0
function cron_wmzz_ban()
{
    global $m;
    $s = unserialize(option::get('plugin_wmzz_ban'));
    $now = strtotime(date('Y-m-d'));
    $y = $m->query("SELECT * FROM `" . DB_PREFIX . "wmzz_ban` WHERE `nextdo` <= '{$now}' LIMIT {$s['limit']}");
    while ($x = $m->fetch_array($y)) {
        $r = wmzz_ban_getTime($x['date']);
        if ($r != '-1') {
            $bduss = misc::getCookie($x['pid']);
            $c = new wcurl('http://tieba.baidu.com/pmc/blockid');
            $c->addcookie('BDUSS=' . $bduss);
            $c->post(array('user_name[]' => $x['user'], 'day' => $r, 'fid' => misc::getFid($x['tieba']), 'tbs' => misc::getTbs($x['uid'], $bduss), 'ie' => 'utf-8', 'reason' => $s['msg']));
            $next = $now + $r * 86400;
            $m->query("UPDATE `" . DB_PREFIX . "wmzz_ban` SET `nextdo` = '{$next}' WHERE `id` = '{$x['id']}'");
        } else {
            $m->query("DELETE FROM `" . DB_PREFIX . "wmzz_ban` WHERE `id` = '{$x['id']}'");
        }
    }
}
 /**
  * 登录百度
  * @param 百度用户名
  * @param 百度密码
  * @param 验证码
  * @param $vcodestr
  * @return 登录完成的页面
  */
 public static function loginBaidu($bd_name, $bd_pw, $verifycode, $vcodestr)
 {
     $x = new wcurl('http://wappass.baidu.com/passport/?verifycode=' . $verifycode, array('User-Agent: Phone' . mt_rand()));
     $x->set(CURLOPT_HEADER, true);
     return $x->post(array('username' => $bd_name, 'password' => $bd_pw, 'verifycode' => $verifycode, 'login_save' => '3', 'vcodestr' => $vcodestr, 'aaa' => '%E7%99%BB%E5%BD%95', 'login' => 'yes', 'can_input' => '0', 'u' => 'http%3A%2F%2Fm.baidu.com%2F%3Faction%3Dlogin', 'tn', 'tpl', 'ssid' => '000000', 'form' => '0', 'bd_page_type' => '1', 'uid' => 'wiaui_1316933575_9548', 'isPhone' => 'isPhone'));
 }
Пример #6
0
/**
 * 执行一个网络请求而不等待返回结果
 * @param string $url URL
 * @param string $post post数据包,留空为get
 * @param string $cookie cookies
 * @return bool fsockopen是否成功
 */
function sendRequest($url, $post = '', $cookie = '')
{
    if (function_exists('fsockopen')) {
        $matches = parse_url($url);
        $host = $matches['host'];
        if (substr($url, 0, 8) == 'https://') {
            $host = 'ssl://' . $host;
        }
        $path = $matches['path'] ? $matches['path'] . ($matches['query'] ? '?' . $matches['query'] : '') : '/';
        $port = !empty($matches['port']) ? $matches['port'] : 80;
        if (!empty($post)) {
            $out = "POST {$path} HTTP/1.1\r\n";
            $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
            $out .= "Host: {$host}\r\n";
            $out .= "Connection: Close\r\n\r\n";
            $out .= $post;
        } else {
            $out = "GET {$path} HTTP/1.1\r\n";
            $out .= "Host: {$host}\r\n";
            $out .= "Connection: Close\r\n\r\n";
        }
        $fp = fsockopen($host, $port);
        if (!$fp) {
            return false;
        } else {
            stream_set_blocking($fp, 0);
            stream_set_timeout($fp, 0);
            fwrite($fp, $out);
            fclose($fp);
            return true;
        }
    } else {
        $x = new wcurl($url);
        $x->set(CURLOPT_CONNECTTIMEOUT, 1);
        $x->set(CURLOPT_TIMEOUT, 1);
        $x->addcookie($cookie);
        if (empty($post)) {
            $x->post($post);
        } else {
            $x->exec();
        }
        return true;
    }
}
 if($json['version'] > SYSTEM_VER){
 	//每次主版本号变动必须有更新脚本,数据库中主版本号由更新脚本修改
 	$updatefile = '<br/><br/>本次升级需要运行升级脚本。请点击运行: <a href="setup/update'.SYSTEM_VER.'to'.$json['version'].'.php">update'.SYSTEM_VER.'to'.$json['version'].'.php</a><br/>如果升级脚本不存在,可能是由于您本次更新跨越了多个版本,您需要依次运行每一个脚本。<br/>';
 	msg('恭喜您!您已成功升级到 V'.$json['version'].'.'.$json['revision'].$updatefile,false);
 }
 msg('恭喜您!您已成功升级到 V'.$json['version'].'.'.$json['revision'], SYSTEM_URL);
 break;
 */
 case 'admin:update:changeServer':
     if (isset($_GET['server'])) {
         option::set('update_server', $_GET['server']);
     }
     break;
 case 'baiduid:getverify':
     $x = new wcurl('http://wappass.baidu.com/passport/', array('User-Agent: fxxxx phone'));
     $r = $x->post(array('login_username' => $_POST['bd_name'], 'login_loginpass' => $_POST['bd_name']));
     preg_match('/\\<img src=\\"(.*)\\" alt=\\"wait...\\" \\/\\>/', $r, $out);
     if (empty($out[1])) {
         echo '<b>无需验证码,请直接点击 [ 点击绑定 ] 继续</b>';
     } else {
         echo '<img onclick="addbdid_getcode();" src="' . $out[1] . '"style="float:left;">&nbsp;&nbsp;&nbsp;请在下面输入左图中的字符<br>&nbsp;&nbsp;&nbsp;点击图片更换验证码';
         echo '<br/><br/><div class="input-group"><span class="input-group-addon">验证码</span>';
         echo '<input type="text" class="form-control" id="bd_v" name="bd_v" placeholder="请输入上图的字符" required></div><br/>';
     }
     preg_match('/\\<input type=\\"hidden\\" id=\\"vcodeStr\\" name=\\"vcodestr\\" value=\\"(.*)\\"\\/\\>/', $r, $outt);
     echo '<input type="hidden" id="vcodeStr" name="vcodestr" value="' . $outt['1'] . '"/>';
     break;
 case 'baiduid:bdid':
     //多次循环有助于解决验证码问题
     for ($e = 0; $e < 2; $e++) {
         $x = misc::loginBaidu($_POST['bd_name'], $_POST['bd_pw'], $_POST['bd_v'], $_POST['vcodestr']);
 /**
  * 登录百度
  * @param string $bd_name 百度用户名
  * @param string $bd_pw百度密码
  * @param string $verifycode 验证码
  * @param string $vcodestr 验证字符
  * @return array [0成功|-1网络请求失败|-2json解析失败|-3表示需要验证码或验证码错误|2表示登陆失败|其他为百度提供的错误代码, 成功为BDUSS|需要验证码则返回vcodestr|其他错误返回百度提供的错误信息, 如果登陆成功,返回百度用户名|如果需要验证码,则此处返回验证图片地址 ]
  */
 public static function loginBaidu($bd_name, $bd_pw, $verifycode = '', $vcodestr = '')
 {
     $x = new wcurl('http://c.tieba.baidu.com/c/s/login');
     $p = array('passwd' => base64_encode($bd_pw), 'timestamp' => time() . '156', 'un' => $bd_name);
     if (!empty($verifycode) && !empty($vcodestr)) {
         $p['vcode'] = $verifycode;
         $p['vcode_md5'] = $vcodestr;
     }
     self::addTiebaSign($p);
     //print_r($p);
     if (!($data = $x->post($p))) {
         return array(-1, '网络请求失败');
     }
     if (!($v = json_decode($data, true))) {
         return array(-2, 'json解析失败');
     }
     $md5pos = strpos($v['user']['BDUSS'], '|');
     if (!empty($md5pos)) {
         $bduss = substr($v['user']['BDUSS'], 0, $md5pos);
     } else {
         $bduss = $v['user']['BDUSS'];
     }
     if ($v['error_code'] == '0') {
         return array(0, $bduss, $v['user']['name']);
     } else {
         switch ($v['error_code']) {
             case '5':
                 //需要验证码或验证码输入错误
             //需要验证码或验证码输入错误
             case '6':
                 return array(-3, $v['anti']['vcode_md5'], $v['anti']['vcode_pic_url']);
                 break;
             default:
                 //其他错误
                 return array((int) $v['error_code'], $v['error_msg']);
                 break;
         }
     }
 }
Пример #9
0
 public static function getTieba($userid, $bduss, $pn)
 {
     $head = array();
     $head[] = 'Content-Type: application/x-www-form-urlencoded';
     $head[] = 'User-Agent: Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE72-1/021.021; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.1.16352';
     $tl = new wcurl('http://c.tieba.baidu.com/c/f/forum/like', $head);
     $data = array('_client_id' => 'wappc_' . time() . '_' . '258', '_client_type' => 2, '_client_version' => '6.5.8', '_phone_imei' => '357143042411618', 'from' => 'baidu_appstore', 'is_guest' => 1, 'model' => 'H60-L01', 'page_no' => $pn, 'page_size' => 200, 'timestamp' => time() . '903', 'uid' => $userid);
     $sign_str = '';
     foreach ($data as $k => $v) {
         $sign_str .= $k . '=' . $v;
     }
     $sign = strtoupper(md5($sign_str . 'tiebaclient!!!'));
     $data['sign'] = $sign;
     $tl->addCookie(array('BDUSS' => $bduss));
     $tl->set(CURLOPT_RETURNTRANSFER, true);
     $rt = $tl->post($data);
     return $rt;
 }