helen thomas Ответов: 1

Как добавить систему авторизации в EXE файл


у меня есть приложение. у меня нет исходного кода, я хочу добавить систему аутентификации для этого приложения.
это возможно?
я нашел auth.gg, я открываю свое приложение с помощью нажатия кнопки после входа в систему pass. но пользователь не должен видеть приложение в папке. могу ли я объединить их?

Что я уже пробовал:

я открываю свое приложение с помощью этого кода.
Процесс p = новый процесс();
п. Информацию.Имя Файла = Путь.Комбайн(Приложение.StartupPath, "пример.png");
п. Начать();

1 Ответов

Рейтинг:
2

Chris Copeland

Если вы хотите скрыть приложение до того, как пользователь пройдет проверку подлинности, вам может потребоваться рассмотреть возможность встраивания его в качестве ресурса в ваше приложение. Что должно произойти, так это то, что компилятор объединит отдельный исполняемый файл в ваше собственное приложение, а затем вы сможете аутентифицировать пользователя, а затем извлечь исполняемый файл для запуска.

Стоит отметить, что в какой-то момент вам нужно будет извлечь исполняемый файл в файловую систему.

windows - встраивание внешнего исполняемого файла в программу C# - переполнение стека[^]


helen thomas

можно ли использовать этот трюк без экстракта?
если я понимаю неправильно, исправьте меня, но если я извлеку файл, пользователь может получить доступ к приложению без аутентификации, верно?

Chris Copeland

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

Лучше всего было бы извлечь его в неизвестное место, но даже тогда потребовалось бы немного усилий, чтобы открыть Диспетчер задач или командную строку, чтобы найти, откуда он выполняется. Я видел некоторые комментарии по некоторым вопросам Stackoverflow, которые, казалось бы, указывали на то, что это возможно путем эффективной эмуляции загрузчика Windows, но я предполагаю, что работа, связанная с этим, может быть довольно большой.

Chris Copeland

В дополнение к вышесказанному, после некоторого дополнительного поиска можно было бы запустить приложение непосредственно с компьютера. byte[] переменная массива, это означало бы загрузку встроенного ресурса непосредственно в память. Видеть этот ответ.

Однако это не уменьшает того факта, что встроенный ресурс в приложении .NET может быть извлечен независимо, поэтому он не будет обеспечивать полную защиту.

Dave Kreskowiak

Нет, вы не можете запустить исполняемый файл, не извлекая его.

И, да, пользователь сможет увидеть исполняемый файл и запустить его после извлечения.

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