Что нового

Идентификатор в скомпилированном скрипте, для последующего поиска

Webarion

Осваивающий
Сообщения
143
Репутация
24
Привет! Пытаюсь создать метку в скомпилированном скрипте, для последующего его обнаружения, вне зависимости от имени, но не получается. Подскажите, как это сделать? Сейчас делаю так:

Компилируемый скрипт:
Код:
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=0
#AutoIt3Wrapper_Run_Obfuscator=n
#AutoIt3Wrapper_Res_SaveSource=y
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

Const $IDENTIFICATOR = 'IDENTIFICATOR'


Скрипт поиска:
Код:
#include <File.au3>
Local $aFiles = _FileListToArray(@ScriptDir, '*.exe', 1)
If IsArray($aFiles) Then
	For $i = 1 To UBound($aFiles) - 1
		$hFile = FileOpen(@ScriptDir & '\' & $aFiles[$i], 0)
		If $hFile = -1 Then
			MsgBox(4096, 'Ошибка', 'Невозможно открыть файл ' & $aFiles[$i])
			Exit
		EndIf
		$sTxt = FileRead($hFile)
		If StringInStr($sTxt, 'IDENTIFICATOR')>0 Then ConsoleWrite('Найдена программа ' & $aFiles[$i] & @CRLF)
		FileClose($hFile)
	Next
EndIf
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Как вариант: после компиляции скрипта обработать (дописать) его другим скриптом:
Код:
$IDENTIFICATOR = 'IDENTIFICATOR'

$hFile = FileOpen("MyScript.exe", 16)
$sFile = FileRead($hFile)
If Not FileClose($hFile) Then Exit

$sFile &= StringToBinary($IDENTIFICATOR)

$hFile = FileOpen("MyScript2.exe", 2 + 16)
FileWrite($hFile, $sFile)
FileClose($hFile)

Тогда проверка будет выглядеть так:
Код:
$IDENTIFICATOR = 'IDENTIFICATOR'
If StringCompare(StringRight(FileRead("MyScript2.exe"), StringLen($IDENTIFICATOR)), $IDENTIFICATOR) Then Exit
MsgBox(64, '', 'Мой скрипт')
 
Верх