Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Технологии защиты программного обеспечения > Метод лицензирования программы


Автор: ilya198293 20.3.2008, 15:56
Столкнулся тут с программой.
Лицензия её привязывается к хосту, мак-адресу и по времени ограниченная. Всё это идёт через flexnet.
Процесс разбора этого метода лицензирования загнал меня в тупик.
По идее подделать мак, хост и дату на компе не сложно. Сталкивался несколько раз с таким.
А здесь что-то новое. Программа видит что откачена дата.
Причём видит она её после того как проделаны следующие операции:
1. установка нужной системной даты;
2. переустановка сисемы с полным форматированием жёсткого диска;
3. установка мак-адреса;
4. установка программы.........
И вот тут она говорит что дата откачена.
Компьютер к сети не подключался. На время установки самой программы были извлечены все флешки. У файлов дистрибутива была изменена дата, на более раннюю(на всякий случай).

Я сейчас уже подумал о том что в чипсете находится двое часов, 1-ые которые сидят в трее, 2-ые которые вызвали мой интерес.

Для модераторов:
Данный пост имеет цель не взлом, а спортивный интерес. Может получиться у себя в программах когда-нибудь такое использовать.

Автор: Akella 20.3.2008, 15:58
Цитата(ilya198293 @  20.3.2008,  15:56 Найти цитируемый пост)
а спортивный интерес.

что значит спортивный?

Добавлено @ 15:58
Милейший, а при чём здесь операционная система Microsoft Windows?

Добавлено @ 16:10
Если не представишь нормальных доводов, то тему будет закрыта и отправлена в ПО.

Автор: ilya198293 20.3.2008, 16:16
Цитата

что значит спортивный?


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

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

Автор: LSD 20.3.2008, 16:53
Хотя MAC адрес сетевой карты и можно изменить, но всегда можно узнать тот что зашит непосредственно в BIOS сетевухи.
Ты уверен, что не откатил дату на более раннюю чем была получена лицензия? Т.е. лицензию ты получил 01.01.2008, а откатил дату на 01.01.2007.

Автор: ilya198293 21.3.2008, 06:15
уверен
на почте лежит файл лицензии.
дата на компе позже даты получения письма, но раньше конца лицензии.
при запуске программы выдаётся ошибка в которой прописано что дата откачена назад.

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

Автор: dumb 21.3.2008, 10:38
предположение, основанное на том, что форматирование != очистка диска:
читаем карту незанятых файлами кластеров, пробегаемся по ним в поисках записей каталогов, откуда и вычитываем даты файлов, которые существовали до форматирования.

есть инструменты, производящие очистку незанятого пространства жесткого диска. естественно, это надо делать до установки/первого запуска проги с защитой.

Автор: LSD 21.3.2008, 11:46
Цитата(dumb @  21.3.2008,  10:38 Найти цитируемый пост)
читаем карту незанятых файлами кластеров, пробегаемся по ним в поисках записей каталогов, откуда и вычитываем даты файлов, которые существовали до форматирования.

1. Слишком геморойно и долго.
2. Требуется большой кусок дополниьельного кода (программы для восстановления данных, далеко не тривиальны).
3. Слишком не надежно, мало ли какой мусор есть на компе, а мы его за это лишаем лицензии.
Итого: очень маловероятно.

Попробуй такой эксперимент:
- удали все разделы
- переведи дату
- поставь систему
- поставь программу

Добавлено через 55 секунд
Кстати! А файл лицензии ты откуда брал? У него дата какая стояла?

Автор: W4FhLF 21.3.2008, 12:11
Скачай какой-нибудь анализатор типа PEiD или DiE и загрузи в него исполняемые файлы программы. Наверняка он тебе скажет, что на ней висит SafeCast/SafeDisc. Этот протектор исполбзуя прямой доступ к жёсткому диску устанавливает метку в 32 сектор(достаточно забить нулями 32 сектор, с пом. WinHex например, и ещё 30 дней триала ваши, но я этого не говорилsmile ) с данными о дате установки. 

Автор: ilya198293 21.3.2008, 12:15
C этим согласен:
Цитата

1. Слишком геморойно и долго.
2. Требуется большой кусок дополниьельного кода (программы для восстановления данных, далеко не тривиальны).
3. Слишком не надежно, мало ли какой мусор есть на компе, а мы его за это лишаем лицензии.
Итого: очень маловероятно.

Для отчисти если только "акроникс" подсоединить с многоступенчатым уничтожением данных, а может даже "викторию" и от первого, до последнего сектора всё "в ноль".

Цитата

Попробуй такой эксперимент:
- удали все разделы
- переведи дату
- поставь систему
- поставь программу


Порядок моих действий был такой:
1. В системе меняю дату.
2. Переустанавливаю систему(при переустановке старые разделы удалялись и создал один новый, а потом при установки самой винды сделал полное форматирование - такое какое умеет делать винда, НЕ быстрая очистка диска)

Цитата

Кстати! А файл лицензии ты откуда брал? У него дата какая стояла?


А файл лицензии у меня непосредственно от разработчиков, от их представительства.
Файл лицензии имеет дату нормальную (по крайней мере то, что мне показывается в свойствах файла).
Об этом я тоже думал. Даже извлёк повторно его из почты.

Цитата

Скачай какой-нибудь анализатор типа PEiD или DiE и загрузи в него исполняемые файлы программы. Наверняка он тебе скажет, что на ней висит SafeCast/SafeDisc. Этот протектор исполбзуя прямой доступ к жёсткому диску устанавливает метку в 32 сектор(достаточно забить нулями 32 сектор, с пом. WinHex например, и ещё 30 дней триала ваши, но я этого не говорил ) с данными о дате установки. 


Эксперемент проводился на машине, на которой ни разу эта прога не инсталилась. Так что не думаю что кто-то мог дату записать в 32 сектор.
Предварительно, я проделывал те же операции с VMWare и VirtualBox. Реакция была та же.

И то, что касается 30 дней триала, то к взлому этот пост не имеет отношения. Суть вопроса разобраться на чём основана такая защита и как можно её использовать у себя.

Автор: W4FhLF 21.3.2008, 12:48
Ну давай будем гадать тогда, что у тебя за программа и какая там защита.

Пока то, что ты описываешь(если я правильно понял и ты правильно сформулировал) в точности сходится с защитой одного из навесных протекторов. 

Давай ещё раз: 

Чистая система. Ты устанавливаешь программу. Ты её хоть раз запускал? Или просто установил, откатил дату и запустил? Или как? 

Автор: ilya198293 21.3.2008, 13:06
да, пока текущее время на часах было в пределах интервала (дата выписки лицензии, дата окончания лицензии) то работало всё как часики.
дата окончания лицензии прошла и на несколько часов не было лицензии (ща обновлённую прислали на новый срок), но интерес то остался, как так можно сделать

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

Автор: W4FhLF 21.3.2008, 15:16
Да, интересно. Сейчас надо выяснить есть ли там навесная защита и её ли это механизм защиты. Посему:


Цитата(W4FhLF @  21.3.2008,  12:11 Найти цитируемый пост)
Скачай какой-нибудь анализатор типа PEiD или DiE и загрузи в него исполняемые файлы программы.


Автор: ilya198293 21.3.2008, 16:11
Цитата

Скачай какой-нибудь анализатор типа PEiD или DiE и загрузи в него исполняемые файлы программы.

вообще не представляю что это такое и с чем это едят
лучше ссылочку на закачку

Автор: VICTAR 21.3.2008, 16:35
http://cracklab.ru/download.php?action=get&n=NTYw

Автор: ilya198293 22.3.2008, 10:46
Загрузил.
Ничего такого в проге не нашёл.

Цитата

SafeCast/SafeDisc


Искать то хотя бы где? В каком поле?

Автор: VICTAR 22.3.2008, 11:01
Самый нижний Edit, как раз над кнопками

Автор: ilya198293 24.3.2008, 06:33
Над кнопками написано "Borland C++" при выборе External Scan пишет "Borland C++ for Win32 1995 *"

Автор: VICTAR 24.3.2008, 09:06
Значит ничем не запакован...

Автор: ilya198293 24.3.2008, 12:08
а в чём тогда может быть проблема
причём разработка наша российская, хотя компания забугорная

Автор: LSD 24.3.2008, 16:15
Попробуй на виртуальной машине.

Автор: ilya198293 25.3.2008, 07:17
Цитата

Попробуй на виртуальной машине.


Цитата

Эксперемент проводился на машине, на которой ни разу эта прога не инсталилась. Так что не думаю что кто-то мог дату записать в 32 сектор.
Предварительно, я проделывал те же операции с VMWare и VirtualBox. Реакция была та же.

Автор: W4FhLF 26.3.2008, 15:25
Я так и не увидел (может плохо смотрел?), какая ОС?

Автор: LSD 26.3.2008, 18:08
Цитата(W4FhLF @  26.3.2008,  15:25 Найти цитируемый пост)
Я так и не увидел (может плохо смотрел?), какая ОС?

Судя по
Цитата(ilya198293 @  24.3.2008,  06:33 Найти цитируемый пост)
Borland C++ for Win32 1995 *

не Linux smile 

Автор: mmvds 26.3.2008, 19:05
Встречал прогу, которая с Яндекса текущую дату брала, пришлось апач с фэйковым сайтом яндекса ставить.
Но тут видимо от инета комп отключен :(

Автор: ilya198293 27.3.2008, 08:21
Цитата

Я так и не увидел (может плохо смотрел?), какая ОС?


прога работает на WinXP x64
все эксперементы на WinXP x32
в данном случае это не принципиально, прога должна работать и там и там

Цитата

Но тут видимо от инета комп отключен :(


комп для эксперементов был отключен даже от сети всё время начиная с инсталяции винды(вся инфа через флешку)
при эксперементах на виртуальной машине менял IP чтоб не могла ни куда лезь и что-нибудь узнать (пинги при этом по крайней мере не шли)

Автор: W4FhLF 28.3.2008, 14:13
Первый вопрос, который напрашивается: почему ребята пишущие софт для современных ОС используют древний компилятор С++? Я думаю это фейковая сигнатура, либо она просто неверно определилась, ну или программы принадлежат к касте oldschool smile. Чтобы убедиться просьба выложить скриншот окна PEiD'a со списком секций (загрузить файл в PEiD, напротив поля "EP Section" нажать кнопку ">"), ибо "чистый" Borland легко определить по характерному набору секций. 

Во-вторых:

Цитата(ilya198293 @  27.3.2008,  08:21 Найти цитируемый пост)
комп для эксперементов был отключен даже от сети всё время начиная с инсталяции винды(вся инфа через флешку)


Что это значит? При тестировании используется какой-то доп. носитель? Это может играть ключевую роль. 

Автор: ilya198293 28.3.2008, 14:58
Скриншот сделал.
А без стороннего носителя здесь никак.
Должен же я как-то драйвера закинуть туда, обновления для винды (последние обновления которые устанавливал датируются концом прошлого года, все эксперементы по распределению дат принадлежат этому году). да и саму прогу тоже нужно скопировать на диск. но во время установки программы все внешние носители были отключены.

Автор: dumb 28.3.2008, 17:17
ilya198293, долго гадать-то тут будем? - выложи "тело" куда-нибудь. судя по скрину, это таки непакованный билдер.

Автор: W4FhLF 29.3.2008, 06:54
Ага, мой потенциал экстрасенса уже тоже иссяк. 

Автор: ilya198293 31.3.2008, 05:53
а под телом что понимается?

Автор: dumb 31.3.2008, 07:37
Цитата(ilya198293 @  31.3.2008,  05:53 Найти цитируемый пост)
а под телом что понимается?

эм. я думал это очевидно... smile  то, о чем, собственно, идет разговор вот уже две страницы. прогу эту твою! 

Автор: ilya198293 31.3.2008, 14:36
весь дистрибутив? или сам exe файл установленный?
или ещё что-то. один вопрос залить дистрибутив, другой вопрос залить файл лицензии.
да и не думаю что кто-то потянет из инета лишьние 250МБ

Автор: dumb 31.3.2008, 20:53
начать можно с .exe + лицензия(не обязательно). возможно, этого не хватит, если окажется, что модуль защиты реализован отдельно, что, впрочем, маловероятно.

Автор: ilya198293 14.4.2008, 07:54
вроде получилось разобраться
программа перед запуском проверяла какие-то файлы по компу на дату создания и в случае если находила с датой большей чем системная то отбрасывала.
ещё есть подозрение что она учитывала дату компиляции самой себя.
но после того как прошёлся по компу тоталкоммандером и исправил все возможные даты назад, запустилось.
ща буду изучать какие файлы она могла анализировать и как поведёт себя прога если на него начать кидать документы, проекты и др. файлы с датой большей чем системная.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)