Структурированный макет JSON

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

Итак, я откопал свои знания о переносимых исполняемых файлах и пришел с такой идеей:

  • Зашифровать исполняемый файл
  • Прикрепите его к концу исполняемого файла загрузчика вместе с его размером
  • Загрузчик расшифровывает данные
  • Он копирует код на страницу, выделенную для VirtualAlloc, которая имеет права на выполнение.
  • Он находит точку входа в приложение.
  • Переходы туда и все готово.

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

Я понимаю, что может потребоваться исправить абсолютные адреса после загрузки кода. Как мне проверить, нужно ли мне это делать, и как мне это сделать?

Редактировать: Работа с окнами и компиляция с GCC. При необходимости я могу переключить компилятор Microsoft.

Edit2: Чтобы уточнить: я ЗНАЮ, что это в основном бессмысленно. Я считаю, что это означает любой вид DRM. Решение должен принять мой клиент, и он все еще хочет этого, несмотря на то, что я предупреждаю его об этом.

Заранее спасибо.

5
задан Tamás Szelei 16 August 2010 в 09:47
поделиться