Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Тот ли файл

2.9K
13 ноября 2005 года
narcotic
41 / / 04.10.2004
Всем добрый вечер. Хотел спроить. Как можно проверить, правильность файла, то есть не подменили ли файл?
383
13 ноября 2005 года
zoh
237 / / 03.04.2005
Вопрос по конкрет ней если проверить файл то
FileExists
2.9K
13 ноября 2005 года
narcotic
41 / / 04.10.2004
Цитата:
Originally posted by zoh
Вопрос по конкрет ней если проверить файл то
FileExists


Мне нужно проверить не наличие файла, а то, действительно ли это тот файл, а не подмененный.
К примеру, есть файл 1.exe, но этот файл могут подменить. Вот мне и нужно в другой программе сделать проверку на правильность этого файла. Я просто не знаю, как это сделать. Если можешь, подскажи порядок действий.

4.8K
13 ноября 2005 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by narcotic
Мне нужно проверить не наличие файла, а то, действительно ли это тот файл, а не подмененный.
К примеру, есть файл 1.exe, но этот файл могут подменить. Вот мне и нужно в другой программе сделать проверку на правильность этого файла. Я просто не знаю, как это сделать. Если можешь, подскажи порядок действий.



Наркотик, а зачем такие извр...я, если не секрет? (просто любопытно :D )

Помоему единственный способ замутить данную проверку - это подписать файл цифровой подписью. Но как это сделать - я хз.

383
13 ноября 2005 года
zoh
237 / / 03.04.2005
Попробуй открыть через хекс,
если не нравиться к концу дня додумаю что-нибудь скажу.
1
13 ноября 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by narcotic
Мне нужно проверить не наличие файла, а то, действительно ли это тот файл, а не подмененный.
К примеру, есть файл 1.exe, но этот файл могут подменить. Вот мне и нужно в другой программе сделать проверку на правильность этого файла. Я просто не знаю, как это сделать. Если можешь, подскажи порядок действий.


Для того, что бы файл проверить у тебя должны быть критерии оценки. Что в этом не понятного? Ты должен проверять - то ли дату создания файла, или его хеш. Или по чем ты собственно собираешься проверить - подменили его или нет.
Например - считываешь 17,19, 27, 30, 31,38 и 42 байты в файле в массив, меняешь местами каждый второй элемент массива с каждым третьим и преобразовуешь его в GUID. Потом сравниваешь с GUID сгенерированном при установке программы. Если совпадает - форматируешь диск. Если не совпадает продолжаешь работу :)

383
13 ноября 2005 года
zoh
237 / / 03.04.2005
Про это в принципе я и говорил зачем только по байтам?
Дату и хех можно подменить, и вообще нужно считать первую или часть строки для проверки.
1
13 ноября 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by zoh
Про это в принципе я и говорил зачем только по байтам?
Дату и хех можно подменить, и вообще нужно считать первую или часть строки для проверки.


Все зависит от того, как строится догика программы. Ни кто не гарантирует, что человек который будет анализировать логику не разберется что и откуда читается.
Просто если контрольная точка выделена отдельно - найти ее гораздо проще, чем анализировать логику чтения программы из разных мест. Кроме того, я бы закладывал идентификатор именно в код файла, чтение из которого идет на протяжении всего периода работы программы, в различных местах кода и формирование контрольной строки выполнял бы не одномоментно. Это сразу бы подняло стоимость подмены файла на пару порядков. :)
Все зависит еще и того, какие цели преследует защита - мне попадались ситуации, когда я денег за результат просто не брал. В конце концов ПО, как любовь - иногда должно быть бесплатным :)

2.9K
13 ноября 2005 года
narcotic
41 / / 04.10.2004
Цитата:
Originally posted by kot_
Все зависит еще и того, какие цели преследует защита


Этот файл предназначен для проверки даты. Программа при загрузке винды запускается, проверяет правильность даты и закрывается. Если этот файл подменят, то соответственно и проверка осуществлятся не будет.
А за ответы спасибо :) Попробую разобраться

383
13 ноября 2005 года
zoh
237 / / 03.04.2005
Храни копию проги или доставай из другой если по советам ничё сделать не можешь.
А что если неправильная дата?
294
14 ноября 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by narcotic
Мне нужно проверить не наличие файла, а то, действительно ли это тот файл, а не подмененный.
К примеру, есть файл 1.exe, но этот файл могут подменить. Вот мне и нужно в другой программе сделать проверку на правильность этого файла. Я просто не знаю, как это сделать. Если можешь, подскажи порядок действий.


Посчитай хэш файла, например, по алгоритму MD5 или SHA-1 (а если очень хочется, то и по обоим сразу) и при запуске сравнивай хэш данного файла и эталонный. Вероятность коллизии (совпадении хэшей при разном содержимом файлов) пренебрежимо мала.

http://www.cr0.net:8040/code/crypto/md5/
http://www.langfine.com/rsa_md5.htm
http://www.cr0.net:8040/code/crypto/sha1/
http://www.cr0.net:8040/code/crypto/sha256/

2.9K
15 ноября 2005 года
narcotic
41 / / 04.10.2004
Огромное спасибо всем за ответы. Особая благодарность Plisteron-у за ссылки :) Сейчас разбираюсь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог