2020年8月web版本可用
算法已转成python
接单app逆向,js逆向,有需求联系V:Nanch51188

#!/usr/bin/python3
# encoding: utf-8
"""
@author: fengyinws
@contact: fengyinws@163.com
@software: fengyinws
@file: decrypt_qm.py
@time: 2020/8/15 10:53
@desc: 七麦js加密算法
"""import re
import time
from urllib.parse import quoteclass DecodeEncry:"""七麦数据参数加密函数get_s,j,d三个主要加密"""c_params = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T","U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n","o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7","8", "9", "+", "/"]def j(self, n):a = quote(n)l = re.findall("%([0-9A-F]{2})", a)for i in l:a = a.replace("%" + i, chr(int("0x" + i, 16)))return self.nfun(a)def nfun(self, e):n = self.efun(e, "binary")return self.qfun("base64", n)def efun(self, e, t):return self.d_j(None, e, t)def a(self, e, t):e = t * [0]return edef d_j(self, e, t, n):i = len(t)e = self.a(e, i)r = self.e_write(t, n, e)e = e[0:r]return edef e_write(self, e, t, this1):i = tt = 0n = len(this1)r = len(this1) - treturn self.L(this1, e, t, n)def L(self, e, t, n, i):return self.S1(e, t, n, i)def S1(self, e, t, n, i):return self.q1(self.G1(t), e, n, i)def G1(self, e2):t = []for n in range(len(e2)):t.append(255 & ord(e2[n]))return tdef q1(self, e, t, n, i):r = 0while 1:if r < i and (not ((r + n) >= len(t) or r >= len(e))):t[r + n] = e[r]r += 1else:breakreturn rdef qfun(self, t, this1):e = len(this1)return self.y(this1, t)def y(self, this1, e):n = len(this1)return self.D(this1, 0, n)def D(self, e, t, n):return self.u1(e[t:n])def u1(self, e):n = len(e)r = []a = 16383o = 0while 1:i = n % 3s = n - iif o < s:r.append(self.l_u(e, o, s if (o + a) > s else o + a))o += aelse:breakif 1 == i:t = e[n - 1]r.append(self.c_params[t >> 2] + self.c_params[t << 4 & 63] + "==")else:t = (e[n - 2] << 8) + e[n - 1]r.append(self.c_params[t >> 10] + self.c_params[t >> 4 & 63] + self.c_params[t << 2 & 63] + "=")return "".join(r)def l_u(self, e, t, n):r = []a = twhile 1:if a < n:i = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (255 & e[a + 2])r.append(self.s3(i))else:breaka += 3return "".join(r)def s3(self, e):return self.c_params[e >> 18 & 63] + self.c_params[e >> 12 & 63] + self.c_params[e >> 6 & 63] + self.c_params[63 & e]def d(self, e, t):# d加密函数if not t:t = "a12c0fa6ab9119bc90e4ac7700796a53"e1 = list(e)n = len(t)a = len(e1)for s1 in range(a):e1[s1] = chr((ord(e1[s1][0]) ^ ord(t[(s1 + 10) % n][0])))return "".join(e1)def get_s(self, P, syncd, synct, url, params):# 获取s加密参数A = -syncd or int(time.time() * 1000) - 1000 * synctr = str(int(time.time() * 1000) - A - 1515125653845)z = "@#"s = "".join(sorted([str(v) for v in params.values()]))s = self.j(s)s += z + urls += z + rs += z + "1"print(s)return sdef get_analysis(P, syncd, synct, url, params):d = DecodeEncry()e1_ = d.get_s(P, syncd, synct, url.replace("https://api.qimai.cn", ""), params)n = d.d(e1_, P)analysis = d.j(n)return analysisif __name__ == '__main__':P = "00000008d78d46a"  # 固定参数synct = 1598256112.463  # 从服务器返回的set-cookie获取ut = int(time.time() * 1000)syncd = int(1000 * float(synct)) - ut# syncd = -2264url = "https://api.qimai.cn/search/index"params = {'country': 'cn',"version": 'ios12',  # 设备类型'search': "呵呵",  # 搜索词}print(get_analysis(P, syncd, synct, url, params))

七麦数据analysis加密算法相关推荐

  1. 七麦数据-analysis值计算过程

    debug 参照文章爬虫JS逆向之-七麦数据的步骤进入下面的网站,打开控制台,选择榜单类型全部 点击网络可以看到,页面的发出了下面的请求,其中analysis参数是请求加密后的参数 响应结果 加密参数 ...

  2. JS逆解析-七麦数据analysis加密分析

    一.介绍: 要分析的网站是:七麦数据 -专业移动产品商业分析平台-关键词优化-ASA优化 二:页面分析 1:进入网址,按F12进入控制台,刷新页面,抓包,可以看到下图analysis参数,就是我们需要 ...

  3. JS逆向 | 七麦数据analysis分析

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负.如果侵权到了您的权益,请立即联系我删除! 前言 这次来分析一下七麦数据的analysis加密. 有什么写的不好的地方请多多指教

  4. js逆向 | 七麦数据analysis加密逻辑分析(最新)

    一.前言 没办法把公众号的文章直接搬运过来,简单分析下整个流程以及关键js代码和python的实现. 简单说下加密的实现逻辑 第一,使用拦截器,拦截请求url和请求携带的参数 第二,对参数进行排序并使 ...

  5. 七麦数据analysis参数算法还原

    1. 前言 本次分析过程仅限于学习使用,请勿用于非法用途,若读者用于非法用途其造成的一切后果与本人无关 博客所写的所有算法还原均已开源在GitHub,地址 https://github.com/Yot ...

  6. JS逆向-请求参数验证(案例:七麦数据)

    步骤 一.抓包 找关键字 参数里是否包含加密字段 二.找参数在JS的位置( 1.搜索关键字 2.XHR断点 3.hook关键字) 三.扣JS 四.还原入口参数 前言: 此内容仅供学习交流使用,不用于商 ...

  7. 七麦数据:2018年10月App Store大数据

    更多阅读: 七麦数据:2018年App Store大数据半年盘点(附下载) 七麦数据:2018年2月App Store推广行情总结报告 七麦数据:2018短视频App行业分析报告 七麦数据:2018中 ...

  8. 七麦数据:2018年App Store大数据半年盘点(附下载)

    报告下载:添加199IT官方微信[i199it],回复关键词[2018年AppStore大数据半年盘点]即可! 报告下载:添加199IT官方微信[i199it],回复关键词[2018年AppStore ...

  9. 【报告分享】2021上半年移动广告流量观察白皮书-APP GrowingMob研究院七麦数据(附下载)

    摘要:从信息流知名自媒体"三里屯信息流"提供的专业观点中,App Growing发现2021年上半年"互联网流量战"已明显进入存量阶段,在线教育式微,曾经野蛮增 ...

最新文章

  1. 平面分治详解 超级详细(附带例题 最近点对问题(给了题目))(UVA10245,P1257,P1429)
  2. jquery $.post 超时_jQuery介绍
  3. 机器学习里如何确定K-Means算法的K值?
  4. UNITY技巧-查找脚本被哪个场景引用
  5. 用python公众号开书城步骤_资源 | 开放Python书籍:一本短小精悍的初学者入门指南...
  6. hdu_1233(最小生成树)
  7. 链表之删除链表中间节点
  8. matlab各个指令的含义,[MATLAB基础] 求解这段指令的意思,越详细越好,谢谢啦
  9. 如何用计算机装手机系统,如何用手机usb重装电脑系统
  10. mysql5.7bka_mysql5.7的sql优化
  11. SQL Server as(给查询结果指定列名)
  12. 2016级算法期末上机-H.难题·AlvinZH's Fight with DDLs III
  13. ftk学习记(多窗口篇)
  14. Eclipse常用快捷键大全
  15. BAT 解密:一张图概括互联网公司的标准技术架构
  16. python汉化之后好用吗_Python官方中文文档上线了:各种教程已汉化,不用再苦等野生翻译...
  17. 图神经网络——node2vec
  18. 5.3 数值分析: 差商的定义及性质
  19. 随机数公式Random
  20. html5小游戏塔防,HTML5塔防(一)

热门文章

  1. MFC 使用 ADO技术连接Access数据库
  2. 指尖上的Android之实战篇(六)
  3. NLP实战(三)实现拼写纠错
  4. Netty权威指南带目录完整版.pdf
  5. CPT302多代理人系统 个人笔记
  6. 常见Json技术对比及详解
  7. AMD显卡玩英雄联盟黑屏卡屏掉驱动解决方法
  8. pandas in python
  9. 从零开始的嵌入式Linux生活(一) 背景介绍
  10. 文字与图片渐变效果(图层CALayer与属性蒙版mask )