某某漫画平台逆向分析

查看 62|回复 2
作者:buluo533   
音乐爬虫完成了,来做一个漫画爬虫{:1_918:}
先放一个地址:aHR0cHM6Ly93d3cubWlhb3F1bWgub3JnLw==
然后开始分析步骤:wwqwq


1.png (756.86 KB, 下载次数: 0)
下载附件
2024-11-23 15:42 上传



2.png (98.12 KB, 下载次数: 0)
下载附件
2024-11-23 15:42 上传

先随便找个漫画打开开发者工具看一下,这个图片都是有一个看着像加密的后缀,不是可以一般的找规律去请求的
我们看看图片的请求堆栈呢


4.png (42 KB, 下载次数: 0)
下载附件
2024-11-23 15:46 上传

直接跟进去打个断点


3.png (95.17 KB, 下载次数: 0)
下载附件
2024-11-23 15:46 上传

刷新一下浏览器


5.png (144.75 KB, 下载次数: 0)
下载附件
2024-11-23 15:49 上传

非常惊喜的发现所有图片的真实地址就在这里,我们看看作用域,这个newImgs是哪里来的


6.png (111.58 KB, 下载次数: 0)
下载附件
2024-11-23 15:51 上传

本地没有找到,是在全局作用域发现的,可以网上看看代码


7.png (197.68 KB, 下载次数: 0)
下载附件
2024-11-23 15:52 上传

发现就在他的上方,newImgs是通过decryptData函数传入DATA参数产生
[JavaScript] 纯文本查看 复制代码
var newImgs = decryptData(DATA)
下断点后重新刷新页面,发现DATA 是一个加密参数,decryptData是解密函数,我们跟进去看看decryptData是怎么实现的


8.png (230.9 KB, 下载次数: 0)
下载附件
2024-11-23 15:57 上传

是一段混淆代码,慢慢来瞅瞅啥玩意儿(大佬提醒了一下是魔改的ob混淆,修正一下,我选择用抠代码实现)
慢慢下断点看看
首先
[color=]_0x4233
是一个函数,也可以跟进去看一下,将_0x4233这个函数赋值给了
[color=]_0x10c7de


9.png (214.42 KB, 下载次数: 0)
下载附件
2024-11-23 16:11 上传

[color=]_0x5caa61
是一个对象,里面有多个对象通过
[color=]_0x10c7de
函数实现值,同时包含多个自定义函数,可以简单读一下就会发现这个就是vmp的核心
_0x5caa61对象中的内容是定值,我们继续分析后面的内容


10.png (116.78 KB, 下载次数: 0)
下载附件
2024-11-23 19:52 上传

继续下断调试,发现
[color=]_0x5901db
是一个数组,
[color=] _0x8b2dee
是一个字符串,
[color=]_0xdb71bf
是数字8,
[color=]_0x2c8553
是调用对象中的函数
[color=]FOitP
对需要解密的函数利用atob函数进行解码,
[color=]_0x374bab
是一个空字符串


11.png (422.86 KB, 下载次数: 0)
下载附件
2024-11-23 19:59 上传

接下来这一段代码就是加密的核心,我们可以看到很熟悉的
[color=]_0x10c7de函数,
[color=]_0x5caa61对象
[JavaScript] 纯文本查看 复制代码
for (let _0x1accd3 = 0x0; _0x1accd3
我们把断点继续放进去,然后替换掉定值,可以得到以下下代码:
[JavaScript] 纯文本查看 复制代码
function decryptData(_0x515a62) {
         _0x5caa61 = {
        'KgRhu': "OC1iWGQ5aU4=",
        'cgCzU': "OC00Wlk1N1U=",
        'KZOsE': "OC02TU0yRWk=",
        'OJFwP': 'OC01NFRpUXI=',
        'Hnbwl': 'OC1QaDV4eDk=',
        'kPQrm': "OC00Wlk1N1U=",
        'qhdhc': function(_0x4b8d86, _0x170516) {
            return _0x4b8d86 % _0x170516;
        },
        'FOitP': function(_0xcf1c19, _0x455a23) {
            return _0xcf1c19(_0x455a23);
        },
        'viPVT': function(_0x277ac8, _0x2fa41e) {
            return _0x277ac8 ^ _0x2fa41e;
        },
        'NAbqC': function(_0x430840, _0x554993, _0x537232) {
            return _0x430840(_0x554993, _0x537232);
        }
    };
    let _0x5901db = ["OC1iWGQ5aU4=", "OC1SWHlqcnk=", "OC1vWXZ3Vnk=", "OC00Wlk1N1U=", "OC1tYkpwVTc=", "OC02TU0yRWk=", "OC01NFRpUXI=", "OC1QaDV4eDk=", "OC1iWWdlUFI=", "OC1aOUEzYlc="]
      , _0x8b2dee = "8-6MM2Ei"
      , _0xdb71bf = 8
      , _0x2c8553 = _0x5caa61['FOitP'](atob, _0x515a62)
      , _0x374bab = '';
    for (let _0x1accd3 = 0x0; _0x1accd3
然后运行会缺少
[color=]utf8_char_code_at
函数我们跟进去看看


12.png (48.36 KB, 下载次数: 0)
下载附件
2024-11-23 20:05 上传

非常熟悉的一个代码
[color=]_0x4233
赋值给
[color=]_0x50b356
,用
[color=]_0x50b356
函数进行处理,这样我们换掉定值扣下来这部分代码:
[JavaScript] 纯文本查看 复制代码
function utf8_char_code_at(_0x1f5ebe, _0x53220e) {
    let _0x451daf = _0x1f5ebe["charAt"](_0x53220e);
    return _0x451daf['charCodeAt'](0x0);
}
大致就是这些,感觉找个有点小bug,总是多几个非法字符,请教大佬{:1_919:}
同时给一个
[color=]之前做的一个多线程漫画爬虫
,给大佬们借鉴python部分思路{:1_889:}
[Python] 纯文本查看 复制代码
import requests
import time
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor
import os
import re
def download_picture(url, count, title):
    print(f'----->{title}开始下载第{batch}批漫画下载开始开始获取漫画链接a')
    for i in url_list:
        url = 'https://doupo.935666.xyz' + i.get('href')
        title = i.text
        title_dic[url] = title
    print('----->漫画链接获取完成 total: {total} workers: {MAX_WORKERS} count: {batch}')
    urls = [i for i in dic_all.keys()]
    with ThreadPoolExecutor(max_workers=MAX_WORKERS) as t:
        for i in range(0, batch):
            batchUrls = urls[i * MAX_WORKERS:(i + 1) * MAX_WORKERS]
            t.submit(get_mic_url, batchUrls, i)
学校事情有点多,一直没来得及更新{:1_923:},想看漫画里,动手玩一下

下载次数, 函数

jjyyqwery   


buluo533 发表于 2024-11-23 20:55
学到了,大佬

VMP长这样:
如何使用AST还原某音的jsvmp
https://www.52pojie.cn/thread-1752755-1-1.html
(出处: 吾爱破解论坛)
wild12   

emmm其实这个不叫vmp,这个是Obfuscator魔改的jsjiami.v7(俗称ob混淆)
您需要登录后才可以回帖 登录 | 立即注册

返回顶部