Всем доброго времени суток, сегодня хотелось бы поговорить на такую тему, как запакованные файлы Nodejs.
Что же они из себя представляют? Это почти идентично тому, что выполняют компилированные языки программирования по типу, Golang, C, C++
Дабы разобраться, что к чему, стоит уделить внимание тому, кто и зачем делает такие проекты, а уже потом разбираться, как это делать.
В осовном делают эту "упаковку" для того, чтобы сделать приложение кросс-платформенным, ведь после данных манипуляций, приложение становится доступно на: MacOS, Linux, Windows, так что, это делают для этого. Так же, стоит не отбрасывать факт, что это производят чтобы скрыть сам исходный код.
Кто хоть как-то связан с миром DDoS'a скорее всего видел подобные методы, бинарный файл без расширения. Но, не старайтесь его запускать, ведь сама суть упаковки этого файла может крыться не только в сокрытие исходного кода, но и внедрения "Backdoor" для получения информации о ваших, например, данных или просто на просто получить доступ к серверу где запускался сам файл.
Как все это происходит? Для этого нужно: иметь зависимость PKG на своем сервере или ПК, да, и все.
Для начала работы нам потребуется установить зависимость, чтобы это сделать откройте терминал и пропишите: npm install -g pkg
После этого, стоит убедиться, что все установилось без каких-либо ошибок. Пропишите в терминале pkg -v
Далее, необходим сам проект который нужно "скомпилировать"
В пример создадим самый банальный и простой код.
console.log('test pkg');
Даем название файлу и переходим в консоль. Переходим в каталог где находится файл и прописываем данную команду - pkg -t node16 you_file.js
Происходит компиляция файла и на выходе у вас будет 3 файла(как раз под винду, макос и линукс) Запускаем и проверяем.
Вот так просто можно реализовать компиляцию nodejs файлов.
Но, теперь возникает вопрос, как не нарваться на дебилов которые вшивают в такие скрипты эксплоитты и тому подобное?
Для этого можно сделать Реверс.
Конечно, на выходе мы не получим полный исходный код, но все-таки он получится более менее читабельным.
Для реверса ПКГ создана утилита, так же написанная на JS, pkg-unpacker (https://github.com/LockBlock-dev/pkg-unpacker?ysclid=lgmq18jyno71271327)
В данном репозитории указаны команды под каждый вид Операционной системы.
Далее, после того как мы получаем уже JS файл из самого бинарника, мы можем более менее прочитать сам код и составлять его по кусочкам. К сожалению, полной декомпиляции данного формата нет, но пока-что есть такой метод. Так же, можно обратиться к онлайн ресурсам которые помогают выполнять деассембляцию файлов подобного формата.
Народный ОПТ - Работаем для народа!
Работа в SanchezRick2414 от 1400р/клад! Вся РФ! | SanchezRick2414 на KRAKEN!
DarkTalk - территория инноваций
Что же они из себя представляют? Это почти идентично тому, что выполняют компилированные языки программирования по типу, Golang, C, C++
Дабы разобраться, что к чему, стоит уделить внимание тому, кто и зачем делает такие проекты, а уже потом разбираться, как это делать.
В осовном делают эту "упаковку" для того, чтобы сделать приложение кросс-платформенным, ведь после данных манипуляций, приложение становится доступно на: MacOS, Linux, Windows, так что, это делают для этого. Так же, стоит не отбрасывать факт, что это производят чтобы скрыть сам исходный код.
Кто хоть как-то связан с миром DDoS'a скорее всего видел подобные методы, бинарный файл без расширения. Но, не старайтесь его запускать, ведь сама суть упаковки этого файла может крыться не только в сокрытие исходного кода, но и внедрения "Backdoor" для получения информации о ваших, например, данных или просто на просто получить доступ к серверу где запускался сам файл.
Как все это происходит? Для этого нужно: иметь зависимость PKG на своем сервере или ПК, да, и все.
Для начала работы нам потребуется установить зависимость, чтобы это сделать откройте терминал и пропишите: npm install -g pkg
После этого, стоит убедиться, что все установилось без каких-либо ошибок. Пропишите в терминале pkg -v
Далее, необходим сам проект который нужно "скомпилировать"
В пример создадим самый банальный и простой код.
console.log('test pkg');
Даем название файлу и переходим в консоль. Переходим в каталог где находится файл и прописываем данную команду - pkg -t node16 you_file.js
Происходит компиляция файла и на выходе у вас будет 3 файла(как раз под винду, макос и линукс) Запускаем и проверяем.
Вот так просто можно реализовать компиляцию nodejs файлов.
Но, теперь возникает вопрос, как не нарваться на дебилов которые вшивают в такие скрипты эксплоитты и тому подобное?
Для этого можно сделать Реверс.
Конечно, на выходе мы не получим полный исходный код, но все-таки он получится более менее читабельным.
Для реверса ПКГ создана утилита, так же написанная на JS, pkg-unpacker (https://github.com/LockBlock-dev/pkg-unpacker?ysclid=lgmq18jyno71271327)
В данном репозитории указаны команды под каждый вид Операционной системы.
Далее, после того как мы получаем уже JS файл из самого бинарника, мы можем более менее прочитать сам код и составлять его по кусочкам. К сожалению, полной декомпиляции данного формата нет, но пока-что есть такой метод. Так же, можно обратиться к онлайн ресурсам которые помогают выполнять деассембляцию файлов подобного формата.
Народный ОПТ - Работаем для народа!
Работа в SanchezRick2414 от 1400р/клад! Вся РФ! | SanchezRick2414 на KRAKEN!
DarkTalk - территория инноваций