返回列表 发布新帖

[代码] 非常入门级别的,刺猬猫免费章节JS解密

139 0
发表于 5 天前 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
相关章节请求:
https://www.ciweimao.com/chapter/ajax_get_session_code

https://www.ciweimao.com/chapter/get_book_chapter_detail_info
首先一眼丁真找到js:https://www.ciweimao.com/resources/js/book-read-min.js
简单的aes,写就对了:
移植到python:
  1. import requests
  2. import base64
  3. from Crypto.Cipher import AES

  4. headers = {
  5.     "referer": "https://www.ciweimao.com/chapter/xxx",
  6. }

  7. def decrypt_content(content, keys, access_key):
  8.     t = len(keys)
  9.     m = len(access_key)
  10.    
  11.     k = []
  12.     k.append(keys[(ord(access_key[m - 1]) % t)])
  13.     k.append(keys[(ord(access_key[0]) % t)])
  14.    
  15.     n = content
  16.     for i in range(len(k)):
  17.         n = base64.b64decode(n)
  18.         
  19.         p = k[i]

  20.         j = base64.b64encode(n[:16]).decode('utf-8')
  21.         f = base64.b64encode(n[16:]).decode('utf-8')
  22.         cipher = AES.new(
  23.             base64.b64decode(p),
  24.             AES.MODE_CBC,
  25.             iv=base64.b64decode(j)
  26.         )
  27.         
  28.         n = cipher.decrypt(base64.b64decode(f))

  29.         if i < len(k) - 1:
  30.             n = base64.b64encode(n).decode('utf-8')
  31.             n = base64.b64decode(n)
  32.         else:
  33.             padding_length = n[-1]
  34.             n = n[:-padding_length]
  35.    
  36.     return n.decode('utf-8')

  37. def get_chapter_content(chapter_id):
  38.     s = requests.Session()

  39.     url = "https://www.ciweimao.com/chapter/ajax_get_session_code"
  40.     data = {"chapter_id": chapter_id}
  41.    
  42.     try:
  43.         response = s.post(url, headers=headers, data=data)
  44.         chapter_access_key = response.json()['chapter_access_key']
  45.     except Exception as e:
  46.         return None
  47.     url = "https://www.ciweimao.com/chapter/get_book_chapter_detail_info"
  48.     data = {
  49.         "chapter_id": chapter_id,
  50.         "chapter_access_key": chapter_access_key
  51.     }
  52.    
  53.     try:
  54.         response = s.post(url, headers=headers, data=data)
  55.         print(response.text)
  56.         result = response.json()
  57.         chapter_content = result['chapter_content']
  58.         encryt_keys = result['encryt_keys']
  59.         decrypted_content = decrypt_content(chapter_content, encryt_keys, chapter_access_key)
  60.         return decrypted_content
  61.         
  62.     except Exception as e:
  63.         return None

  64. if __name__ == "__main__":
  65.     chapter_id = "111446252"
  66.     content = get_chapter_content(chapter_id)
  67.    
  68.     if content:
  69.         print("解密成功!")
  70.         print(content)
  71.     else:
  72.         print("获取内容失败")
复制代码



凌霜一剑冷,零雁几声秋

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

ysqbbs@outlook.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加QQ群
Copyright © 2001-2025 源社区 版权所有 All Rights Reserved.
关灯 在本版发帖
扫一扫添加QQ群
返回顶部
快速回复 返回顶部 返回列表