Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.089 c
2-1129462287
STEEL
2005-10-16 15:31
2005.11.06
Перевод курсора на новую строку


2-1129109140
L*D
2005-10-12 13:25
2005.11.06
Как спрятать консолевое приложение?


1-1129711467
saNat
2005-10-19 12:44
2005.11.06
Упорядочение создания компонент


14-1129004148
БарЛог
2005-10-11 08:15
2005.11.06
Религия и эгоизм?


3-1127454524
Aliv
2005-09-23 09:48
2005.11.06
invalid filename при попытке создать таблицу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский