1

Тема: AHK: Как заблокировать выполнение скрипта на других компьютерах?

Хочу запретить распространение моих скриптов среди сотрудников без моего ведома. Т.е. как сделать так, чтобы, если вдруг мой скрипт скопируют на другой компьютер, без моего первичного вмешательства в код, он не работал?
Это возможно?

2

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

Самый простой способ — проверить серийный номер какого-либо диска командой DriveGet.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

От продвинутых сотрудников не спастись. А что, скрипт оказался очень востребованным?

5

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

teadrinker Почему-то не читает серийник когда задаю диск явно:


	DriveGet, DriveNumber, serial, C:\
	MsgBox, %DriveNumber%

А вот если выбирать диск руками, а не задавать - то все ок:


	FileSelectFolder, folder, , 3, Выберите диск для анализа:
	if folder = 
		return
	DriveGet, DriveNumber, serial, %folder%
	MsgBox, %DriveNumber%

Подскажите пожалуйста, почему так?

6

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

__Михаил__ спасибо, но реестр рабочих компов боюсь трогать. Лучше что-нибудь по-проще.

7 (изменено: pavel.garshin.01, 2022-06-22 22:56:07)

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

8

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

9 (изменено: pavel.garshin.01, 2022-06-22 23:06:20)

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

__Михаил__, ага, я тоже об этом подумал. Буду сверять серийник диска с записью в ini-файле. Отправлять сотруднику буду пустой ini. А уже у него на месте запишу в ini серийник диска.
Однако прочитать серийник у меня до сих пор не получается. Не знаете в чем причина?

10

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

pavel.garshin.01 пишет:

Подскажите пожалуйста, почему так?

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

teadrinker виноват. Теперь все работает.
Испытывал в старом скрипте, где полно всякого кода - не работало. Видно конфликтовало с чем-то.
Записал в новый скрипт - работает.

12

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

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

13 (изменено: pavel.garshin.01, 2022-06-22 23:39:18)

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

ypppu, т.е. получается в скрипте делаю проверку пароля с сохранением его в реестр. А в следующие разы при включении скрипта будет автозаполнение пароля из реестра? Так, что ли?
Что-то не то. Я не так понял. Может вы имеете ввиду: в скрипте сделать сверку с паролем из реестра, который первоначально нужно туда внести вручную. Так правильней?

14

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

15

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

ypppu вроде бы понял. Но как реализовать - пока сложновато для меня. Буду гуглить

16

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

ypppu пишет:

Если ни разу не вводился, скрипт предлагает ввести пароль.

У всех входящих он строго требовал пропуск, но если ему пропуска не давали, то он пускал и так.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

  • Вообщем вариант с ini-файлом мне не понравился, т.к. он слишком легко открывается. Открывается как любой текстовый файл -  двумя щелчками. Я не ожидал такого - поэтому забраковал этот вариант.

  • Сделал то же самое, только с dat-файлом. И все было хорошо, но уж слишком подозрительно когда рядом с файлом-скриптом находится какой непонятный файл непонятного расширения. Так и хочется его открыть блокнотом. Эхх, поэтому этот вариант тоже отпал.

  • Вариант с реестром мне понравился, но пока не реализовал. Да и я все еще не уверен, можно ли так смело использовать реестр на раб. компьютере.

Пока что буду использовать самый простой и самый надежный на данным момент вариант, который не будет вызывать подозрений:


	DriveGet, DriveNumber, serial, C:\
	;MsgBox, %DriveNumber%
	
	if(DriveNumber . "" == "137449007")
	{
		;выполняем скрипт
	}

На каждой новой машине буду читать через MsgBox серийник и изменять значение в проверке.
Всем спасибо за советы.

18

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

Только все кавычки в данном случае лишние.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

teadrinker пишет:
ypppu пишет:

Если ни разу не вводился, скрипт предлагает ввести пароль.

У всех входящих он строго требовал пропуск, но если ему пропуска не давали, то он пускал и так.

Где смеяться? Скрипт не будет работать, если пользователь введёт неправильный пароль. А если правильный пароль уже был введён, скрипт увидит это в реестре и заработает без запроса пароля.

20

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

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

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

22

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

teadrinker, это один из вариантов. Он не лучше и не хуже.

23

Re: AHK: Как заблокировать выполнение скрипта на других компьютерах?

Он явно сложнее, но при этом не даёт никаких преимуществ. Соответственно, он объективно хуже.
Next, думаю, здесь не тот случай.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder