Задать вопрос
soulilya
@soulilya
Культурный, утонченный и изысканный.

Реверс ижиниринг. Как найти недостающий модуль в приложении на elektron?

Доброго дня. Хочу зареверсить приложение на электоне. Как оно работает я и так понимал без исходников, просто не могу понять некоторые запросы через вебсокеты. Чтобы это понять я распаковал asar файл и восстановил по source map исходники. Но вот как раз модуля который отвечает за запросы (за payload) его там нет, ни в обфусцированном коде.
Ну то есть вижу в сурсах
import {getModel} from '@/models/Products';
Но в узлах приложения на vue этого модуля нет (папка models файл Products). Хотя другие модули присутствуют.
Вебпак файлов типа tsconfig.js или webpack.config.js нету в сурсах, только module.js файл.

Есть у кого есть идеи где модуль искать?) Не может же его там не быть?
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
@alex1nd
Доброго дня!

Это может быть одной из тех ситуаций, когда модуль не включен в основной код из-за нескольких возможных причин. Вот несколько идей, которые могут помочь:

Lazy loading (отложенная загрузка модулей): Возможно, этот модуль загружается динамически, когда он действительно нужен. В Electron и Vue.js часто используют такую технику для оптимизации. Проверьте код на наличие таких методов, как import(), которые динамически загружают модули.

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

Внешние зависимости: Возможно, этот модуль подтягивается из внешнего пакета. Проверьте package.json на наличие зависимостей, которые могут содержать нужный вам код. Иногда модули могут быть установлены через NPM или Yarn, но не находиться в самом проекте.

Bundle-файлы: Модуль может быть спрятан внутри какого-то bundle-файла, собранного вебпаком или другим бандлером. Вы упомянули, что tsconfig.js или webpack.config.js нет, но возможно, этот бандл существует в скомпилированном виде. Попробуйте исследовать большие скомпилированные js-файлы, чтобы найти следы импорта модуля.

Изоляция кода (sandbox): Иногда модули могут быть помещены в "песочницу" или изолированы от основного приложения. Проверьте, используется ли технология, которая могла бы выполнять код в изолированном окружении, что может скрывать или защищать его.

Electron API и дополнительные модули: Возможно, этот модуль работает на уровне API Electron. Проверьте, не реализован ли этот код на нативных модулях или как часть сторонних библиотек.

Если удастся выявить дополнительные детали (например, часть вызова к вебсокетам), это может помочь дальше в исследовании.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы