Что нового

Привязка программы к пк

MakeExpert

Новичок
Сообщения
4
Репутация
0
Привет всем, помогите мне пожалуйста, есть два скрипта привязки к пк. Нужно что бы скрипт №1 читал значения так же как скрипт №2 , т.е. все ключи находятся в файле .ini на сервере.

Скрипт №1
Код:
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>

if _WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)) = "{C93F491F-4FBD-D923-E57D-855131EE1204}" = False Then
    MsgBox(16,"Незаконный Запуск","Обратитесь к разработчику")
Exit
EndIf

MsgBox(64,"Все хорошо", "Спасибо за использование")
;~ далее идет код


Скрипт №2
Код:
#include <IniString.au3>
$iControl = _ValidateSerial()
If Not @error Then
    If $iControl Then
        MsgBox(64, 'Идентификация', 'Идентификация прошла успешно')
    Else
        MsgBox(16, 'Идентификация', 'У вас нет доступа к программе')
        Exit
    EndIf
Else
    Switch @error
        Case -1
            MsgBox(16, 'Идентификация', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
            Exit
        Case 1
            MsgBox(16, 'Идентификация', 'Произошла ошибка проверки.')
            Exit
    EndSwitch
EndIf

Func _ValidateSerial()
    Local $s_Serial, $a_Control, $s_TextFromSite

    $s_TextFromSite = InetRead('http://yourdomen.ru/control.ini')
    If @error Then Return SetError(-1)
    $s_TextFromSite = BinaryToString($s_TextFromSite)
    $s_Serial = DriveGetSerial(StringLeft(@ScriptDir, 2))
    If @error Then Return SetError(1)
    $a_Control = _IniString_ReadSection($s_TextFromSite, 'Computers')
    If @error Then Return SetError(1)
    For $i = 1 To $a_Control[0][0]
        If $a_Control[$i][1] == $s_Serial Then Return SetError(0, 0, 1)
    Next
    Return SetError(0, 0, 0)
EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
тему не дублируем. какую оставляем? эту или ту что в столе заказов?
 
Автор
M

MakeExpert

Новичок
Сообщения
4
Репутация
0
эту


Добавлено:
Сообщение автоматически объединено:

Не ужели ни кто не поможет?
 

Spyhunter

Знающий
Сообщения
56
Репутация
13
Если я правильно тебя понял, то ф-ция _ValidateSerial() и твой 2-ой скрипт вполне справятся с задачей...

Код:
if _WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)) = "{C93F491F-4FBD-D923-E57D-855131EE1204}" = False Then
    MsgBox(16,"Незаконный Запуск","Обратитесь к разработчику")
Exit
EndIf


На место этого поставь 2-ой скрипт.

Но, похоже, понял я тебя не до конца :blink:
 

beliy

Продвинутый
Сообщения
372
Репутация
72
все ключи находятся в файле .ini на сервере
это даст возможность получить доступ к ключам всех клиентов без особых усилий;)
Сделайте хотя бы таким способом:

Код:
$s_TextFromSite = InetRead('http://yourdomen.ru/' & $userID & '.ini')


где для каждого клиента будет свой ini.

Лучше храните ключи в БД, а для проверки используйте запросы к php скрипту который и будет взаимодействовать с БД.
Также не забывайте о том что декомпиляция скриптов Autoit не составляет особых проблем..
 
Верх