帝游网提供最新手游APP下载和游戏攻略!

【实战】4399小游戏网站JS反查实战案例游戏小说

发布时间:2024-07-04浏览:4

这次实战课我们来研究一下4399登录的逆向过程,这个相对比较简单。首先我们打开F12,右键登录按钮,发现登录界面很容易找到,它携带的session id可能会变,而它携带的password就是我们输入的密码,用户名和验证码都是明文数据输入。然后我们发送请求,看看其他参数会不会变。可以看到其他参数都没变,变的只有session id、密码、验证码。好了,我们先把密码加密给破解了。

正常情况下我们开始和玩家对战,但是发现play函数没有开放,那么我们就可以使用第二种方法,直接搜索他login的后半部分,可以看到,第一个不一样,第二个也不一样,第三个比较像,也就是在这里发送一个login请求,之前调用了一个check login的函数,这个函数也是挺好用的。

我们来看一下,我们可以看到在这个位置定义了checklogin函数,传入了四个参数,分别是用户名,密码,验证码和错误divid。那我们再看看函数前面,看看这些东西到底是啥。一个是用户名,一个是密码,这个是一个字符串,估计后面我们的密码就取出来了,另外还有一个验证码和一个messagemsg。进入这个函数之后,可以看到已经被注释掉了。

注释里有一段密文传输,我们从最下面开始看。这个“/P”是从文档里取出来的一个元素,通过它的id我们可以看出它指的是密码。然后取出来之后在这个位置做了一个AES加密,加密后的内容就是这个“条P”的值,也就是我们输入的密码的值。然后我们在这个位置设个断点,点击login发现确实是我们的密码。然后我们点进去发现是一个标准的AES加密。

先打印看看结果是否正确,发现加密过程没有问题。然后我们把密码部分解开,再看看验证码怎么获取。跳过断点,取消掉,以免影响后续操作。再次点开,再看看验证码,此时已经获取到了。

那我们来搜索一下验证码,验证码下面有个ID,直接搜索这个ID看看能不能找到,可以看到这里搜索到的ID跟登录ID一模一样,所以我们需要先发送一个请求,然后提取它的ID。

游戏小视频_4399小游戏_游戏小说

我们定义一个函数叫 get session id,哦,这个是复制的 CCU,不对,我复制错了,先把 UI 上的 URL 复制过来,然后可以看到最后有一个参数 V,长度有 13 个字符,很有可能是时间戳。

我们看一下,它是一个时间戳,所以我们也需要替换它。你可以用time点击时间,然后乘以1000,然后运行它,把它转换成字符串,就可以得到它的13位时间编号了。

这样我们就拿到了第13次,这里发一个请求,我说的是一个get请求URL,就是拿到数据点TXTXT,用RE去解析,怎么解析呢,我们先定位到刚才的参数,复制一些粗略的方法就是点括号里的第六个,好了,这样的话,我们应该可以拿到他的事件ID了,这样就不用他去叫COSD播放了,正常频道就可以了。

然后我们现在需要构造一个请求,对于他的登录请求,需要把用户名和密码作为参数传入。然后构造他的get请求,需要传入的是事件id。然后获取它的验证码,需要找到它的url,点击开关往下看。把它复制到这里。这个xx就是他切换的次数,你看这次是两个,下次就变成三个了,让它默认一个就行。然后这里需要把他的session会话id拼接一下,偏向他的id,然后给它发送请求就可以了。当然我这里用的是我自己封装的一个图片,你也可以正常发送请求然后识别他的图片,这个库就是用来识别的,需要在创建公司的时候把它落下来,然后导入我之前封装的一个库,然后识别出来,期待返回。

然后说一下我写的这个方法,它其实就是把图片保存下来,然后就是少敲鸡蛋,就这样了。正常情况下我建议你把图片保存到本地再读取识别,因为你读取到的验证码有可能是错的,毕竟它的识别不是100%准确,识别出来可能就错了,而且你也没法检查到底是你的验证码错了,还是后面的传输,也就是点球,参数构造错了,对吧?还是保存到本地比较好。

现在写好了,我们来构造登录。点击登录,然后右键复制到CCUL,在数据里替换掉。拿到这里的ID,等于BT30D。我们去D那里替换掉。然后这里的密码也是我自己写的库里开放的js方法。这里加X,当然这也是对库的封装,少打几行代码,估计给这个账号封了,省去几个代码,调用用户名U。然后验证码就是get i get code然后把他的id传进去。这样就大致写好了,我们来测试一下。这里不能说NO类型,所以可以看到这里登录成功了。

其实验证码不用那么多处理,只要是同一个ip地址访问的,随便一个都可以,不需要cookie,然后登录密码也可以直接明文表达,用AS加密也不是不可以。

热点资讯