Что нового

Запуск скрипта на определённом компьютере

Notum

Новичок
Сообщения
71
Репутация
0
Всем привет!

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

Единственное, к чему я пришел - это сделать список разрешённых MAC-адрессов и при запуске - сверять текущий мак с списком разрешенных, НО тут есть одно НО - если пользователь знает что подменить, то MAC-адресс можно подменить не напрягаясь.

У кого какие идеи/советы?

Заранее спасибо!
 

hikki

Продвинутый
Сообщения
233
Репутация
99
Сдается мне, что если пользователь умеет подменять макадрес, то и с декомпиляцией у него проблем не будет. И опять замкнутый круг, те от кого требуется защита - ее обойдут без проблем, а честные пользователи будут вынуждены терпеть неудобства.
 

AZJIO

Меценат
Меценат
Сообщения
2,891
Репутация
1,195
Notum
По железу, в реестре коды устройств.
по серийному номеру харда
Код:
#NoTrayIcon ;скрыть в системной панели индикатор AutoIt

; начало создания окна, вкладок, кнопок.
GUICreate("Инфа о дисках",230,192) ; размер окна
;GUICtrlCreateTab (0,0, 230,192) ; размер вкладки
;GUICtrlCreateTabitem ("") ; имя вкладки

$bykvadicka80=GUICtrlCreateCombo ("", 10,8,90,18)
$DrivesArr = DriveGetDrive( "all" )
$list=''
For $i=1 To $DrivesArr[0]
   $DrTp = DriveGetType( $DrivesArr[$i]&'\' )
	If $DrTp='Removable' Then $DrTp='Rem'
	If $DrivesArr[$i]<>'A:' Then Assign('list', $list&'|'&StringUpper($DrivesArr[$i])&' ('&$DrTp&')')
	If $DrivesArr[$i]='c:' Then $dr=$i
Next
GUICtrlSetData($bykvadicka80,$list,StringUpper($DrivesArr[$dr])&' ('&DriveGetType( $DrivesArr[$dr]&'\' )&')')

GUICtrlCreateLabel (" FS:", 10,40,100,18)
GUICtrlCreateLabel (" метка тома:", 10,60,100,18)
GUICtrlCreateLabel (" серийный номер:", 10,80,100,18)
GUICtrlCreateLabel (" тип:", 10,100,100,18)
GUICtrlCreateLabel (" размер:", 10,120,100,18)
GUICtrlCreateLabel (" свободно:", 10,140,100,18)
GUICtrlCreateLabel (" статус:", 10,160,100,18)


$Label1=GUICtrlCreateLabel ("", 115,40,100,18)
$Label2=GUICtrlCreateLabel ("", 115,60,100,18)
$Label3=GUICtrlCreateLabel ("", 115,80,100,18)
$Label4=GUICtrlCreateLabel ("", 115,100,100,18)
$Label5=GUICtrlCreateLabel ("", 115,120,100,18)
$Label6=GUICtrlCreateLabel ("", 115,140,100,18)
$Label7=GUICtrlCreateLabel ("", 115,160,100,18)

_info() 

GUISetState ()

While 1
	$msg = GUIGetMsg()
	Select
        Case $msg = $bykvadicka80
		   _info() 
		Case $msg = -3
			ExitLoop
	EndSelect
WEnd


; функция чтения информации о выбранном диске
Func _info() 
$bykvadicka081=StringMid(GUICtrlRead ($bykvadicka80), 1,1)
GUICtrlSetData($Label1,DriveGetFileSystem( $bykvadicka081&":\" ))
GUICtrlSetData($Label2,DriveGetLabel( $bykvadicka081&":\" ))
GUICtrlSetData($Label3,DriveGetSerial( $bykvadicka081&":\" ))
GUICtrlSetData($Label4,DriveGetType( $bykvadicka081&":\" ))
GUICtrlSetData($Label5,Round(DriveSpaceTotal( $bykvadicka081&":\" )/1024,1)&' Гб')
GUICtrlSetData($Label6,Round(DriveSpaceFree( $bykvadicka081&":\" )/1024,1)&' Гб')
GUICtrlSetData($Label7,DriveStatus( $bykvadicka081&":\" ))
EndFunc   ;==>_info



Notum [?]
НО - если пользователь знает что подменить
хотите обмануть пользователя такого же как вы? Я бы снял скрипт из процессов, а не искал бы от чего он запущен.
 
Автор
N

Notum

Новичок
Сообщения
71
Репутация
0
хотите обмануть пользователя такого же как вы? Я бы снял скрипт из процессов, а не искал бы от чего он запущен.
А как такое можно сделать? Можно пример?
 

illja

Знающий
Сообщения
30
Репутация
10
Код:
$proverkaHD = "2957800440"

disk()

Func disk()
	$Dserial = DriveGetSerial("C:")
	If $Dserial <> $proverkaHD Then
		MsgBox(0, "", "Не правильный идентификатор")
	EndIf

EndFunc   ;==>disk

функция получения серийника логического диска




Код:
$ProverkaMBMF = "ASRock"
$proverkaMBSR = "124388365190874                      "

mama()

Func mama()

	$oService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
	For $oMB In $oService.ExecQuery("SELECT * FROM Win32_BaseBoard")
	Next
	$proverkaMBSR1 = $oMB.SerialNumber
	$ProverkaMBMF1 = $oMB.Manufacturer
	If $ProverkaMBMF <> $ProverkaMBMF1 Or $proverkaMBSR <> $proverkaMBSR1 Then
		MsgBox(0, "", "Была произведена попытка передачи программы")
		Exit
	EndIf
EndFunc   ;==>mama



производитель и s/n материнки
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
А на форуме поискать?

*click*
 
Верх