上次水了一哈 testab
然后就发现里面还有个参数
那么为啥是 kar98k 嘞
真是命名鬼才
另外一提。。携x的登录确实打发时间。。参数是真多(单存就是多)
如因滥用解密技术而产生的风险与本人无关!
------------------------------------------------------------------------------
首先先看看 98k 吧
勾一下 Kar98k 的 set 就能看到 vm 啦 然后
玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡
玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡
玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡 玛卡巴卡
大概就是一些环境呀啥的 巴拉巴拉的就变成 98k 啦
当然也顺便验证了一下参数啦 木有问题
然后我们愉快的看看登录吧 (不水了)
validate 就是最后的登陆包啦 先看看需要什么参数
token rmstoken 其他的要么是写死的 要么是写死的 要么是写死的了
token 呢就是前面 risk_inspect返回的啦先看看risk的包吧
三个参数 那就直接搜搜看吧
然后好玩的事情就出现了
一个文件是混淆版本 另一个是明文版本hhh 非常舒服
然后这部分打断点就完事了 有好几块差不多的代码 都打上就好啦
最后加密就是一个 aes 啦 然后下面的 sign 就是 md5 啦
那么简单吗?是的 加密就是那么简单
那上面说的参数多???看看加密的内容
rt 也就是后面需要的 rmstokn 啦
然后搜搜搜
组装逻辑基本都在这里啦
另外一提 sfp svid 就在这块地方生成滴 搜下 canvas 吧
好 verify good
终于跑通 inspect 包之后发现 欸 验证码
滑块跑通之后 欸 图标
毕竟只是搞着玩就写了个点点点返回坐标的玩具hhh 测试很方便噻
然后就 over 啦
然后短信登录也差不多啦
啥你想要这个小玩意?大概搜一下就能找到啦
啥 你不想自己写?
那点个关注呗!4000 你懂我意思吧!
import os
import shutil
from typing import List
import cv2
import numpy as np
from loguru import logger
class ClickCrack:
"""显示图片, 双击返回坐标, ESC 退出并返回结果"""
def __init__(self, bg: bytes, small_imgs: bytes or List[bytes] = None):
"""
:param bg: 底图
:param small_imgs: 小图 (列表) 用于显示点击顺序, 可不传
"""
self.bg = bg
self.small_imgs = [small_imgs] if small_imgs and isinstance(small_imgs, bytes) else small_imgs
self.points = []
def add_point(self, event, x, y, *args, **kwargs):
if event == cv2.EVENT_LBUTTONDBLCLK:
self.points.append((x, y))
logger.debug(f"当前点击: {(x, y)}")
def discern(self):
if self.small_imgs:
for i, img in enumerate(self.small_imgs):
if not os.path.exists("tmp"):
os.mkdir("tmp")
cv2.imwrite(f"tmp/{i}.png", cv2.imdecode((np.frombuffer(img, np.uint8)), cv2.IMREAD_UNCHANGED))
logger.info("需要点击的小图顺序已写入 tmp 文件夹")
logger.info(f"开始点击, 双击确定坐标, 点击完毕后按 ESC 退出")
cv2.namedWindow("image", cv2.WINDOW_NORMAL)
cv2.setMouseCallback("image", self.add_point)
cv2.imshow("image", cv2.imdecode((np.frombuffer(self.bg, np.uint8)), cv2.IMREAD_UNCHANGED))
while True:
if cv2.waitKey(20) & 0xFF == 27: # 按ESC退出
break
cv2.destroyAllWindows()
if os.path.exists("tmp"):
shutil.rmtree("tmp")
return self.points
这要是不会用 那就丢回收站吧
本文分享自 python爬虫与js逆向 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!