Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Как подсчитать File CheckSum у exe или sys

Автор: aZer
Дата сообщения: 24.01.2008 22:38
Как подсчитать File CheckSum
на любом языке программирования...

То что выдает например PE Explorer



сорри за ламерство...
хотя бы пошлите читать матчасть с указанием про что? какой метод подсчета данной контрольной суммы...
Автор: Tantos
Дата сообщения: 25.01.2008 01:44
В любой поисковик по CRC32
Автор: aZer
Дата сообщения: 25.01.2008 08:27
простите за глупость, но непонятно как считается CRC32 в данном случае...

вот посчитал CRC32 целиком файла получилось 76E3F64C и никак не бъется...

Может это не CRC32 или считает со смещением?
Автор: delover
Дата сообщения: 25.01.2008 13:05
Tantos

Цитата:
CRC32

Сомневаюсь.

aZer
Многие компиляторы записывают в заголовок EXE файла Checksum=0, например Delphi.
Checksum считают с помощью IMAGEHLP.DLL. Там есть функция CheckSumMappedFile.
Если тебя интересует код Delphi как посчитать Checksum по новой то это:

Код: [no]uses
ImageHlp;

procedure DoChecksum;
var
M: TMemoryStream;
I, C: Integer;
begin
M := TMemoryStream.Create;
try
M.LoadFromFile('D:\Windows\explorer.exe');
CheckSumMappedFile(M.Memory, M.Size, @I, @C);
ShowMessageFmt('%x', [C]);
finally
M.Free;
end;
end;[/no]
Автор: dmka
Дата сообщения: 25.01.2008 14:19

Цитата:
Может это не CRC32 или считает со смещением?

Кажется там обычный CRC32, только поле Checksum должно быть заполнено нулями, потому как оно заполняется уже после подсчета CRC файла.
Автор: aZer
Дата сообщения: 25.01.2008 15:16
delover
Огромное спасибо...

И в дополнение, потом сразу же нашел то что нужно было... благодаря информации о IMAGEHLP
http://www.dotfix.net/module.php?module=@6e786b36696d69666d74756c

т.к. мне не тока его считать нужно, а так же записывать в поле CheckSum


Добавлено:
dmka

Цитата:
Кажется там обычный CRC32, только поле Checksum должно быть заполнено нулями, потому как оно заполняется уже после подсчета CRC файла.

Часто, но не всегда поле CheckSum=0000000h это я знаю...

Я жеж спрашивал как посчитать...
Ответ получил...
теперь ищу PElib для Delphi - в этом деле нужная штука...
Автор: dmka
Дата сообщения: 27.01.2008 14:06
aZer

Цитата:
Я жеж спрашивал как посчитать...

Ну я тебе и говорю - считается CRC32 файла с CheckSum=0000000h, а результат записывается обратно в CheckSum. Или считается CRC32 файла "как есть" и вычитается значение CheckSum из заголовка.

Страницы: 1

Предыдущая тема: DBGridEh.Options ошибка


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.