Хочу защитить программу от копирования, программка на будет на с++ с винапи.
Из способов помню только - запись ключа в реестре. Но, этот способ мне как то не очень нравится, возникла другая идея, опишу:
Нужно в exe-файле, под определенным смещением, забронировать некоторое количество байт под ключ.
Для начала заполнить их нулями.
При запуске если байты нули, то запуск программы первый, и программа должна вписать туда новый ключ!!
Подчеркну! Нужно вписать на жесткий диск в exe-файл, за место начальных нулей!
Но я не знаю как вообще можно забронировать место в exe (например 32 байта), заполнить его нулями, и потом ссылаться на это место?
Как называется такой метод?
Подскажите кто что знает.
Такой механизм защиты от копирования не сработает. Так как скопированная программа уже будет иметь ключ. Достаточно будет просто вставить ключ, и скопировать программу сколько угодно. А так вписать в exe-файл возможно. Лучше такое вписывать в секцию данных. Этим может быть константа массива, которая уже должна храниться в секции данных. И больше никуда не вписывать. Система не оценит такое. А найти расположение этих байтов можно разными путями. Можно вставить перед ключом предварительную магическую константу типа 0x55AA, чтобы можно найти по нему искомое местоположение. То есть выйдет как 32 байта + 2 байта на магическую константу.
P.S. После внесения ключа в exe-файл нужно будет перезапустить саму программу, если она запущена.
Резервируешь как и обычные данные char reserve_code[3] = {0 ,0 ,0};
Сам себя на диске ты не сможешь подменить. Для этого обычно пишут отдельный сервисный EXE, который уже подменяет файл главной программы.
Но вообще идея так себе, ищется банальной разницей с установочным файлом.
Генерируешь временный новый экзешник, запускаешь, завершаешь работу, новый экзешник вносит изменения, запускает основной, завершает свою работу, основной процесс убивает этот временный.
В идеале все происходит настолько быстро, что даже имя файла мелькнувшего не успеешь прочесть :)
Тут вообще никакой защиты нет. :)
Софт защищают протекторами со встроенной системой лицензирования и привязки к hwid (VMP, Enigma, etc) и то их редко но вскрывают.
Если файлик отредактируется, то цифровая подпись (сертификат) пропадет. А это нежелательно. Да и антивирус может ругнуться. И прогу могут запустить без прав админа и она ничего никуда не пропишет. Такой способ чреват побочными эффектами. Лучше не изобретать велосипед. Если прога продается недавно и нераскручена никто не побежит ее ломать. Люди уже либо покупают либо ломаную юзают (то есть одни платят - другие нет). Можно сделать простенькую защиту и не париться. Скачивание ломаной версии может даже помочь раскрутке софта. А со временем лучше профессиональное решение купить. И кстати, даже их ломают, а уж самоделку и подавно