Защита программы
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Защита программы
Всем Привет. Clarion 6.3(ABC)
Еще раз поднимаю вопрос защиты программы.
Насколько я понял, секретить файлы в Dictionary - это бесполезное занятие (открываем exe-шник в блокноте - и при желании видим все пароли на засекреченные tps-файлы)?
Вопрос от начинающего - "Как привязать мою программу к компу, как можно узнать уникальный номер процессора или BIOS-a или за какую железяку цепляться, чтобы меня не надули?"
Прочитал все темы по поиску - но реального ответа не нашел.
Заранее благодарен за ответ.
Еще раз поднимаю вопрос защиты программы.
Насколько я понял, секретить файлы в Dictionary - это бесполезное занятие (открываем exe-шник в блокноте - и при желании видим все пароли на засекреченные tps-файлы)?
Вопрос от начинающего - "Как привязать мою программу к компу, как можно узнать уникальный номер процессора или BIOS-a или за какую железяку цепляться, чтобы меня не надули?"
Прочитал все темы по поиску - но реального ответа не нашел.
Заранее благодарен за ответ.
Всем пралитарское Спасибо и 'Желаю, чтобы ВСЕ !!!'
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Защита программы
Самое простое: ASProtect.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Защита программы
1. Действительно пароль можно "спрятать" в переменную или сделать плохочитаемым - как описано в справке.
Только это шифрование данных и никакого отношения к защите от нелегального копирования не имеет.
2. Привязка к процессору или BIOS - вещь достаточно нестабильная, т.к. придется отслеживать и проверять
программу на всех новых процессорах и материнских платах. Получить эти данные можно через WinAPI.
Но наверно это реально, только если ты делаешь главную программу Газпрома ...
3. Самый простой способ "привязать" программу к производной от серийного номера загрузочного HDD.
Мы много лет пользовались этим способом в старых программах.
Пример функции получения производной от серийного номера HDD.
GetPCNumber PROCEDURE ! Declare Procedure
RootPathName CSTRING(4)
VolumeNameBuf CSTRING(20)
VolumeNameSize ULONG(20)
VolumeSerialNumber ULONG
MaxCompLeng ULONG
FileSysFlags ULONG
FileSysNameBuf CSTRING(20)
FileSysNameSize ULONG(20)
CODE
RootPathName = 'C:\'
If GetVolumeInformation(RootPathName,VolumeNamebuf,VolumeNameSize,VolumeSerialNumber,MaxCompLeng,FileSysFlags,FileSysNameBuf,FileSysNameSize).
If VolumeSerialNumber > 2147483647
Return(Abs(Abs(VolumeSerialNumber - 4294967295) - 137))
else
Return(Abs(VolumeSerialNumber-137))
end
дальше пользователь сообщает Вам номер - Вы ему ответный код регистрации.
При запуске программы проверяете соответсвие номера компьютера и ответного кода. Вот и все.
Только это шифрование данных и никакого отношения к защите от нелегального копирования не имеет.
2. Привязка к процессору или BIOS - вещь достаточно нестабильная, т.к. придется отслеживать и проверять
программу на всех новых процессорах и материнских платах. Получить эти данные можно через WinAPI.
Но наверно это реально, только если ты делаешь главную программу Газпрома ...
3. Самый простой способ "привязать" программу к производной от серийного номера загрузочного HDD.
Мы много лет пользовались этим способом в старых программах.
Пример функции получения производной от серийного номера HDD.
GetPCNumber PROCEDURE ! Declare Procedure
RootPathName CSTRING(4)
VolumeNameBuf CSTRING(20)
VolumeNameSize ULONG(20)
VolumeSerialNumber ULONG
MaxCompLeng ULONG
FileSysFlags ULONG
FileSysNameBuf CSTRING(20)
FileSysNameSize ULONG(20)
CODE
RootPathName = 'C:\'
If GetVolumeInformation(RootPathName,VolumeNamebuf,VolumeNameSize,VolumeSerialNumber,MaxCompLeng,FileSysFlags,FileSysNameBuf,FileSysNameSize).
If VolumeSerialNumber > 2147483647
Return(Abs(Abs(VolumeSerialNumber - 4294967295) - 137))
else
Return(Abs(VolumeSerialNumber-137))
end
дальше пользователь сообщает Вам номер - Вы ему ответный код регистрации.
При запуске программы проверяете соответсвие номера компьютера и ответного кода. Вот и все.
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Защита программы
Нескромный вопрос: а если системный диск это НЕ диск С: ? Если диска C: вообще нет в системе?
Тогда уж надо привязываться к системному...
См. в хелпе "How to Get Active Folder Information"
Это не придирка, это констатация встречающихся случаев. Сам несколько лет работал на таком компе
Тогда уж надо привязываться к системному...
См. в хелпе "How to Get Active Folder Information"
Это не придирка, это констатация встречающихся случаев. Сам несколько лет работал на таком компе
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Защита программы
До версии 2.12 Aspack распаковывается автоматически программой:Губин Игорь писал(а):Самое простое: ASProtect.
“AspackDie 1.3d
--------------
This is a small unpacker for PE files (EXE, DLL, ...) which got compressed by
Aspack 2.11/2.11c/2.11d/2.12.
Have a look at the source code for more information.”
и
“OllyDbg-ский скрипт "Aspr2.XX Unpacker” распакует все остальное.
в стране слепых правит одноглазый король (c) ...
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Защита программы
Все правильно. Это не универсальное решение и не подойдет, например для загружаемых по сети рабочих станций.
Также будут проблемы с "клонированными" HDD (у них одинаковый серийный номер) и т.д.
Также проблемным моментом является изменении номера HDD при форматировании (что делается при переустановке Windows) или смене типа файловой системы.
Именно поэтому мы уже давно отказались от такого способа - но как учебная задача, вполне подойдет ...
Также будут проблемы с "клонированными" HDD (у них одинаковый серийный номер) и т.д.
Также проблемным моментом является изменении номера HDD при форматировании (что делается при переустановке Windows) или смене типа файловой системы.
Именно поэтому мы уже давно отказались от такого способа - но как учебная задача, вполне подойдет ...
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Защита программы
И действительно “все” если тело программы не зашифровать.Игорь Столяров писал(а): При запуске программы проверяете соответсвие номера компьютера и ответного кода. Вот и все.
в стране слепых правит одноглазый король (c) ...
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Re: Защита программы
ИМХО привязка к жесткому диску - самая правильная. Игорь Столяров все расписал. А более универсальное решение - наверно, USB ключ. Но он обходится всякими эмуляторами.
We are hard at work… for you.
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Защита программы
Вот к чему и посоветовал AsProtect. Достаточно дешёвая и достаточно проверенная вещь. В комплекте с некоторыми дополнительными фишками вполне надёжна.
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Защита программы
http://qunpack.ahteam.org/?p=160Губин Игорь писал(а):Вот к чему и посоветовал AsProtect. Достаточно дешёвая и достаточно проверенная вещь. В комплекте с некоторыми дополнительными фишками вполне надёжна.
или
http://reversing.kulichki.com/files/unpack/unpack.htm
в стране слепых правит одноглазый король (c) ...
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Защита программы
Я позволю себе кратко выразить свое мнение об AsProtect и аналогичный EXE шифровальщиков, т.к. имею опыт их использования.
1. Рано или поздно, но стабильно, возникает проблема с тем или иным антивирусом (например после косячного обновления баз), который грохнет EXE файл как зараженный вирусом. И это правильно - принцип работы тот же самый, что и в примитивных вирусных программах.
2. Это дополнительная операция при подготовке программы к публикации.
3. Наверно главный вопрос - что защищается и стоит ли экскаватором копать детскую песочницу ...
4. Пусть и примитивная, но своя система защиты - она более управляема. Сейчас в моде ситемы ограничения работы по времени (подписка), а не привязки программы к оборудованию.
1. Рано или поздно, но стабильно, возникает проблема с тем или иным антивирусом (например после косячного обновления баз), который грохнет EXE файл как зараженный вирусом. И это правильно - принцип работы тот же самый, что и в примитивных вирусных программах.
2. Это дополнительная операция при подготовке программы к публикации.
3. Наверно главный вопрос - что защищается и стоит ли экскаватором копать детскую песочницу ...
4. Пусть и примитивная, но своя система защиты - она более управляема. Сейчас в моде ситемы ограничения работы по времени (подписка), а не привязки программы к оборудованию.
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Защита программы
Почему-то когда я представляю AlesDales, то мне видится Рико из Пингвинов Мадагаскара с автогеном в руке возле заднего прохода Морта.
Кстати, а полиморфные секции они легко ломают?
На самом деле, я не говорю, что это абсолютно надёжная защита, но "в комплекте с некоторыми дополнительными фишками"...
По поводу ограничения работы по времени: это тоже должно быть очень правильно сделано, иначе любой идиот напишет примитивный батник для перевода часов перед запуском программы. И лучше сочетать это с иными средствами защиты.
Кстати, а полиморфные секции они легко ломают?
На самом деле, я не говорю, что это абсолютно надёжная защита, но "в комплекте с некоторыми дополнительными фишками"...
По поводу ограничения работы по времени: это тоже должно быть очень правильно сделано, иначе любой идиот напишет примитивный батник для перевода часов перед запуском программы. И лучше сочетать это с иными средствами защиты.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Защита программы
Немного по другому. Только идиот напишет программу, которая будет проверять ограничение защиты по часам компьютера.Губин Игорь писал(а):иначе любой идиот напишет примитивный батник для перевода часов перед запуском программы.
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Защита программы
Судя по аватарке можно предположить, как ты видишься самому себе.Почему-то когда я представляю AlesDales, то мне видится Рико из Пингвинов Мадагаскара с автогеном в руке возле заднего прохода Морта.
Полимофность защищает только от антивируса и от дампа. Если скрипт для отладчика позволяет программу отлаживать тогда полиморфность пофиг. Страшна только виртуализация или псевдокоды как например у Visual Basic.Кстати, а полиморфные секции они легко ломают?
Счетчик обычно хранят в реестре или в трудно доступных местах плоть до boot-сектора.По поводу ограничения работы по времени: это тоже должно быть очень правильно сделано, иначе любой идиот напишет примитивный батник для перевода часов перед запуском программы. И лучше сочетать это с иными средствами защиты.
в стране слепых правит одноглазый король (c) ...