python某漫画app逆向


Posted in Python onMarch 31, 2021

一工具的准备

1.fiddler抓包工具 ,夜神模拟器
2.python环境,Java环境
3.漫画app准备
4.java反编译工具

二项目思路

配置好抓包工具和夜神模拟器
豆瓣夹下载漫画applink.
安装到夜神模拟器
python某漫画app逆向

抓取app数据
python某漫画app逆向

解析抓取的数据:
post请求
变化的参数client-time, client-sign
client-time 比较明显是时间戳
client-sign 是加密数据
python某漫画app逆向

client_type = 'android'
app_devicetoken = "e571dd8bd67803995b9bdcfefb58662b"
phone_mark = "58D83850AA58CCB094954B30F9C4D3C4"
client_time = str(int(time.time() * 1000))

解析app
将apk安装包后缀修改为rar, 解压压缩包得到app对应文件
python某漫画app逆向

python某漫画app逆向
得到Java的classes文件
对获取的classes.dex进行反编译,工具可以自行查找,或者沟通群获取
将classes.dex 移动到解析的文件夹
进入windows powershell cd 到反编译的文件夹
执行命令 .\d2j-dex2jar.bat .\classes.dex
得到 classes-dex2jar.jar 文件 这个就是java的源代码了
python某漫画app逆向
python某漫画app逆向
python某漫画app逆向

python某漫画app逆向
将代码拖动到你的java反编译器 JD-GUI
就能得到全部的java代码python某漫画app逆向
python某漫画app逆向

搜索对应的加密参数:client-sign
确定生成client-sign 为b.class 打开对应文件
找到数据的加密规则
原来加密的方式是md5
加密的数据是由时间戳来决定的
python某漫画app逆向
python某漫画app逆向
python某漫画app逆向

content = '3.0.1' + client_type + str(client_time) + app_devicetoken + phone_mark + "0" + "" + "{54563A97-2BBA-7F31-D4C1-8EF72F4A98E6}"
client_sign = hashlib.md5(content.encode("utf-8")).hexdigest()

确定请求头的全部参数

headers = {
    'client-ver': '3.0.1',
    'client-type': client_type,
    'client-time': str(client_time),
    'phone-mark': phone_mark,
    'app-devicetoken': app_devicetoken,
    'sina-uid': '0',
    'sina-token': '',
    'VREADREFER': 'vmh_client',
    'client-sign': client_sign,
    'Cache-Control': 'no-cache',
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
    'Content-Length': '223',
    'Host': 'api.manhua.weibo.com',
    'Connection': 'Keep-Alive',
    'Accept-Encoding': 'gzip',
    'User-Agent': 'okhttp/3.8.0',

}

需要传递的参数

data = "client_ver=3.0.1&client_type={}&client_time={}&phone_mark={}&app_devicetoken={}&sina_uid=0&sina_token=&client_sign={}".format(client_type, client_time, phone_mark, app_devicetoken, client_sign)

三简易代码提供参考

内容涉及该app, 只限技术探讨

扣扣群获取编译工具:731685275
import requests
import time
import hashlib
import os


client_type = 'android'
app_devicetoken = "e571dd8bd67803995b9bdcfefb58662b"
phone_mark = "58D83850AA58CCB094954B30F9C4D3C4"
client_time = str(int(time.time() * 1000))
content = '3.0.1' + client_type + str(client_time) + app_devicetoken + phone_mark + "0" + "" + "{54563A97-2BBA-7F31-D4C1-8EF72F4A98E6}"
client_sign = hashlib.md5(content.encode("utf-8")).hexdigest()
headers = {
    'client-ver': '3.0.1',
    'client-type': client_type,
    'client-time': str(client_time),
    'phone-mark': phone_mark,
    'app-devicetoken': app_devicetoken,
    'sina-uid': '0',
    'sina-token': '',
    'VREADREFER': 'vmh_client',
    'client-sign': client_sign,
    'Cache-Control': 'no-cache',
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
    'Content-Length': '223',
    'Host': 'api.manhua.weibo.com',
    'Connection': 'Keep-Alive',
    'Accept-Encoding': 'gzip',
    'User-Agent': 'okhttp/3.8.0',

}
data = "client_ver=3.0.1&client_type={}&client_time={}&phone_mark={}&app_devicetoken={}&sina_uid=0&sina_token=&client_sign={}".format(client_type, client_time, phone_mark, app_devicetoken, client_sign)


def parse_data(url):
    response = requests.post(url, headers=headers, data=data).json()
    page_list = response["data"]["chapter_list"]
    for x in page_list:
        page_url = "http://api.manhua.weibo.com/client/comic/show?comic_id=68236/client/comic/play?chapter_id={}".format(x["chapter_id"])
        dir_name = r"漫画\\" + x["chapter_name"]
        page_data = requests.post(page_url, headers=headers, data=data).json()["data"]["json_content"]["page"]
        y = 0
        for i in page_data:
            if not os.path.exists(dir_name):
                os.makedirs(dir_name)
            result = requests.get(i["mobileImgUrl"]).content
            path = dir_name + "\\" + str(y) + ".jpg"
            with open(path, "wb")as f:
                f.write(result)
                print("正在下载", path)
            y += 1


def main():
    url = "http://api.manhua.weibo.com/client/comic/show?comic_id=68236"
    parse_data(url)


if __name__ == '__main__':
    main()
Python 相关文章推荐
python 正则表达式 概述及常用字符
May 04 Python
Python解析网页源代码中的115网盘链接实例
Sep 30 Python
Python的subprocess模块总结
Nov 07 Python
Python线程的两种编程方式
Apr 14 Python
调试Python程序代码的几种方法总结
Apr 28 Python
python网络编程之文件下载实例分析
May 20 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
Python3实现建造者模式的示例代码
Jun 28 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
如何用python 操作zookeeper
Dec 28 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
python爬虫--selenium模块
Mar 31 #Python
【超详细】八大排序算法的各项比较以及各自特点
pandas 操作 Excel操作总结
Mar 31 #Python
字典算法实现及操作 --python(实用)
如何利用python和DOS获取wifi密码
python爬虫selenium模块详解
Mar 30 #Python
python将图片转为矢量图的方法步骤
Mar 30 #Python
You might like
PHP $_SERVER详解
2009/01/16 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
理解Javascript闭包
2013/11/01 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python实现人民币大写转换
2018/06/20 Python
Python Pillow Image Invert
2019/01/22 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
Python获取时间戳代码实例
2019/09/24 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
python ftplib模块使用代码实例
2019/12/31 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
大学生创业计划书的用途
2014/01/08 职场文书
网络书店创业计划书
2014/02/07 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
班风学风建设方案
2014/05/06 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers