Sergey2210
Осваивающий
- Сообщения
- 263
- Репутация
- 31
Верия Autoit:3.
Версия:1.0
Категория: Кодирование / Шифрование,Система / Реестр,Разное
Описание: Модуль для создания триальной версии программы и привязки к одному ПК
Модуль работает так:
Пишем скрипт и добавляем в него модуль триала,далее запускаем скрипт и он просит ввести ключ...
Далее пишем патч к модулю,добавляем в него функцию патча,который берет ProductId компьютера,разворачивает наоборот и выводит в инпут,с патчем должен присутствовать дополнительный файл в котором изначально написанно,развёрнуто наоборот и зашифрованно следующее предложение "Trial Lcense register",далее при запуске патча он как говорилось выше "берет ProductId" компьютера из реестра...
Запускаем триал версию программы,изначально модуль проверяет на существование заданного ключа в реестре,если его нет,то выводит форму для ввода ключа,далее сравнивает введённый ключ с ProductId компьютера,если всё верно то программа активна и записывает в дополнительный файл патча ProductId компьютера,если нет выводит ошибку...
после всего этого нельзя будет запустить патч на другой машине,но он будет действовать на той на которой запустили,тоже самое относится к программе
Минусы
Плюсы
Пример программы:
Пример патча:
Файл: Trial Modul.rar
Снимок: Нет снимка
История версий:
Источник: Русское сообщество AutoIt
Автор(ы): Sergey2210
Версия:1.0
Категория: Кодирование / Шифрование,Система / Реестр,Разное
Описание: Модуль для создания триальной версии программы и привязки к одному ПК
Модуль работает так:
Пишем скрипт и добавляем в него модуль триала,далее запускаем скрипт и он просит ввести ключ...
Далее пишем патч к модулю,добавляем в него функцию патча,который берет ProductId компьютера,разворачивает наоборот и выводит в инпут,с патчем должен присутствовать дополнительный файл в котором изначально написанно,развёрнуто наоборот и зашифрованно следующее предложение "Trial Lcense register",далее при запуске патча он как говорилось выше "берет ProductId" компьютера из реестра...
Запускаем триал версию программы,изначально модуль проверяет на существование заданного ключа в реестре,если его нет,то выводит форму для ввода ключа,далее сравнивает введённый ключ с ProductId компьютера,если всё верно то программа активна и записывает в дополнительный файл патча ProductId компьютера,если нет выводит ошибку...
после всего этого нельзя будет запустить патч на другой машине,но он будет действовать на той на которой запустили,тоже самое относится к программе
Минусы
- Патч с дополнительным файлом должен находится в директории с программой которую хотим активировать.
- Патч не будет работать без дополнительного файла.
- Патч не будет работать без дополнительного файла.
Плюсы
+ В дополнительном файле патча всё зашифрованно через _StringEncript() по этому не возможно или сложно будет посмотреть какие параметры разработчик заложил для пропатчивания.
+ После пропатчивания программы патч и программа не будут работать на других машинах.
+ После пропатчивания программы патч и программа не будут работать на других машинах.
Пример программы:
Код:
#include <string.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hForm = GUICreate("Video player", 400, 300)
__oActivate_Trial($hForm)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func __oActivate_Trial($hWnd)
Local $__pSerial_Reg,$__pActivate_Key,$__pInput_License
Global $__sExists_Reg = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','License')
$__sReg_Exists = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','ProductId')
Global $__sReverse_Map = _StringReverse($__sReg_Exists)
If $__sExists_Reg = $__sReverse_Map Then
GUISetState(@SW_ENABLE,$hWnd)
Else
If Not $__sExists_Reg Then
$__pSerial_Reg = GUICreate("Activation", 310, 80, -1, -1, -1, $WS_EX_TOOLWINDOW)
$__pInfo_Label = GUICtrlCreateLabel('Пожалуйста,введите серийный номер продукта',10,10,290,20)
$__pInput_License = GUICtrlCreateInput('',10,40,200,20)
$__pActivate_Key = GUICtrlCreateButton('Serial',220,40,80,20)
GUISetState()
GUISetState(@SW_DISABLE,$hWnd)
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $__pActivate_Key
$__sReg_Read = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','ProductId')
$__sReverse_Reg = _StringReverse($__sReg_Read)
$__sRead_Input = GuiCtrlread($__pInput_License)
If $__sReverse_Reg = $__sRead_Input Then
If Not FileExists(@ScriptDir & '\map.asc') Then
MsgBox(262144+48,'Activate','Патч не найден')
Exit
Else
$__sReg_Read = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','ProductId')
$reverse = _StringReverse($__sReg_Read)
$Pass = 'TrialVersion.3610'
FileDelete(@ScriptDir & '\map.asc')
Sleep(500)
FileWrite(@ScriptDir & '\map.asc',_StringEncrypt(1,$reverse,$Pass))
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','License','REG_SZ',$__sReverse_Reg)
MsgBox(64,'Activate','Спасибо за использование нашего продукта')
Exit
EndIf
Else
MsgBox(262144+48,'Ошибка','Вы ввели не верный ключ')
Exit
EndIf
EndSwitch
Wend
EndIf
EndIf
EndFunc
Пример патча:
Код:
#include <string.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $Key = __oTrial_Module()
$hForm = GUICreate("Activation Key", 310, 40, -1, -1, -1, $WS_EX_TOOLWINDOW)
$License = GUICtrlCreateInput($Key,10,10,200,20)
$Copy = GUICtrlCreateButton('Скопировать',220,10,80,20)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $Copy
$ReadKey = GUICtrlRead($License)
ClipPut ($ReadKey)
EndSwitch
WEnd
Func __oTrial_Module()
$__sReg_Result = 0
Global $__oPass_License = @ScriptDir & '\map.asc'
Global $__oPass_Reg = 'TrialVersion.3610'
$__sReg_Exists = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','ProductId')
Global $__sReverse_Map = _StringReverse($__sReg_Exists)
If Not FileExists ($__oPass_License) Then
MsgBox(262144+48,'Ошибка','Не удаётся найти файл MAP.ASC')
Exit
Else
Local $__oRead_Map = FileRead($__oPass_License)
Local $__oEcript = _StringEncrypt(0,$__oRead_Map,$__oPass_Reg)
Local $__sReverse_Key = _StringReverse($__oEcript)
If $__sReverse_Key = 'Trial Lcense register' Then
$__sReg_Read = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion','ProductId')
$__sReverse_Regiser = _StringReverse($__sReg_Read)
$__sReg_Result = $__sReverse_Regiser
ConsoleWrite('Пропатчивание программы')
Else
If $__sReverse_Key = $__sReg_Exists Then
$__sReverse_Map = _StringReverse($__sReverse_Key)
$__sReg_Result = $__sReverse_Map
ConsoleWrite('Данный патч использован')
Else
MsgBox(262144+48,'Activation Key','Использование патча для Вашей системы запрещено')
Exit
EndIf
EndIf
EndIf
Return $__sReg_Result
EndFunc
Файл: Trial Modul.rar
Снимок: Нет снимка
История версий:
v1.0
Источник: Русское сообщество AutoIt
Автор(ы): Sergey2210