Подскажите,как запустить программу с ключом /install
В данном случае Сервис, если у меня программа называется project1.exe . то как это будет выглядеть с ключом
За частые поиски был забанен во всех известных
поисковых системах!
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
невероятно но факт. Если подразумевается как запустить приложение зная его путь, то WinExec, ShellExexute(Ex) + Google и форум.
Форумчанин
Регистрация: 25.12.2007
Сообщений: 651
За частые поиски был забанен во всех известных
поисковых системах!
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
у меня программа называется project1.exe |
Возможно это из за того чтовы пишите именно
В планах порабощение вселенной.
Форумчанин
Регистрация: 25.12.2007
Сообщений: 651
Подскажите,как запустить программу с ключом /install
Взлом программ через OllyDBG
В данном случае Сервис, если у меня программа называется project1.exe . то как это будет выглядеть с ключом
Спасибо что Вы такой наблюдательный,но это все образные имена,суть вопроса остается та же
За частые поиски был забанен во всех известных
поисковых системах!
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
BOBAH13 же вам ясно написал пример — между именем файла и ключом находиться пробел, а вы его пропустили, cmd думает, что это каталог и вот вам ошибка.
Форумчанин
Регистрация: 25.12.2007
Сообщений: 651
Спасибо конечно,но проблема не в пробеле,так же пишет «отказано в доступе»
Изображения
Снимок.PNG (32.4 Кб, 180 просмотров) |
За частые поиски был забанен во всех известных
поисковых системах!
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
Вы в курсе что это уже ошибка самого приложения ? Причем тут то как верно его запускать ?
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Парное шифрование с ключом из 15 букв. | Ветас | Помощь студентам | 19 | 25.03.2013 10:31 |
Проблемы с первичным ключом | Abuhamed | PHP | 10 | 18.04.2010 16:30 |
Алгоритм шифрования «перестановка с ключом» | ddj | Помощь студентам | 4 | 16.04.2009 14:53 |
Защита ключом | Xeon332 | Общие вопросы Delphi | 17 | 27.02.2009 08:44 |
Как узнать ключ Windows установленной на компьютере и ноутбуке
Источник: www.programmersforum.ru
Как запустить игру с параметром, ключом
На этой странице вы найдете детальную инструкцию по запуску игры параметрами, ключами запуска. «Зачем это нужно?» — спросите вы. Чтобы ответить на этот вопрос необходимо рассказать что такое параметры, ключи запуска и на что они могут влиять. При запуске игры с указанием параметров вы активируете скрытые возможности, которые в большинстве случаев нельзя включить каким-либо другим путем. Следует также сказать, что каждая игра имеет свои индивидуальные ключи запуска, не зная о которых вы не сможете что-то активировать.
И так, что необходимо сделать, чтобы запустить игру с параметром? Сразу следует сказать, что запустить игры вместе с параметрами, ключами запуска, можно только через ярлык или командную строку, но так как через ярлык это сделать проще, то второй метод здесь рассмотрен не будет.
Создание ярлыка игры
Прежде чем создать ярлык игры, необходимо найти файл, который отвечает ее запуск. Все эти файлы имеют расширение exe, то есть значок запуска игры будет иметь следующий формат имени: название.exe Следует также сказать, что расширение exe может быть скрытым (не отображаться). Необходимый файл запуска находится в месте, которое вы указали во время установки — это может быть следующий путь:
C: Program Files название_игры название_название.exe
- Кликните правой клавишей мыши по значку. Найдите пункт Отправить — Рабочий стол (создать ярлык).
- Зажмите на клавиатуре комбинацию клавиш [Ctrl] + [Shift] и перетащите значок на рабочий стол.
- Зажмите на клавиатуре клавишу [Alt] и перетащите значок на рабочий стол.
Добавление параметров запуска к ярлыку игры
Ярлык создан и можно добавлять параметры запуска игры. Для этого кликните правой клавишей мыши по созданному ярлыку на Рабочем столе и выберите пункт Свойства. Перед вами появится окно в котором вам понадобиться отредактировать только одно поле с названием Объект.
Для того чтобы запустить игру с параметрами (ключами) их необходимо дописать в конце поля Объект через пробел. Сразу следует сказать, что параметров запуска может быть больше одного и все они записываются в следующем формате в конце поля Объект через пробел:
-параметр_1 -параметр_2 -параметр_3
Пример: «C:Program Files (x86)SkypePhoneSkype.exe» /параметр
- перед названием параметра в большинстве случаев должен стоять дефис ( — ) или слеш ( / ) в зависимости от игры, но для многих игр эти знаки идентичны, то есть не имеет значения какой из них ставить;
- между параметрами (ключами), если их несколько, обязательно должен стоять пробел;
- двойные кавычки из поля Объект, если они присутствуют, удалять не надо;
- если вы запускаете специальный загрузчик (Launcher) и только после этого запускаете игру, нажатием кнопки «Играть» или «Запустить», то дописывая параметры запуска к ярлыку файла Launcher.exe вы запустите не игру с дополнительными параметрами (ключами), а только программу для ее запуска — игра запуститься без параметров.
Источник: other-games.ru
Аппаратная защита программ — это же просто
Перед многими разработчиками программного обеспечения возникает вопрос защиты своего труда. Поиск в сети на эту тему выдает кучу информации, но практических примеров и здравых описаний нет. Поэтому в качестве примера построения защиты расскажу о привязке программы к USB ключу.
Ключ
Для защиты я выбрал USB ключ с HID интерфейсом и с открытым кодом программного модуля защиты. Такой HID-ключ позволяет обойтись без установки драйверов ключа, что очень удобно для конечного пользователя. Также HID интерфейс прекрасно работает в «SafeMode» режимах загрузки операционных систем.
Открытый код модуля защиты – не нужно линковать библиотеки и прилагать к защищаемой программе чужие *.dll файлы.
Сам ключ содержит 5 участков памяти по 2 кБайта и RTC (часы с батарейкой), каждый участок защищен ПИН-кодом из 16 байт.
Цель защиты
— не запускать приложение при отсутствии ключа защиты;
— предупреждать и закрывать приложение при удалении ключа защиты.
Ограничивать время использования программы будем в следующий раз. Для построения защиты буду использовать один защищенный участок памяти в ключе.
Защищаемый объект
Для примера создадим самую простую программу: диалоговое окно MFC, воспользовавшись волшебником visual studio. В наше приложение, кроме потока окна, добавим поток, который в основном окне печатает текущее время.
Подготовка ключа
Прежде чем использовать ключ его необходимо сконфигурировать с помощью утилиты из SDK ключа:
— установить на защищенный участок памяти свой секретный ПИН код (заводские значения: ).
— заполнить необходимыми данными сам участок памяти.
ПИН я сменил на: < 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f >.
Такой же последовательностью заполнил первые 16 байт в памяти ключа.
Установка защиты
Для внедрения программного модуля защиты в созданный проект нужно подключить 2 файла: «HID_1.cpp» и «HID_1.h». В них находится исходный код класса, который позволяет обращаться к ключу.
В файле «HID_1.h» можно изменить настройки модуля, и параметры шины USB ключа — оставим все по умолчанию. Компилируем проект.
После успешной компиляции и запуска всё это выглядит так:
Теперь все готово для работы с ключом
В коде, где создается само окно приложения, файл «Example_1.cpp», добавляем обращение к ключу:
.
#include «HID_1.h»
.
BYTE my_main_pin[16] = ;
//ВНИМАНИЕ. Не храните ПИН-код в открытом виде. В примере это сделано для наглядности.
.
CExample_1Dlg dlg;
INT_PTR nResponse;
// -======== Проверка ключа ========-
// Создание класса для работы с ключем.
HID_bridge my_hid(my_main_pin, //Указатель на массив ПИН-кода.
HID_DEFAULT_PROFILE_ID); //Устанвка номера профиля ( профиль 0 )
BYTE my_buf[16]; //буфер, в который будут считаны данные из ключа
int answ = my_hid.read_closed_data_ex(


int result = -1;
if(answ == HID_KEY_OK) < // анализируем ответ




>
if(!result)

> else


>
// -======== Проверка ключа END ========-
if (nResponse == IDOK)
…
Теперь при попытке запустить программу без сконфигурированного ключа пользователь получит сообщение «Программа не запускается».
Подобную проверку можно добавить и в инициализацию самого диалога, и в любое критически важное, с точки зрения функционала, место.
Для детектирования отсутствия ключа в системе необходимо периодически обращаться к нему.
Опрос ключа я организовал в отдельном потоке. Поток, при обнаружении отсутствия ключа, устанавливает глобальный флаг, по которому все остальные потоки завершают свою работу. В основном окне запущен таймер, по которому опрашивается глобальный флаг. При установленном флаге окно завершает работу. Пользователь получает сообщение о завершении работы.
Код потока, следящего за ключом
.
volatile bool glob_exit_f = false;
.
DWORD WINAPI myThread_watchdog(LPVOID lParam)
BYTE my_main_pin[16] = ;
BYTE data_in_key[16] = ;
HID_bridge my_hid(
my_main_pin, //Указатель на массив ПИН-кода.
HID_DEFAULT_PROFILE_ID); //Устанвка номера профиля.
BYTE my_buf[16]; //буфер, в который будут считаны данные из ключа
int result = -1;
int answ = -1;
while(!glob_exit_f) <
answ = my_hid.read_closed_data_ex(
my_buf, // Указатель на буфер, в который сохранятся принятые данные профиля.
0, // Адрес в профиле, с которого начнется чтение, в данном случае чтение с самого начала профиля (с 0-го байта).
sizeof(my_buf)); // Количество байт, которое нужно прочесть. Размер буфера.
result = -1;
if(answ == HID_KEY_OK) < // анализируем ответ
// Если ключ найден и данные считаны — анализируем эти данные
// Данные, которые должны быть записаны в ключе:
BYTE data_in_key[16] = ;
result = memcmp(data_in_key, my_buf, sizeof(my_buf)); // Сравниваем полученные данные
>
if(result)
glob_exit_f = true;
> else
Sleep(WATCHDOG_SLEEP_TIME);
>
>
return 0;
>
В итоге
Поставленная задача защиты решена. Обращаю Ваше внимание, что это пример, в котором всё упрощено. Строить настоящую защиту на одном флаге, конечно же, не стоит. А хранить ПИН-код доступа как в примере — вообще преступление.
АПИ ключа намного шире, в данном примере я использовал лишь малую часть всех возможностей.
А что же происходит на шине USB?
Любой USB сниффер покажет какие устройства подключены к шине данных и чем они обмениваются с компьютером.
Для меня важным показателем является время ответа ключа на команду. На рисунке «черным» выделена команда к ключу, «синим» — ответ ключа. В среднем время отклика составляет 32 мс (+31… +32 . ). Т.е. за это время ключ обработал команду и вернул ответ. Больших задержек это не вносит.
Криптографическая защита протокола обмена
HID пакеты на шине USB имеют длину 64 байта. Как сказано в описании ключа первые 32 байта этого пакета технологические, остальные 32 байта – шифрованные алгоритмом RC6, причем для каждой пары пакетов (TX-RX) ключ шифрования выбирается случайно. Этот временный ключ шифруется ключом, созданным на основе ПИН-кода, того самого в 16 байт, о котором написано выше.
Получается, что передача одной и той же команды ключу и получение одного и того же ответа приводит к абсолютно не связанным транзакциям на шине USB. Если кто-то решит анализировать трафик с целью написания табличного эмулятора, то он будет разочарован. Так как пары — (TX-RX) ни разу не повторяются.
Надеюсь, статья будет Вам полезна в столь не легком деле.
- программирование
- защита программ
- электронный ключ
- аппаратная защита
- c plus plus
- c#
Источник: habr.com