叮叮,我终于回来了,之前失踪了一段时间,终于回来啦,博主已经开学了,谈起为啥我要用php改4399密码,4399可谓是中国游戏开创者,游戏一哥啊,肯定有大部分活跃用户的,在之前一篇的日记里博主提到过4399代理的《逃跑吧少年!》,博主在这个游戏里等级很高,卖号嘿嘿,别人玩完我的号,我也是要接着玩的,或许说得更准确的是限定时长,然后改密码,每次改4399密码都要登录,还要密保,麻烦死了,于是,就开始折腾了~

对了,打个广告:
我正在玩《逃跑吧!少年》,前往 http://news.4399.com/taopao/ 下载游戏并填写我的邀请码:110959000,一起玩一起领奖励吧~

嘿嘿嘿(●ˇ∀ˇ●)

进入正题,我们先登录4399,来到https://u.4399.com/anquan/safe/?_a=edit&type=pwd&from=u&extend=noTop&sfrom=4399,开启F12,切换到Network,选择保留日志:

因为我设置了密保,所以先把密保填上去:


点击下一步来到修改密码界面:

输入密码,点击确认修改,接着我们切换到F12,可以看到刚刚的记录,切记!!!!要开保留记录,要不然页面刷新他就给你整没了:


相信大家都看到了那个pwd了吧,往下翻一翻,看看是不是和我填写的密码一样:


嗯,不错,对的,接下来我们就要用curl模拟post了,现在估计你会有疑问,不是定时改密码吗,php是不可能一直运行的呀,这时,我想说宝塔里有一个计划非常好用,可以定时访问界面哟,但是本文只写普通的改密码,如果大家需要还是需要自己DIY一下哟,有问题也可以从联系方式里找到我~

那么,我们开始吧~

普通的curl模拟post:

调用函数:

就当我以为解决之时,问题来了:

啊这,来一个身份验证失败????

在我翻看F12的时候,发现了一个cookie参数被我漏了,顺便加上浏览器的header:

 

very good!来,跑一遍吧~

我:

这???后来,我想起来了,我不是还设置了一个密保吗,是不是要把密保也post一遍过去就可以改了??动手实践:

我们来跑一遍吧:

妙啊!

那么,我就把源码晒在下面啦,有需要的同学可以拿去用哦~

抓cookie只需要登陆4399,改一次密码在XHR找到相关记录复制内容即可

密保也是开F12填写提交在XHR里找到记录把表单的值填写下来哦~

<?php
function post($url, $data) {
$ch = curl_init();
$header=[
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36',

'Cookie:此处要填写你的cookie'
];

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$output = curl_exec($ch);
//返回数据
return $output;
}
$array2 = array(
"serialize" => "有密保的同学开F12抓到了填在这里");
$dzz2 = "https://u.4399.com/anquan/safe/?_c=verify&_a=confirm&type=question";
echo post($dzz2,$array2);
$array = array(
"serialize" => "pwd=lihouse&pwdC=lihouse");
$dzz = "https://u.4399.com/anquan/safe/?_c=confirm&_a=confirm&type=pwd";
echo post($dzz,$array);//调用
?>

curl可真是强大啊

再见咯~


走自己的路