Автор Тема: SelfTest - UDF для контроля целостности скомпилированного скрипта  (Прочитано 5305 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ynbIpb [?]

  • Скриптер
  • ****
  • Сообщений: 398
  • Репутация: 109
  • Пол: Мужской
    • Награды
AutoIt: 3.3.6.1
Версия:  0.1

Категория: Вспомогательные функции, Кодирование / Шифрование

Описание: Данная UDF предназначена для самопроверки целостности скомпилированного скрипта.  Проверка реализована с помощью алгоритма хэширования MD5. Принцип работы: Так как заранее нам не известен MD5 хэш скомпилированного скрипта, то мы не можем его сохранить в самом скрипте. По этому информация добавляется уже после компиляции путём добавлением нескольких байт в конец *.exe файла. А чтобы она не была в открытом виде, информация шифруется алгоритмом XXTEA. При запуске функция высчитывает MD5 хэш части файла без добавленных в конец байтов. Потом читает байты в конце, расшифровывает их и сравнивает с полученным хэшем. Использование: Скомпилировать Demo пример, потом обратотать готовый EXE в SelfTest_Patcher.au3 (естественно пароль в переменной $sPassword должен соответствовать введённому в окне патчера)

Код/Пример:
(нажмите для показа/скрытия)
Файл: в аттаче всё необходимое

Снимок:


История версий:

Источник: autoit-script.ru
Автор(ы): ynbIpb (SelfTest_Patcher.au3, _SelfTest),   Ward (_MD5, _XXTEA_Encrypt, _XXTEA_Decrypt)

Русское сообщество AutoIt


Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2700
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Хорошая идея (+1), но IMHO шифрование здесь явно лишнее. Зачем? Ведь MD5 и так является уникальным. Если кому-нибудь приспичит что-то изменить в .exe файле, то он просто выудит оттуда исходный код, а не будет заморачиваться с MD5, не говоря уже о шифровании. Для такой глобальной защиты, проще использовать различные упаковщики, например PECompact.


Думай, прежде чем говорить.

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 963
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вот вам и привязка к компьютеру IMHO!
Функция от Yashied`а по сбору ифо. по железу + SelfTest
В момент запуска программы, функция от Yashied`а собирает инфо. по железу. Функция SelfTest, проверяет байты в конце, и если они отсутствуют или не совпадают с данными функции по сбору инфо. железа то, запускает дочерний процесс, который просит ввести ключ. Программа при этом завершается, чтобы её можно было пропатчить. Дочерний процесс, после того как пропатчит программу или получит отказ от пользователя, уничтожается.

Ключ, это комбинация, которая генерируется и показывается единственный раз, на основании инфо. железа.
Показывается он пользователю, в момент первого старта программы, то есть в тот момент, когда SelfTest, не находит байты в конце. Иначе SelfTest сообщит вам что вы запустили программу на чужом компьютере, и закроет программу!

Скорблю и помню.




Русское сообщество AutoIt


Оффлайн ynbIpb [?]

  • Скриптер
  • ****
  • Сообщений: 398

  • Автор темы
  • Репутация: 109
  • Пол: Мужской
    • Награды
Рад, что вам понравилась идея. Если честно я её подглядел на англ. форуме и давно собирался реализовать. Цель защититься не от взлома, а скорее от заражения вирусом. А шифрование может и лишнее, но решил - пусть будет.

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2700
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Цель защититься не от взлома, а скорее от заражения вирусом.

Я тоже об этом сначала подумал. Но... для этого нужно, чтобы "целостность" файла проверялась не в самой программе, а в отдельном модуле. В противном случае, заражения не избежать. Можно лишь узнать о самом его факте.

Русское сообщество AutoIt


Оффлайн ynbIpb [?]

  • Скриптер
  • ****
  • Сообщений: 398

  • Автор темы
  • Репутация: 109
  • Пол: Мужской
    • Награды
Я так обычно и проверяю. Рядом с файлом лежит *.md5 файл, в системе установлена программа, с которой это расширение ассоцированно. При клике на *.md5 файле я узнаю не изменились ли контролируемые файлы.
Программа: _http://getmd5checker.com/
 А вот самопроверку сделал после случая когда заразил свою флешку и продолжал ей пользоваться, запуская свои файлы на других компах. А вот если бы они сразу октазались работать я бы обнаружил заражение раньше. Кстати этот метод самопроверки не спасёт от вирусов, которые работают по принципу джоинера. Тоесть они не добавляют своё тело к имеющемуся файлу, а склеивают исходный файл и файл вируса в один EXE, а при запуске извлекают их в темп и запускают.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
13 Ответов
10165 Просмотров
Последний ответ Июнь 12, 2010, 05:44:07
от Yura1970
2 Ответов
3779 Просмотров
Последний ответ Май 04, 2013, 13:07:46
от inververs
2 Ответов
2278 Просмотров
Последний ответ Август 13, 2013, 18:37:01
от Afonichev
34 Ответов
10436 Просмотров
Последний ответ Август 25, 2013, 01:59:38
от CreatoR
2 Ответов
3358 Просмотров
Последний ответ Декабрь 10, 2014, 20:12:48
от autoall
0 Ответов
816 Просмотров
Последний ответ Февраль 13, 2015, 01:17:09
от Yashied
3 Ответов
1148 Просмотров
Последний ответ Февраль 29, 2016, 11:52:39
от joiner
3 Ответов
893 Просмотров
Последний ответ Декабрь 19, 2016, 16:16:46
от kolosov
1 Ответов
704 Просмотров
Последний ответ Июнь 27, 2017, 20:05:43
от Alofa
3 Ответов
609 Просмотров
Последний ответ Ноябрь 18, 2017, 00:04:13
от musicstashall