21 / 29 / 2
Регистрация: 04.12.2013
Сообщений: 263
|
|
1 | |
Запуск приложения из ресурсов (без распаковки на диск)03.09.2014, 09:01. Показов 6880. Ответов 12
Метки нет (Все метки)
Добрый день всем!
Возникла необходимость запуска стороннего приложения, в формате exe-фала. Причем надо сделать так, чтобы данный сторонний файл на диске не сохранялся. Зачем это мне нужно. Все просто. Есть желание разобраться в защите программ и когда-нибудь написать shareware-программу, защитив ее на определенное время от взлома и распространения. Методик на эту тему много: от подсчета crc файла, до шифрования кусков кода и выполнение их по мере необходимости. Можно использовать и все вместе. Погуглив на эту тему я понял, что толкового решения для Builder C++ нет. Все советуют или использовать сторонние утилиты (ExeCriptor, ASPProtect и т.д.) или реализовывать облачное выполнение. Облачное выполнение для большей части фрилансеров вещь довольно дорогая и не совсем понятная в реализации. Поэтому решил шифровать части (функции) своего приложения. Подумав на эту тему, пришел к выводу, что можно сделать несколько ехе-фалов, которые будут выполнять свою часть функционала, а эти ехе-файлы добавить в ресурсы. Конечно защита будет не очень сложная, но для большинства программистов, со стоимостью их программ в 1000 - 2000 руб. вполне пригодное. Создал несколько ехе-фалов, которые выводят просто окна-сообщения. Создал основное приложение, добавив в его ресурсы эти самые ехе-фалы. Теперь возник вопрос: как запустить выполнение ехе файла из ресурсов? Ведь просто сохранять файл на диск, а потом его запускать, будет глупостью несусветной, ибо ничто не мешает этот файл с диска просто сохранить в другую папку и все. Следовательно надо запускать файл без сохранения его на диске. Попутный вопрос: может я вообще не то реализую и есть какие-то способы проще?
0
|
03.09.2014, 09:01 | |
Ответы с готовыми решениями:
12
Запуск exe из ресурсов без распаковки на диск Запуск исполняемого файла из ресурсов без распаковки на диск Запуск exe из ресурсов без распаковки Запуск приложения из ресурсов |
04.09.2014, 17:42 | 2 |
3
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
28.06.2017, 20:42 | 3 |
Приветствую всех. Заинтересовала эта тема. В функции
CreateFile необходимо указывать путь к файлу. В случае создания "временного" временного файла что указывать в параметре lpFileName ?
0
|
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
|
|
03.07.2017, 13:17 | 4 |
Смотри здесь https://github.com/codecrack3/... /RunPE.cpp
0
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
03.07.2017, 20:22 | 5 |
ziqp, не увидел применения функции
CreateFile в коде по ссылке. Хотя, наверное, вопрос запуска файла из памяти там раскрыт.И все же. Если обычный исполняемый файл поместить в ресурсы приложения, то как его оттуда запустить используя функцию CreateFile и без сохранения на диск?
0
|
138 / 138 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
03.07.2017, 20:53 | 6 |
эта функция только с файлами и работает.
сделать всё, что обычно делает загрузчик - установить правильный протект памяти для всех секций, настроить релоки, разрешить импорт, выполнить tls коллбэки, если есть и затем точку входа. (минимум) эта техника - довольно таки высший пилотаж. если желание очень сильное - гуглить ManualMapping и изучать структуру PE заголовка. но я всё таки советую ограничиться выгрузкой временного файла на диск.
1
|
03.07.2017, 21:07 | 7 |
А как вам вы хотите что бы ответили, так что бы вы прекратили задавать глупые вопросы и все же вникли в то что вам отвечают?
Очевидно то что ответил BRcr не является прямом ответом на поставленный вопрос ибо подразумевают выгрузку файла из ресурсов на диск и запуск его с диска.Просто используется временный файл. По крайней мере это то что я понял. А вот ответ ziqp, интересен. (Хотя лично сомневаюсь что там рабочий код) Добавлено через 6 минут Да только тогда возникает вопрос нафига экзе тогда пихать в ресурсы.
0
|
Ушел с форума
|
|
03.07.2017, 21:45 | 8 |
+1
В последних Windows столько всего наворотили, что сделать качественный PoC на тему "load exe from memory", который был бы для системы неотличим от "нормального" exe, - задача практически нереальная. Такие вещи только для мелких трюков типа выполнить 20 байт и быстро завершиться, пока все не грохнулось.
0
|
Ушел с форума
|
|
03.07.2017, 21:53 | 10 |
О, да!
Но мне как-то показывали один трюк, который работает в том числе и на последних версиях Windows - сохранить exe-файл в NTFS-поток, а затем запустить его оттуда. После чего поток можно удалять. Все никак руки не дойдут поковырять этот способ (например, куда будут выгружаться страницы памяти при нехватке ресурсов?)
0
|
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
|
|
08.07.2017, 19:35 | 11 |
Не совсем понял что такое PoC..
Но сам давно пользуюсь запуском файла в памяти в моем проекте. Если в проекте парочка форм, кнопочки и запуск файла в памяти на кнопку, а не автоматически, то антивирям всеравно. Конечно, это не тот код, который я привел выше. В своем я делаю массив из байтов памяти, складываю и запускаю в памяти
0
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
08.07.2017, 21:57 | 12 |
0
|
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
|
||||||||||||||||
09.07.2017, 20:47 | 13 | |||||||||||||||
h файл с функцией:
Минус метода в том, что слишком большой образ не скомпилируется
2
|
09.07.2017, 20:47 | |
09.07.2017, 20:47 | |
Помогаю со студенческими работами здесь
13
Запуск приложения из ресурсов, переименование окна Как скопировать файл на диск из ресурсов приложения? Хранение ресурсов приложения без БД Запуск .exe из приложения (не извлекая его на жёсткий диск) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|