Страница 3 из 3
Как рассчитать контрольную сумму .exe файла программы
Добавлено: 29 Апрель 2015, 8:30
Admin
AlesDales писал(а): Кстати ссылка битая.
Не любит народ пользоваться тегами. Хитрые ссылки криво определяются phpbb3.
Как рассчитать контрольную сумму .exe файла программы
Добавлено: 29 Апрель 2015, 8:34
Игорь Столяров
AlesDales писал(а): Или ты думаешь, что человек скачавший взломанную программу будет заглядывать в ее сертификат и с ужасом обнаружит, что “подпись слетела”?
Нет ! Это всего лишь говорит о том, информация о внесении изменений в код программы есть.
Средства Windows - дают об этом информацию. Они достаточны для запрета запуска таких программ на "своих" компьютерах через права пользователя. Далее, если мы хотим использовать информацию о модификации кода для защиты программы от пиратского копирования, то должны анализировать ее в коде программы и уже принимать какие-то решения (запрещать запуск и т.д.). Разве я не прав ?
Вот ссылка в виде текста.
Код: Выделить всё
https://technet.microsoft.com/ru-ru/library/dd835564(v=ws.10).aspx
Как рассчитать контрольную сумму .exe файла программы
Добавлено: 29 Апрель 2015, 9:29
AlesDales
Игорь Столяров писал(а): Нет ! Это всего лишь говорит о том, информация о внесении изменений в код программы есть.
Так для этого достаточно проверять его контрольную сумму, с чего и началась эта дискуссия.
Один будет проверять контрольную сумму файла, другой считывать серийный номер процессора, ты будешь проверять достоверность сертификата во всех этих случаях достаточно отключить процедуру проверки.
Clarion начиная с 7 версии защищен платной системой защиты с ключами и жуткой криптоматематикой в суть которой я даже не стал вникать (что то из области векторных вычислений) – отключается изменением 3 байт.
Как рассчитать контрольную сумму .exe файла программы
Добавлено: 29 Апрель 2015, 9:42
Игорь Столяров
Ну это классика.
Слабое место в любой навороченной системе защиты - это пистолет к голове человека, который знает пароль.
Безусловно речь не идет о том, что проверка целостности файла даст какую-либо защиту от нелегального копирования.
Мы можем самостоятельно изобретать расчет и проверку хеша файла, или можем воспользоваться подписью сертификатом.
Далее уже вопрос использования этой информации - если она явно проверятся в одном месте, то просто отключается и все
(при наличии соответствующих навыков и знаний). Если она будет проверяться в 20 местах программы и не приводить к
явным сообщения и отказу в запуске - отключение такой примитивной защиты долгий процесс, и как ты правильно заметил,
имеет смысл только для дорогих и востребованных приложений.
Как рассчитать контрольную сумму .exe файла программы
Добавлено: 17 Май 2023, 19:51
Игорь Столяров
Оставлю здесь, вдруг пригодится.
Вот такой гибрид варианта Юрия и описания на ClarionHub выполняет расчёт
CRC32 полностью совместимый со стороними программами и сервисами:
Код: Выделить всё
Module('ClarionRTL')
TSC::CRC32(UNSIGNED pBuffer, ULong cbBuffer, ULong InitalCRC=0),ULong,Name('CLA$CRC32')
end
! --- Расчёт CRC32 by Internal Clarion
TSC::IntCRC32 Procedure(String pStr) !,ULONG
uCRC ULong(0FFFFFFFFh)
Code
uCRC = TSC::CRC32(Address(pStr), Size(pStr), uCRC)
Return BXOR(uCRC,0FFFFFFFFh)
Ну или напрямую (медленней, цикл в цикле):
Код: Выделить всё
! --- Расчёт CRC32 by Geoff Robinson -> https://clarionhub.com/t/crc32-document/4485/8
TSC::RobCRC32 Procedure(String pStr) !,ULONG
lCount Long,Auto
uCRC ULong(0FFFFFFFFh)
Code
Loop lCount = 1 to Size(pStr)
uCRC = BXOR(uCRC,Val(pStr[lCount]))
Loop 8 Times
uCRC = BXOR(BSHIFT(uCRC, -1), BAND(0EDB88320h, -(BAND(uCRC,1))))
end
end
Return BXOR(uCRC,0FFFFFFFFh)