Запуск файла из "сборки" с атрибутами

Issues related to VMProtect
ConfuserEx
Posts: 6
Joined: Sun Jul 05, 2020 8:48 am

Запуск файла из "сборки" с атрибутами

Postby ConfuserEx » Sun Jul 05, 2020 9:07 am

Здравствуйте. Возник вопрос. Может ли пользователь сделать привязку запуска исполняемого файла с атрибутами файла из архива? Каким образом это решается?
Ну к примеру мне в моём проекте понадобится выполнить "split" двух файлов, исполняемого и БД. Запускается исполняемый файл по ярлыку, в котором комментарием к наименованию исполняемого файла является наименование добавленного файла.
Executable.exe achive_file.bin

download/file.php?mode=view&id=589


download/file.php?mode=view&id=588

Если такая функция реализуема, то продукт будет весьма интересен для этого проекта.
Attachments
Screenshot_130.png
Screenshot_130.png (14.08 KiB) Viewed 1566 times
Screenshot_129.png
Screenshot_129.png (2.99 KiB) Viewed 1566 times

Admin
Site Admin
Posts: 1912
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Запуск файла из "сборки" с атрибутами

Postby Admin » Sat Jul 11, 2020 7:35 am

Возник вопрос. Может ли пользователь сделать привязку запуска исполняемого файла с атрибутами файла из архива?

Про какой архив идет речь?

ConfuserEx
Posts: 6
Joined: Sun Jul 05, 2020 8:48 am

Re: Запуск файла из "сборки" с атрибутами

Postby ConfuserEx » Tue Jul 21, 2020 1:45 am

Admin wrote:Про какой архив идет речь?

Прошу прощения, возможно неверно выразился. Ждал несколько дней ответ и уже не рассчитывал его получить.
Под архивом я имел в виду скомпилированный файл с защитой.
Меня интересует возможность добавления к примеру двух файлов в архив, исполняемого и файла данных, при том, что после компиляции исполняемый файл должен запускаться с атрибутом имени и расширения файла данных.
К примеру Chess.exe и board.bin.
В результате компиляции необходимо получить исполняемый файл, который помимо содержания защиты, при запуске будет "запускать" файл Chess.exe с атрибутом board.bin.
Т.е. условие компиляции с определённым атрибутом.
Для обычного запуска собранного проекта можно дописать атрибут в окне "Параметры", но это для проверки. А необходимо, чтобы на выходе (после компиляции) получался самостоятельный файл.
К сведению. Сам файл Chess.exe без атрибутированного файла board.bin не выполняется. Только в связке.
Спасибо.
Attachments
Screenshot_234.png
Screenshot_234.png (13.15 KiB) Viewed 1456 times

Admin
Site Admin
Posts: 1912
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Запуск файла из "сборки" с атрибутами

Postby Admin » Tue Jul 21, 2020 6:33 am

При наличии исходников "головного" EXE реализуется достаточно просто. Насколько я понимаю EXE анализирует параметры командной строки на старте. Достаточно предусмотреть вариант "параметр по умолчанию", чтобы менять его в момент обработки VMProtect-ом.

Например:

Code: Select all

#include "VMProtectSDK.h"

int main(int argc, char_t *argv[])
{
   std::string file_name;
   if (argc > 1)
      file_name = argv[1];
   else
      file_name = VMProtectDecryptStringA("%DEFAULT_FILE_NAME%");
   
   printf("File name = %s\n", file_name.c_str());
}


Далее с помощью скрипта в VMProtect меняете "%DEFAULT_FILE_NAME%" на нужное значение:

Code: Select all

function OnBeforeCompilation()
   local functions = vmprotect.core():outputArchitecture():functions()
   
   local string_function = functions:itemByName("string \"%DEFAULT_FILE_NAME%\"")
   if string then
      string_function:item(1):setDump("board.bin" .. string.char(0))
   else
      error("string_function not found")
   end
end

ConfuserEx
Posts: 6
Joined: Sun Jul 05, 2020 8:48 am

Re: Запуск файла из "сборки" с атрибутами

Postby ConfuserEx » Tue Jul 21, 2020 7:46 am

Admin wrote:При наличии исходников "головного" EXE реализуется достаточно просто.

Нет, как раз исходников нет, иначе действительно было бы всё намного проще.

Admin wrote:Насколько я понимаю EXE анализирует параметры командной строки на старте.

Совершенно точно. Без параметров КС никак.

Admin wrote:Достаточно предусмотреть вариант "параметр по умолчанию", чтобы менять его в момент обработки VMProtect-ом.

Этот вариант можно предусмотреть при наличии исходников?
Подскажите пожалуйста, есть ли у меня возможность обойтись малой кровью и вставить к примеру в
проект один скрипт перед компиляцией или ещё какой-нибудь вариант?

Вообще запутался с этими двумя полями кода. Можно пожалуйста поподробнее? Большое спасибо за оперативность. :wink:

Admin
Site Admin
Posts: 1912
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Запуск файла из "сборки" с атрибутами

Postby Admin » Tue Jul 21, 2020 8:43 am

Нет, как раз исходников нет, иначе действительно было бы всё намного проще.

А куда они делись, если не секрет? :))
Этот вариант можно предусмотреть при наличии исходников?

Я про них и писал.
Подскажите пожалуйста, есть ли у меня возможность обойтись малой кровью и вставить к примеру в
проект один скрипт перед компиляцией или ещё какой-нибудь вариант?

Прошу обратить особое внимание на то, что лицензия на наше программное обеспечение не предусматривает использование, при котором ущемляются права третьих лиц (например если вы не являетесь автором "головного" EXE и используете его нелегально). Поэтому такие вопросы на форуме по "защите ПО" выглядят несколько странно.
Вообще запутался с этими двумя полями кода. Можно пожалуйста поподробнее?

Первый кусок - это пример реализации "головного" EXE, второй - скрипт для VMProtect, который может менять "шаблон" внутри EXE на нужное значение (в данном случае на "board.bin").

ConfuserEx
Posts: 6
Joined: Sun Jul 05, 2020 8:48 am

Re: Запуск файла из "сборки" с атрибутами

Postby ConfuserEx » Tue Jul 21, 2020 11:55 am

Admin wrote:А куда они делись, если не секрет? :)).

Так там свободно распространяемое ПО. Я не разработчик исполняемого файла :)) Только board.bin :D

Admin wrote:Я про них и писал.

Тогда это не мой вариант :oops:

Admin wrote:Прошу обратить особое внимание на то, что лицензия на наше программное обеспечение не предусматривает использование, при котором ущемляются права третьих лиц (например если вы не являетесь автором "головного" EXE и используете его нелегально). Поэтому такие вопросы на форуме по "защите ПО" выглядят несколько странно.

Так это не только лицензия на ваше ПО не предусматривает, а законодательство страны (если это конечно не Китай) :lol:[/quote]
Тут всё абсолютно легально, да и обсуждать это публично в данной ветке я думаю не стоит, вне зависимости от способа применения ПО.

Admin wrote:Первый кусок - это пример реализации "головного" EXE, второй - скрипт для VMProtect, который может менять "шаблон" внутри EXE на нужное значение (в данном случае на "board.bin").

Большое спасибо за подробное пояснение. Сейчас более менее понял какая часть кода к чему относится. Я это и предполагал, но уверенности не было.

А что по поводу моего вопроса? Если я могу дописать в параметрах board.bin, то как я могу записать аналогичную функцию в качестве скрипта для компиляции файла с защитой, который будет при запуске также обрабатывать подтяжку бинарника к исполняемому файлу?
Благодарю за ответ.
P.S. Возможно ли это и если да, то как это реализовать? Я просто пытался, пробовал, тыкался, перечитал мануал (но там очень сжато, а про это вообще нет), попробовал Файлы--Действие.........но там видимо не те действия, которые мне нужны.

ConfuserEx
Posts: 6
Joined: Sun Jul 05, 2020 8:48 am

Re: Запуск файла из "сборки" с атрибутами

Postby ConfuserEx » Tue Jul 21, 2020 10:00 pm

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

Admin
Site Admin
Posts: 1912
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Запуск файла из "сборки" с атрибутами

Postby Admin » Wed Jul 22, 2020 3:26 pm

Поправьте меня если я не прав, но я не думаю что это возможно сделать скриптом.

Господа, скрипт работает только на этапе компиляции в VMProtect, он для это и был сделан.
Мне тоже будет интересно узнать, существует ли такая возможность, но шансы на надежду уменьшаются в связи с тем, что уважаемый гуру начал не с самых простых способов, а с перекраивания исходников исполняемого файла.

Обратите внимание, что наш продукт предназначен для разработчиков программного обеспечения, и, как правило, у разработчиков есть исходники того, что они пытаются защитить с помощью нашего инструмента. К слову сказать "перекраивание исходников" был как раз самым простым способом. Из более сложных способов (если исходников программы нет) - на этапе компиляции в VMProtect можно "пропатчить" код EXE, который работает с командной строкой и подсунуть туда нужные данные, но для этого нужно иметь минимальный опыт в реверсинге. В принципе мы можем помочь с реализацией скрипта под конкретный EXE.
Удивительно, почему такая функция не предусмотрена в самом обработчике, ведь это прекрасно умеет делать любой архиватор (запускать то, что ему засунули внутрь с параметрами)

Дак возьмите "любой архиватор" если он решает все ваши задачи. Наш продукт сделан совершенно для других целей.

ConfuserEx
Posts: 6
Joined: Sun Jul 05, 2020 8:48 am

Re: Запуск файла из "сборки" с атрибутами

Postby ConfuserEx » Sat Jul 25, 2020 10:14 am

Admin wrote:Господа, скрипт работает только на этапе компиляции в VMProtect, он для это и был сделан.

Так это никто и не оспаривает. Мы ведём речь только о внесении скрипта (если таковой внести возможно) именно на этапе компиляции

Admin wrote:Дак возьмите "любой архиватор" если он решает все ваши задачи. Наш продукт сделан совершенно для других целей.

Так я и беру, но я хочу уйти от выполнения двойной работы. Разве вам это не видно? Кроме того конечный пользователь может легко растребушить архив, а скомпилированный VMProtect файл уже будет делом посложнее.

Admin wrote:Из более сложных способов (если исходников программы нет) - на этапе компиляции в VMProtect можно "пропатчить" код EXE, который работает с командной строкой и подсунуть туда нужные данные, но для этого нужно иметь минимальный опыт в реверсинге. В принципе мы можем помочь с реализацией скрипта под конкретный EXE.

Проще всего будет сказать, возможно ли написать такой скрипт, с которым исполняемый файл будет скомпилирован с вышеуказанными параметрами? Ну вы же для чего-то сделали окно параметров и дали возможность туда писать "хвосты"? Я сейчас полагаю (возможно даже наивно), что внесение такого функционала в скрипт яйца выеденного не стоит. Для работоспособности требуемого функционала не требуется в обязательном порядке иметь исходники или реверсить файл, проверяя и фикся его структуру с кодом.
Скрипт должен выполнять запуск с атрибутами. Всё просто (вроде как).

Admin
Site Admin
Posts: 1912
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Запуск файла из "сборки" с атрибутами

Postby Admin » Sun Jul 26, 2020 5:24 am

Проще всего будет сказать, возможно ли написать такой скрипт, с которым исполняемый файл будет скомпилирован с вышеуказанными параметрами?

При желании можно написать вообще все.
Ну вы же для чего-то сделали окно параметров и дали возможность туда писать "хвосты"?

Это параметры для тестирования защищенной программы.