Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

Контрольная сумма файла.   Найти похожие ветки 

 
Leaner ©   (2004-09-25 10:45) [0]

Здравствуйте ! Помогите, пожалуйста !
Мне необходимо иметь возможность узнать, изменялся ли
Dll или exe файл, после моей последней проверки.
( DataCreate не подходит ). Хочется запоминать что-то типа
его контрольной суммы, и потом сравнивать. Но я совершенно не знаю
структуры exe-шников. Как из любого dll или exe вытащить контрольную сумму
или что-нибудь подобное ?


 
Defunct ©   (2004-09-25 10:54) [1]

открыть итересующий файл для exe или dll чтения, прочитать его в буфер, закрыть файл, просуммировать все байты, а лучше dword"ы - вот вам и контрольная сумма. Для этого не надо знать структуры файла.


 
GuAV ©   (2004-09-25 10:56) [2]


> просуммировать все байты, а лучше dword"ы - вот вам и контрольная
> сумма

Но лучше использовать не такую сумму, а CRC.


 
Defunct ©   (2004-09-25 11:04) [3]

имелось ввиду просуммировать по модулю (всмысле XOR).


 
GuAV ©   (2004-09-25 11:15) [4]


> имелось ввиду просуммировать по модулю (всмысле XOR).

Имхо практически то же самое, а CRC лучше.


 
Leaner ©   (2004-09-25 11:32) [5]

>просуммировать все байты
А это не слишком долго ? Если надо проверять очень много файлов.
Может легче получить уже готовые данные из exe ?


 
Defunct ©   (2004-09-25 12:09) [6]

> А это не слишком долго ?

примерно 0.05 сек на файл объемом 1Mb
может быть быстрее, может медленнее.
Во всяком случае гораздо быстрее чем Rar извлекает файлы из архива.

> Может легче получить уже готовые данные из exe ?
А с чего вы взяли, что там есть контрольная сумма? Нет ее там.


 
Leaner ©   (2004-09-25 12:20) [7]

Спасибо.
P.S. А жаль, что нет.


 
Defunct ©   (2004-09-25 12:37) [8]

Хотя вру.. в заголовке PE файла есть CheckSum:Word смещение 0018 от начала файла, но это немного не та CheckSum, которая вам нужна.


 
DVM ©   (2004-09-25 12:58) [9]

В связи с контрольными суммами у меня возник тоже вот какой вопрос.
Допустим надо проверять не хакнута ли программа (не меняли ли ее код) из нее самой. Т.е. контрольную сумму ее исполняемого файла надо поместить в код программы. Но возможно ли это вообще? Ведь после перекомпиляции получим уже другой файл с другой контрольной суммой. Даже если ничего не менять в файле они после каждой сборки различаются. Можно такое осуществить?


 
Defunct ©   (2004-09-25 13:06) [10]

> Т.е. контрольную сумму ее исполняемого файла надо поместить в код программы.

Да, конечно можно.

Делаете модуль в котором будут сл. функции:
1. посчитать контрольную сумму (КС) Dword"ов EXE файла, при этом последние 20 байт файла не учитывать.
2. заменить последние 4 байта EXE-файла на КС
3. считать последние 4 байта.

вот потом пишете прединсталлятор, который будет добавлять в вашу программу КС, пользуясь функциями [1,2] модуля.

В самой "защищяемой" программе используете функции [3, 1] того же модуля при старте программы.


 
Defunct ©   (2004-09-25 13:09) [11]

IMHO хакеры снесут эти функции, поэтому их надо как-то "присыпать" левым ассемблерным кодом, чтобы трудно было понять их назначение.



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1096303312
Pine
2004-09-27 20:41
2004.10.10
Можно ли увеличить скорость обработки принтером из отчета QReport


6-1091593309
Дмитрий Ботвин
2004-08-04 08:21
2004.10.10
Объём оперативной памяти


14-1095594379
_iceman_home
2004-09-19 15:46
2004.10.10
Проблемы с монитором


4-1093924089
Бушин Сергей
2004-08-31 07:48
2004.10.10
Hook для файловой системы


1-1096262854
Орехов Д.В.
2004-09-27 09:27
2004.10.10
Как выполняется