Хранение переменной в dll или exe
От: Glas  
Дата: 09.06.13 16:03
Оценка: -1
Возможно ли хранить переменную и изменять внутри библиотеки? Нужно сделать счетчик запусков программы, но так чтоб он не сохранялся в реестр или в текстовый файл.
Re: Хранение переменной в dll или exe
От: ichensky Украина https://github.com/ichensky
Дата: 09.06.13 17:10
Оценка:
Здравствуйте, Glas, Вы писали:

G>Возможно ли хранить переменную и изменять внутри библиотеки? Нужно сделать счетчик запусков программы, но так чтоб он не сохранялся в реестр или в текстовый файл.

Почему не подходит в данном случаи просто записывать в файл зашифрованный счетчик?
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
Re[2]: Хранение переменной в dll или exe
От: Glas  
Дата: 10.06.13 18:01
Оценка:
Здравствуйте, ichensky, Вы писали:

I>Почему не подходит в данном случаи просто записывать в файл зашифрованный счетчик?


Потому что первая мысль, которая пришла в голову это сохранить начальный счетчик и подсовывать его когда надо.
Просто поизучал этот вопрос, все сводят решение к online счетчику. В реестр/файл легко обнулить.
Re: Хранение переменной в dll или exe
От: Pavel Dvorkin Россия  
Дата: 11.06.13 02:10
Оценка:
Здравствуйте, Glas, Вы писали:

G>Возможно ли хранить переменную и изменять внутри библиотеки? Нужно сделать счетчик запусков программы, но так чтоб он не сохранялся в реестр или в текстовый файл.


Хранить-то можно, да толку не будет. DLL без процесса не работает и в памяти не находится. Поэтому после окончания процесса DLL выгружена из памяти вместе со своим счетчиком, а после запуска программы DLL будет загружена опять, и все с нуля.

Опиши задачу подробнее. Что значит хранить счетчик запусков ? С какого момента — момента загрузки Windows, или вообще на этой машине с момента инсталляции Windows? Если второе — реестр или AppData в профиле. Если первое — можно сервис написать, с которым программа связывается и который увеличивает счетчик внутри себя. Сервис должен запускаться при старте системы.
With best regards
Pavel Dvorkin
Re[2]: Хранение переменной в dll или exe
От: Glas  
Дата: 11.06.13 08:54
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Хранить-то можно, да толку не будет. DLL без процесса не работает и в памяти не находится. Поэтому после окончания процесса DLL выгружена из памяти вместе со своим счетчиком, а после запуска программы DLL будет загружена опять, и все с нуля.


PD>Опиши задачу подробнее. Что значит хранить счетчик запусков ? С какого момента — момента загрузки Windows, или вообще на этой машине с момента инсталляции Windows? Если второе — реестр или AppData в профиле. Если первое — можно сервис написать, с которым программа связывается и который увеличивает счетчик внутри себя. Сервис должен запускаться при старте системырогр


Задача банальная, отрубить программу, когда некоторый счетчик достигнет предела по лицензии. Мы даем лицензию на запуск программы N раз, на N + 1 раз она не должна запуститься. С файлом и реестром мне не нравится, потому что систему элементарно можно откатить.
Re[3]: Хранение переменной в dll или exe
От: mogikanin Россия  
Дата: 11.06.13 09:49
Оценка:
Здравствуйте, Glas, Вы писали:

G>Задача банальная, отрубить программу, когда некоторый счетчик достигнет предела по лицензии. Мы даем лицензию на запуск программы N раз, на N + 1 раз она не должна запуститься. С файлом и реестром мне не нравится, потому что систему элементарно можно откатить.


Если даже у вас получиться сохранить информацию о запусках внутри dll, то кто мешает злоумышленнику переустановить софт или просто заменить эту вашу dll начальной версией с нулевым счетчиком?
Re[4]: Хранение переменной в dll или exe
От: GarryIV  
Дата: 11.06.13 09:56
Оценка: +1
Здравствуйте, mogikanin, Вы писали:

G>>Задача банальная, отрубить программу, когда некоторый счетчик достигнет предела по лицензии. Мы даем лицензию на запуск программы N раз, на N + 1 раз она не должна запуститься. С файлом и реестром мне не нравится, потому что систему элементарно можно откатить.


M>Если даже у вас получиться сохранить информацию о запусках внутри dll, то кто мешает злоумышленнику переустановить софт или просто заменить эту вашу dll начальной версией с нулевым счетчиком?


И для изменения dll еще права надо иметь. И антивирусам может не понравится такая активность.
WBR, Igor Evgrafov
Re[3]: Хранение переменной в dll или exe
От: Sinatr Германия  
Дата: 11.06.13 10:31
Оценка:
Здравствуйте, Glas, Вы писали:

G>Задача банальная, отрубить программу, когда некоторый счетчик достигнет предела по лицензии. Мы даем лицензию на запуск программы N раз, на N + 1 раз она не должна запуститься. С файлом и реестром мне не нравится, потому что систему элементарно можно откатить.


В любом случае можно откатить. Создать ghost image диска после установки программы, поюзать N раз, восстановить, поюзать N раз, восстановить...

Если есть инсталлянт с, как вы предлагаете, dll-кой со счетчиком = 0, то просто переставлять прогу.

Данная задача не решается без куска "контролируемого hardware" (ключика, сервера где-то и тд) без которого прога не запустится.

Тривиальное решение — это "следить" на компе (оставлять следы) в AppData или реестре, с ключами, счетчиками и т.д. Рядовому пользователю в любом случае будет не просто крекнуть, продвинутый — создаст ghost image и так и эдак, а хакеры ломают и не такие защиты (тут уже саму прогу придется защищать и все равно фиг защитишь, обойдут проверку счетчика банальным return true).
---
ПроГLамеры объединяйтесь..
Re[3]: Хранение переменной в dll или exe
От: Pavel Dvorkin Россия  
Дата: 11.06.13 12:01
Оценка:
Здравствуйте, Glas, Вы писали:


G>Задача банальная, отрубить программу, когда некоторый счетчик достигнет предела по лицензии. Мы даем лицензию на запуск программы N раз, на N + 1 раз она не должна запуститься. С файлом и реестром мне не нравится, потому что систему элементарно можно откатить.


Ну и что ты хочешь ? Запускаем виртуальную машину, работаем, файлы переписываем на реальную, состояние виртуальной машины не сохраняем. Более того, ее можно вообще перенести на другую реальную со всеми ее потрохами. Что тут можно сделать — я не знаю.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.