Автор Тема: AppTrial Module - *Концепция* создания оценочной версий вашего продукта  (Прочитано 19803 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
AutoIt: 3.3.6.1
Версия: 1.1

Категория: Система / Реестр, Разное

Описание: Данный модуль демонстрирует концепцию создания пробной/оценочной (триальной) версий вашего продукта.
Примечание: Это всего лишь концепция, конкретно данную версию не следует применять в ваших скриптах. Используйте её как пример и составьте свой алгоритм защиты.

Пример:
(нажмите для показа/скрытия)

Файл: AppTrialModule.zip (страница в ф.архиве)

История версий:
Цитировать
v1.1
* Переименование функций.
+ Улучшенная обработка.
+ Добавлен патч.

v1.0
Первый релиз.

Источник: AppTrial Module, A concept idea for trial software
Автор(ы): G.Sandler (CreatoR)
« Последнее редактирование: Май 23, 2011, 00:15:31 от CreatoR »


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Русское сообщество AutoIt


Оффлайн Fever [?]

  • Скриптер
  • ****
  • Сообщений: 308
  • Репутация: 112
  • Пол: Мужской
    • Награды
работает ваша программка на "ура", но я так и не как дать другому человеку ключ к программе... :blink:

понимаю что туплю, но всеровно ступор... :wacko:
http://vkontakte.ru/so_fever

Все мы ошибаемся. Одни больше, другие все время.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Fever  [?]
Цитировать
как дать другому человеку ключ к программе
Хороший вопрос, даёте ему патч:

Код: AutoIt [Выделить]
$sProductKey = _AppTrial_Generate_ProductKey()

InputBox("_AppTrial_Generate_ProductKey", "Unique <Product Key> for this PC:", $sProductKey)

Func _AppTrial_Generate_ProductKey()
    Local $sPK_Val = @OSVersion & @OSArch & @UserName & _GetMACAddress() & @OSBuild & @CPUArch & @OSType & @OSLang
    Local $sRet_PK, $aSplit_PK = StringSplit(StringRegExpReplace(StringUpper($sPK_Val), "[^A-Z0-9]+", ""), "")
   
    For $i = $aSplit_PK[0] To 1 Step -2
        If Mod($i, 5) = 0 Then
            $sRet_PK &= $aSplit_PK[$i] & "-"
        Else
            $sRet_PK &= $aSplit_PK[$i]
        EndIf
    Next
   
    Return StringRegExpReplace($sRet_PK, "\A-+|-+$|\A.{1,4}-|-.{1,4}$", "")
EndFunc

Func _GetMACAddress($iGetMACIndex = 1)
    Local $sRead = ""
    Local $ipHandle = Run(@ComSpec & ' /c ipconfig /all', '', @SW_HIDE, 2)
   
    While Not @error
        $sRead &= StdoutRead($ipHandle)
    WEnd
   
    $sRead = StringStripWS($sRead, 7)
   
    Local $aMAC_Dashed = StringRegExp($sRead , '([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})', 3)
   
    If Not IsArray($aMAC_Dashed) Then Return 0
    If $iGetMACIndex <  1 Then Return 0
    If $iGetMACIndex > UBound($aMAC_Dashed) Or $iGetMACIndex = -1 Then $iGetMACIndex = UBound($aMAC_Dashed)
   
    Return StringReplace($aMAC_Dashed[$iGetMACIndex - 1], '-', ':', 0)
EndFunc


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

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
CreatoR
Может быть, патч сделать самоудаляющимся?
"Мавр сделал свое дело, мавр может уходить..."

Русское сообщество AutoIt


Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Мне кажется что лучше будет если ключом будет зашифрованая информация о компе, но если информация не совпадает то ключ удаляется

Оффлайн FlatX007 [?]

  • Осваивающий
  • **
  • Сообщений: 174
  • Репутация: 33
  • Пол: Мужской
  • Tattoo!
    • Награды
CreatoR
Может быть, патч сделать самоудаляющимся?
"Мавр сделал свое дело, мавр может уходить..."

А если его запустить из RAR архива =)
...что можно узнать статус выполнения другой функции если в ней не включена возможность об отчете о том что она делает до того момента как она отработает

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
madmasles  [?]
Цитировать
Может быть, патч сделать самоудаляющимся?
Это ничего не решает, патч всегда можно будет перезакачать ;)

SECTOR  [?]
Цитировать
лучше будет если ключом будет зашифрованая информация о компе, но если информация не совпадает то ключ удаляется
Ну если информация не совпадает то ключ просто не сработает, это уже и так предусмотрено.

Оффлайн Fever [?]

  • Скриптер
  • ****
  • Сообщений: 308
  • Репутация: 112
  • Пол: Мужской
    • Награды
даже если скачать самоудаляющийся патч ещё раз не получится, его всегда можна будет дублировать перед запуском, а не лучше ли сделать ключ не через инфе о компе, а присваивая каждой программе рендомное id и в результате некоторых логический вычислений выводить ключ?

Русское сообщество AutoIt


Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7827

  • Автор темы
  • Репутация: 2287
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Fever  [?]
Цитировать
не лучше ли сделать ключ не через инфе о компе, а присваивая каждой программе рендомное id и в результате некоторых логический вычислений выводить ключ?
Как ты себе это представляешь? мне как автору программы теперь нужно оценочную версию выдавать каждому лично? :)

Оффлайн Arei [?]

  • Скриптер
  • ****
  • Сообщений: 938
  • Репутация: 115
  • Пол: Мужской
    • Награды
Скажите,  а если я отправил файл  другу как мне можно отправить ему ключ, не отправляя  патч.Заранее спасибо.

Оффлайн Medic84 [?]

  • Администратор
  • *
  • Сообщений: 1416
  • Репутация: 303
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Никак. Потому что патч считывает железо машины на которой запускается патч точно так же как это делает программа.

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

Оффлайн Arei [?]

  • Скриптер
  • ****
  • Сообщений: 938
  • Репутация: 115
  • Пол: Мужской
    • Награды
а что можно сделать тогда на подобии выше указанного  кода.

Оффлайн Medic84 [?]

  • Администратор
  • *
  • Сообщений: 1416
  • Репутация: 303
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Ну во первых это всего лишь концепция. Во вторых создать систему которую невозможно взломать - невозможно. В третьих, все что можно сделать с данным кодом тут написано :) Все остальное полет вашей мысли.

Оффлайн Arei [?]

  • Скриптер
  • ****
  • Сообщений: 938
  • Репутация: 115
  • Пол: Мужской
    • Награды
Понятно спасибо а можно спросить что бы программе выдавался индивидуальный  id  и что если человек прислал его то можно было ему выдать ключ подходящий под этот id ,такое можно сделать.

Оффлайн Fever [?]

  • Скриптер
  • ****
  • Сообщений: 308
  • Репутация: 112
  • Пол: Мужской
    • Награды
писал об этом выше

Код: AutoIt [Выделить]
#Include <String.au3>

Global $ID, $Code, $Pass

For $i = 1 To 9
    $ID &= Random(0,9,1)
    If $i <= 3 Then $Pass &= Random(1,3,1)
Next

MsgBox(0, '', $ID)
MsgBox(0, '', $Pass)

$Code = _StringEncrypt(1, $ID, $Pass, 1)

MsgBox(0, '', $ID & @CRLF & $Pass & @CRLF & $Code)
 


ИД и пасс писать гдето в реестре, но всегда можна будет сменить ИД вместе с пассом, если известна подборка к нему

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
258 Ответов
120040 Просмотров
Последний ответ Июнь 20, 2016, 01:22:32
от Andrey_A
7 Ответов
5824 Просмотров
Последний ответ Май 31, 2010, 08:27:24
от CreatoR
3 Ответов
4040 Просмотров
Последний ответ Ноябрь 10, 2010, 15:36:35
от TERMINAL
7 Ответов
17334 Просмотров
Последний ответ Июнь 27, 2012, 14:21:07
от ShAG1992D
5 Ответов
6322 Просмотров
Последний ответ Март 19, 2011, 22:42:53
от madmasles
0 Ответов
3376 Просмотров
Последний ответ Апрель 19, 2011, 16:28:46
от CreatoR
4 Ответов
2408 Просмотров
Последний ответ Май 23, 2011, 00:57:48
от CreatoR
0 Ответов
3363 Просмотров
Последний ответ Сентябрь 18, 2011, 14:21:22
от asdf8
13 Ответов
10222 Просмотров
Последний ответ Июль 11, 2015, 00:17:23
от joiner
2 Ответов
1471 Просмотров
Последний ответ Сентябрь 01, 2015, 08:04:54
от ildar