Обратный анализ Jingdong h5st4.7
Обратный анализ Jingdong h5st4.7

заявление

Весь контент в этой статье предназначен только для обучения и общения, а не для каких-либо других целей. Полный код не предоставляется. Содержимое захвата пакетов, конфиденциальные URL-адреса, интерфейсы данных и т. д. были десенсибилизированы и строго запрещены для коммерческих и незаконных целей. В противном случае все последствия, вытекающие из этого, не имеют к автору никакого отношения!

Эту статью запрещено перепечатывать без разрешения и распространять после каких-либо изменений. Автор не несет ответственности за любые несчастные случаи, вызванные несанкционированным использованием технологии, описанной в этой статье. В случае каких-либо нарушений, пожалуйста, свяжитесь с автором. в публичном аккаунте [K Brother Reptile], чтобы немедленно удалить его!

Предисловие

В последнее время Dongdong также постоянно проходит техническое обслуживание и модернизацию. h5st параметр, Причина в том, что постепенно ВМПизация,прибыл сейчас 4.7 Версия сейчас относительно стабильна, поэтому давайте ее проанализируем.

обратная цель

Цель: Что-то h5st 4.7 параметр Обратный анализ

Веб-сайт: aHR0cHM6Ly93d3cuamQuY29tLw==

анализ процесса

Давайте сначала захватим пакет и проанализируем его. Если мы найдем интерфейс с параметром h5st, мы сможем напрямую увидеть его версию:

Есть еще один x-api-eid-token. Это токен контроля рисков. Сгенерированное местоположение выглядит следующим образом:

Он также возвращается интерфейсом. Параметры a и d генерируются большим количеством информации о среде браузера и отпечатках пальцев. Я не буду здесь их подробно анализировать. Давайте сначала посмотрим на параметры h5st. подробно.

Обратный анализ

Чтобы найти место создания параметров h5st, вы можете напрямую выполнить поиск по Дафа или найти стек, чтобы быстро найти сгенерированное местоположение:

Следуйте за стеком:

Можно обнаружить, что он передал colorParamSign в асинхронную функцию window.PSign.sign, и возвращаемый результат имеет параметр h5st:

Возьмите начало параметра запроса,Затем colorParamSign из body Это параметр запроса перед Воляизом. body пройти SHA256 Никаких волшебных модификаций для шифрования и тестирования не существует, мы можем просто установить библиотеку напрямую.

Нажмите, чтобы войти window.PSign.sign Это здесь, в функции VMP Файл, также главныйиз Шифровать файлы:

Взгляните поближе,Откройте для себя шифрование Воля из основного процесса,И большинство функций шифрования и з были VMP-ифицированы.,Однако он оставляет немало характерных моментов:

  • Способ первый:

Мы доступны во всех случаях vmp Операция из call Установите точку останова журнала в позиции из.,провести анализ,Но есть еще точки журнала,Не рекомендуется.

  • Способ второй:

По характерным точкам осталось,На ключе из функции шифрования из позиции,Анализ точек останова,Вы можете увидеть открытый текст входящегоиз.,Вы также можете увидеть зашифрованный зашифрованный текст,Можно сэкономить много времени. Давайте найдем некоторые распространенные функции шифрования CryptoJS., AES,SHA, Base64 и т. д.

Почти везде можно найти около 10 мест для шифрования.,Код Операции изфункция,все написано вместе,И формат,Характеристики в основном те же:

входящий Объект для получения экспорта из функции шифрования:

Вы можете обнаружить, что внутри также есть стандарты. ob Режим обфускации, основная функция экспорта шифрования: o функция, первоначально непосредственно o Функция из возвращаемого значения, присвоенная HS Объект, который будет передан позже HS возражать против o Затем функция экспортируется, поэтому HS Объект должен содержать все криптографические функции.

Мы можем взглянуть на выходные данные, найти следующую позицию и отрезать ее. Вот окончательная генерация сращивания. h5st из Расположение:

Затем выведите объект HS:

Нажмите соответствующую функцию шифрования.,Нижняя точка останова,Это сделает его более точнымиззнаю, как это сделать Операция из(На самом деле, точки останова можно ставить на всём)Для удобства я установил только следующие ключевые точки останова::

  • AES
  • Хэш
  • Base64:

После того, как мы сделали повторный запрос, он был отключен на AES:

здесьиз n, a Это должно быть key,iv , некоторые люди могут это не понять, ничего страшного, мы можем это преобразовать:

Язык кода:javascript
копировать
const CryptoJS = require('crypto-js');
var Bytes ={
    words: [1598895705, 1063548518, 1312043094, 1296456536],
    sigBytes: 16
};
var key = CryptoJS.enc.Utf8.stringify(Bytes);
console.log(key);
var Bytes = CryptoJS.enc.Utf8.parse(key);
console.log(Bytes);

Протестируйте и узнайте AES Следуйте стандарту AES Результаты противоречивы. Возможно, магия что-то изменила. Проблема невелика. Продолжим спускаться.

Воля AES Результаты шифрования осуществляются Base64 Кодируя (также модифицированную магией), мы можем return из Обрыв:

Продолжать идти:

Давайте посмотрим на стек и введем test Это очевидно из того, как проводить операцию. из:

Тогда я искал это test Как это произошло? request_algo интерфейс Возврат, обратите внимание Функции rd и шифрования являются динамическими.

Единственное, что необходимо детально проанализировать, это expandParams,Это также генерируется с использованием необычной магической модификации шифрования AES.,ключевые значения разные,Открытый текст в основном содержит некоторые экологические ценности.,Можно исправить в первую очередь,Подробного анализа здесь не будет.

Давайте еще раз взглянем на зашифрованное значение, чтобы предотвратить последующие вызовы:

Затем продолжайте идти и остановитесь здесь:

Язык кода:javascript
копировать
'5571a8dda12c510ad1922b90d6b048aba648d9a8c2fc679927fc1e7102520489appid:search-pc-java&body:64ef977e15f853295527f3ce1f15fc980963c43f27c40066d26dd19b542d0bd4&client:pc&clientVersion:1.0.0&functionId:pc_search_s_new&t:17152462710115571a8dda12c510ad1922b90d6b048aba648d9a8c2fc679927fc1e7102520489'
  • Результат шифрования:
Язык кода:javascript
копировать
626bad7f7ebe126bb799ac619409778c8808864ad364bcb3d6a42bfb14af47b7

Если вы внимательно посмотрите на простой текст, то на самом деле это так. выше test Функция генерирует зашифрованные результаты + colorParamSign из сращивания + test Функция генерирует зашифрованные результаты。

Но мы не знаем, какую функцию шифрования он использует. Мы можем использовать. HS Проверьте функции шифрования под объектом одну за другой. Вы также можете поставить точки останова на другие функции шифрования. Возможно, кто-то сможет это напрямую подтвердить. Ха-ха, это было подтверждено. SHA256 Функция шифрования:

Продолжайте идти вниз, и вы дойдете до последнего поколения сплайсинга. h5st параметриз Расположение:

  • е: Просто выше SHA256 Генерация функции шифрования из;
  • t: отметка времени;
  • r : генерируется преобразованием t.
Язык кода:javascript
копировать
function format() {
    var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date.now()
      , t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "yyyy-MM-dd"
      , r = new Date(e)
      , n = t
      , a = {
        "M+": r.getMonth() + 1,
        "d+": r.getDate(),
        "D+": r.getDate(),
        "h+": r.getHours(),
        "H+": r.getHours(),
        "m+": r.getMinutes(),
        "s+": r.getSeconds(),
        "w+": r.getDay(),
        "q+": Math.floor((r.getMonth() + 3) / 3),
        "S+": r.getMilliseconds()
    };
    return /(y+)/i.test(n) && (n = n.replace(RegExp.$1, "".concat(r.getFullYear()).substr(4 - RegExp.$1.length))),
    w_(a).forEach((function(e) {
        if (new RegExp("(".concat(e, ")")).test(n)) {
            var t, r = "S+" === e ? "000" : "00";
            n = n.replace(RegExp.$1, 1 == RegExp.$1.length ? a[e] : j_(t = "".concat(r)).call(t, a[e]).substr("".concat(a[e]).length))
        }
    }
    )),
    n
};
​
​
console.log(format(1715246309293, "yyyyMMddhhmmssSSS"))  // 20240509171829293
  • Н: Это первый раз AES Шифрование для магической модификации Base64 Результат после кодирования;
  • _fingerprint: Вы можете сначала записать его до смерти и сгенерировать алгоритм;
  • _appid: Вы также можете сначала написать его и получить со страницы;
  • _token:request_algo интерфейсвозвращаться。

h5st Параметры были сгенерированы и проанализированы, теперь нам осталось только HS Как получить функцию шифрования под объектом:

Это кажется сложным, но ob Путаница и т. д. На самом деле просто вычесть нормально, чего не хватает, восполнить, об. На самом деле не надо восстанавливать путаницу Просто вручную вычитать Мест для путаницы не так уж и много. 10 Такие из функций имеют одинаковую структуру:

После вычитания выведите HS объект,Вы можете напрямую вызвать функцию шифрования внутри,Уведомление Чтобы убедиться, что результаты шифрования браузера согласованы:

Проверка результата

Уведомление:правильныйиз h5st не появится <Response [403]> из ситуации, 100% Данные можно получить:

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose