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

Вниз

CRC ????   Найти похожие ветки 

 
el_bandito   (2005-10-15 15:50) [0]

Многие знают что такое контрольная сумма,
и многие умеют ее получать.
Но у меня появился вопрос:
каким образом можно получить CRC не всей програмы ,
а например первых 100 байт программы???


 
palva ©   (2005-10-15 17:07) [1]

Взять первые 100 байтов и посчитать CRC по используемому вами алгоритму.
А в чем прикол?


 
Германн ©   (2005-10-16 00:59) [2]

2 el_bandito   (15.10.05 15:50)
Вопрос звучит странно.

> Многие знают что такое контрольная сумма,
> и многие умеют ее получать.
Т.е. надо понимать, что в число этих многих ты тоже входишь?
Но если так, то вопрос:

> каким образом можно получить CRC не всей програмы ,
> а например первых 100 байт программы???
просто не мог возникнуть!

Или у тебя есть некая программа, которая умеет вычислять некую CRC файла, но ты ищешь программу, которая могла бы считать CRC части файла? Я такую не знаю.


 
el_bandito   (2005-10-16 16:17) [3]

Засада состоит в том что у меня есть некий код(на делфи) со вставками асамблер, который вычесляет CRC, но есть одно но я асамблер не рублю
поэтому полностью вникнуть в весь алгоритм не могу.
вот он:
function GetCheckSum(FileName: string): DWORD;
var
 F: file of DWORD;
 P: Pointer;
 Fsize: DWORD;
 Buffer: array[0..500] of DWORD;
begin
 FileMode := 0;
 AssignFile(F, FileName);
 Reset(F);
 Seek(F, FileSize(F) div 2);
 Fsize := FileSize(F) - 1 - FilePos(F);
 if Fsize > 500 then
   Fsize := 500;
 BlockRead(F, Buffer, Fsize);
 Close(F);
 P := @Buffer;
 asm
    xor eax, eax
    xor ecx, ecx
    mov edi , p
    @again:
      add eax, [edi + 4*ecx]
      inc ecx
      cmp ecx, fsize
    jl @again
    mov @result, eax
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(IntToStr(GetCheckSum("c:\Autoexec.bat")));
end;(взят с ДелфиВорлд)

Может кто подскажет как это сделать?


 
Германн ©   (2005-10-16 17:35) [4]

Ну так тут вовсе не CRC.
В GetCheckSum просто вычислияется тривиальная сумма значений двух тысяч байт взятых из середины файла.



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

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

Наверх




Память: 0.47 MB
Время: 0.039 c
3-1127827263
vishnia
2005-09-27 17:21
2005.11.06
Index is out of date - почему?


3-1127813135
Wolferio
2005-09-27 13:25
2005.11.06
Удаление всех записей в базе.


2-1129296467
kolos_rus
2005-10-14 17:27
2005.11.06
Descktop на DELPHI


14-1129646450
Fin
2005-10-18 18:40
2005.11.06
Опять про миранду.


1-1128978861
Ricks
2005-10-11 01:14
2005.11.06
Рисование поверхностей (желательно OpenGL)