Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм ограничения числа запусков программы/времени работы   Найти похожие ветки 

 
kaZaNoVa ©   (2006-02-20 13:52) [0]

Покритикуйте алгоритм плиз :)

Суть алгоритма - сохранять даные о запуске программы в файле/ключе реестра со "случайным" именем - например, состоящим из хеша серийника  или внутренного какого-либо алгоритма ..

Преимущество - нельзя будет заранее сказать, где на конкретном компьютере хранится файл/ключ с датой-ограничением.

а считывать информацию можно, как поступают некоторые хитрые программы - не прямым запросом нужного файла (привет, Filemon :)) а например перебором в цикле поиска файлов в папке и т.д. - так что найти нужный файл будет очень непросто - что, имхо, сильно затруднит "обман" программы .. ;))

(будем считать, что сама программа упакована хорошим EXE-криптором, и её не представляется возможности отлаживать/дизаасембловать непрофессионалу ..)

так же,интересно, у кого какие есть идеи, как лучше организовывать подобную защиту ... ;)

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


 
antonn ©   (2006-02-20 14:29) [1]


> (будем считать, что сама программа упакована хорошим
> EXE-криптором, и её не представляется возможности
> отлаживать/дизаасембловать непрофессионалу ..)

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


 
Reindeer Moss Eater ©   (2006-02-20 14:48) [2]

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

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


 
Reindeer Moss Eater ©   (2006-02-20 14:54) [3]

Суть алгоритма - сохранять даные о запуске программы в файле/ключе реестра со "случайным" именем - например, состоящим из хеша серийника  или внутренного какого-либо алгоритма ..

Ерунда это. Имя файла может быть очень случайным. Путь к файлу случайным уже не будет. А если и будет, то это только облегчит его поиск.
Забудь.


 
Курдль ©   (2006-02-20 14:57) [4]

Какие проблемы? Ставишь с программой оракл. Пароль ДБО похерь. Дальше - по вкусу.


 
kaZaNoVa ©   (2006-02-20 14:58) [5]

Reindeer Moss Eater ©   (20.02.06 14:54) [3]
а если держать файл в какой-нить системной паке?)) и  с переделанной датой , там тысячи файлов.. не ттак то просто будет найти нужный ..


 
Курдль ©   (2006-02-20 15:02) [6]


> kaZaNoVa ©   (20.02.06 14:58) [5]
> а если держать файл в какой-нить системной паке?))


Где бы ты что-то не держал, все равно перехватить факт записи в файл не сложно. А писать в файл придется - иначе как считать "кол-во запусков"?


 
начинающий ©   (2006-02-20 15:46) [7]

А Вы видели в диалоге "Установка и удаление программ" пишет напротив программы как часто её запускали последних 30 дней. Кто это подщитывает? Может, можно использовать эту статистику?


 
Игорь Шевченко ©   (2006-02-20 15:53) [8]

kaZaNoVa ©   (20.02.06 14:58) [5]

"всякого новорожденного младенца надо хорошенько высечь, приговаривая при этом: не пиши, не пиши, не пиши, дабы еще в младенчестве унять писательский зуд"
(с) А.П.Чехов


 
Слоник   (2006-02-20 15:54) [9]


> начинающий ©   (20.02.06 15:46) [7]
>
> А Вы видели в диалоге "Установка и удаление программ" пишет
> напротив программы как часто её запускали последних 30 дней.
>  Кто это подщитывает? Может, можно использовать эту статистику?
>

а у Вас это работает? у меня, к примеру, ежедневно/еженочно запускаемая/перезапускаемая VS там помечена как "иногда" используемая.


 
Jeer ©   (2006-02-20 15:55) [10]

Курдль ©   (20.02.06 15:02) [6]

> иначе как считать "кол-во запусков"?


Давать pop-up объявление пользователю для записи в ежедневник обычным карандашом ?


 
kaZaNoVa ©   (2006-02-20 15:58) [11]

Курдль ©   (20.02.06 15:02) [6]
А писать в файл придется - иначе как считать "кол-во запусков"?

необязательно :) можно закодировать в имени, и читая  список файлов в директории узнать .:)

начинающий ©   (20.02.06 15:46) [7]
интересная идея . ;)

Игорь Шевченко ©   (20.02.06 15:53) [8]
с чего-то же надо начинать :))


 
Lamer@fools.ua ©   (2006-02-20 16:02) [12]

>>kaZaNoVa ©   (20.02.06 14:58) [5]

>а если держать файл в какой-нить системной паке?))
Откуда уверенность, что будут права на запись в системную папку?


 
vidiv ©   (2006-02-20 16:07) [13]


> можно закодировать в имени

Может еще в поток записать. Имя потока - закодированное имя файла. Перечислить потоки файла, насколько я помню - нельзя.


 
Reindeer Moss Eater ©   (2006-02-20 16:12) [14]

Может еще в поток записать. Имя потока - закодированное имя файла. Перечислить потоки файла, насколько я помню - нельзя.

Устанавливаем программу на FAT и вся защита кончается.


 
Lamer@fools.ua ©   (2006-02-20 16:13) [15]

"Жаба хитра. Но маленький хрущ с винтом много хитрее её." ©


 
kaZaNoVa ©   (2006-02-20 16:13) [16]

vidiv ©   (20.02.06 16:07) [13]
хорошая идея .. :))  но тока потребуется NTFS, или провал защиты на корню..:(  


> насколько я помню - нельзя

имхо можно . .где-то даже был пример . (например WinRAR умеет копировать NTFS-потоки)

Lamer@fools.ua ©   (20.02.06 16:02) [12]
Откуда уверенность, что будут права на запись в системную папку?

большинство программ, при первоначальной установке требуют права админа, что естественно, а там и права  в системную папку будут ..


 
Reindeer Moss Eater ©   (2006-02-20 16:15) [17]

большинство программ, при первоначальной установке требуют права админа, что естественно, а там и права  в системную папку будут ..

И для работы защиты админские права попросить.
:)


 
Defunct ©   (2006-02-20 16:17) [18]

kaZaNoVa ©   (20.02.06 13:52)  

Сорить в реестре - нехорошо..
Предлагаю такой способ, годится только для ограничений по дате (без засорения реестра):

создать вспомогательный exeшник - загрузчик, который бы в ресурсах содержал код программы.
При первом запуске загрузчика поменять прошить "ключ" в дату создания каталога виндовс или program files или любого другого служебного каталога таким образом, чтобы проанализировав дату этого каталога в последствии можно было однозначно выделить учтойчивую однобитную сигнатуру - которая означает, что программа уже была установлена.

Далее - извлеч из собственных ресурсов тело программы - создать новый exe и добавить в него служебную информацию - дату создания в зашифрованном виде. После чего запустить созданную программу. Программа при первом запуске удалает либо вытирает из загрузчика ресурс с собственным телом. Ну а далее получается простой анализ даты прошитой в тело exeшника.


 
kaZaNoVa ©   (2006-02-20 16:18) [19]

Reindeer Moss Eater ©   (20.02.06 16:15) [17]
И для работы защиты админские права попросить.


ага, или прога гордо откажется работать, попутно проверяя что её не пытаются обмануть, если обнаружен подобный факт - то вызывать перезагрузку:))))


 
kaZaNoVa ©   (2006-02-20 16:19) [20]

Defunct ©   (20.02.06 16:17) [18]
интересная идея:))
еще бы предусмотреть возможность перевода системных часов ....


 
Defunct ©   (2006-02-20 16:21) [21]

Defunct ©   (20.02.06 16:17) [18]

такой способ (с модификацией даты) применялся в вирусе FT2 для грубого распознавания зараженных/незараженных файлов при просмотре каталогов findfirst/findnext.


 
Defunct ©   (2006-02-20 16:22) [22]

и для сокрытия истинной длины файлов (stealth механизм).


 
Игорь Шевченко ©   (2006-02-20 16:29) [23]

kaZaNoVa ©   (20.02.06 15:58) [11]


> с чего-то же надо начинать


Начни с написания полезных программ



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.02 c
2-1140968690
X9
2006-02-26 18:44
2006.03.12
EInvalidGridOperation при присваивании Col и Row


8-1128399076
Dilmo
2005-10-04 08:11
2006.03.12
Вопрос про BASS


2-1140890806
kreyl
2006-02-25 21:06
2006.03.12
Что внутри Variant?


2-1140688805
Wolferio
2006-02-23 13:00
2006.03.12
Rave Reports


3-1137647384
neat
2006-01-19 08:09
2006.03.12
Отменить сохранение редактируемой записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский