|
|
  |
Проверка целостности exe-файла, C Builder 6 |
|
|
|
Feb 11 2011, 16:59
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(toweroff @ Feb 11 2011, 19:12)  Здравствуйте! Есть задача self-test исполняемого exe-файла Как это лучше сделать? Выщемить имя, под которым его запустили, открыть, считать и рассчитать всякие MD5 & SHA1, сравнить с константами? Но при модификации констант изменятся и хэши... что-то я совсем запутался  Если известно место, где находится образец контрольной суммы, то можно находить частные контрольные суммы ДО и ПОСЛЕ этого образца, т.е. за исключением самого эталона КС, хранящегося в файле. Приведу пример, чтобы стало яснее. Например, создать в области констант строку типа "Эталон_контрольной суммы = 0x123456789", вколотив в него сначала произвольные цифры. Затем открываете файл и ищете начало надписи "Эталон_контрольной суммы = " и вычисляете знакоместо после конца этой записи (там, где цифра должна начаться). Пусть это значение будет P1-й байт от начала файла. А после этого вычисляем знакоместо после цифры 0x123456789. Пусть это будет P2=P1+11. А дальше просто - вычисляете констрольные суммы файла от 0 до P1, и от P2 до конца файла, а потом их складываете. Это число и надо будет запихнуть в программу при следующей компиляции, заменив им число 0x123456789. Понятно, что на это место можно запихать любое число, не рискуя тем, что ваша контрольная сумма от этого изменится. Если требуется обеспечить секретность, то число можно положить в бинарном виде, а ярлычок к ней "Эталон_контрольной суммы =" тоже заменить как какую-нибудь уникальную бинарную цифирь.
|
|
|
|
|
Feb 11 2011, 17:34
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(Xenia @ Feb 11 2011, 19:59)  Если известно место, где находится образец контрольной суммы, то можно находить частные контрольные суммы ДО и ПОСЛЕ этого образца, т.е. за исключением самого эталона КС, хранящегося в файле.
Приведу пример, чтобы стало яснее. Например, создать в области констант строку типа "Эталон_контрольной суммы = 0x123456789", вколотив в него сначала произвольные цифры. Затем открываете файл и ищете начало надписи "Эталон_контрольной суммы = " и вычисляете знакоместо после конца этой записи (там, где цифра должна начаться). Пусть это значение будет P1-й байт от начала файла. А после этого вычисляем знакоместо после цифры 0x123456789. Пусть это будет P2=P1+11. А дальше просто - вычисляете констрольные суммы файла от 0 до P1, и от P2 до конца файла, а потом их складываете. Это число и надо будет запихнуть в программу при следующей компиляции, заменив им число 0x123456789. Понятно, что на это место можно запихать любое число, не рискуя тем, что ваша контрольная сумма от этого изменится. Если требуется обеспечить секретность, то число можно положить в бинарном виде, а ярлычок к ней "Эталон_контрольной суммы =" тоже заменить как какую-нибудь уникальную бинарную цифирь. спасибо, я тоже в таком направлении начал думать, немного смущали два хеша посмотрел еще в сторону сторонних скрывателей кода, типа Themida, WinLicense и иже с ними тут можно проверкой не заморачиваться -- они сами это все встроят и, мало того, зашифруют код и запустят под своей виртуалкой. Какое мнение по поводу такого софта вообще? Смущает такая вещь, не хочется, чтобы клиенты потом в саппорт оборвали телефон и завалили почтовый ящик кучей гневных писем  У меня стоит Nod32, так он, по ходу, не может добраться до развернутого в памяти процесса и особо не заморачивается -- тупо говорит, что файл содержит win32/packed.themida.AAG трояна и швыряет файл в карантин
|
|
|
|
|
Feb 12 2011, 17:38
|

I WANT TO BELIEVE
     
Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751

|
Ну то, что это не просто защищалка файлов, а полноценный и мощный протектор, имеющий не мало опций и режимов защиты, надеюсь, объяснять не нужно ) Поэтому надо и начинать с изучения доков и выбора режимов защиты.... dllки там ещё как-то линкуются... в общем много чего подкрутить там можно, чтобы разглючить.
плюс ещё может кряка неудачная... Я, помнится, настройки крутил-вертел, да...так что, наверное, это нормально для армадиллы.
--------------------
The truth is out there...
|
|
|
|
|
Feb 12 2011, 17:47
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(sigmaN @ Feb 12 2011, 20:38)  Ну то, что это не просто защищалка файлов, а полноценный и мощный протектор, имеющий не мало опций и режимов защиты, надеюсь, объяснять не нужно ) Поэтому надо и начинать с изучения доков и выбора режимов защиты.... dllки там ещё как-то линкуются... в общем много чего подкрутить там можно, чтобы разглючить. ну это понятно... винлицензе особо не требовала, только ключи сгенерировать, все остальное -- опционально (хотя система защиты, насколько я покопался, более интересная -- на базе своей виртуальной машины) тут, по ходу, она еще и сертификаты встраивает... но почему ни слова не говорит? закрывается и все  Цитата(sigmaN @ Feb 12 2011, 20:38)  плюс ещё может кряка неудачная... Я, помнится, настройки крутил-вертел, да...так что, наверное, это нормально для армадиллы. похоже, копаться придется насчет кряка -- если она его "съела", -- значит хорошо?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|