Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Контроль целосности програмки


Автор: SAVANE 8.5.2008, 12:48
Как сделать чтоб программа при запуске проверяла сама свой екзешник по размеру и если он отличается от заданого прописаного где нибудь в реестре выдавала сообщение что возможно файл поврежден и прекращала работу?

Автор: Rennigth 8.5.2008, 13:27
Дык в чем проблема? Узнать размер файла?
Код

FileSize



Автор: SAVANE 8.5.2008, 14:55
Цитата(Rennigth @  8.5.2008,  13:27 Найти цитируемый пост)
Дык в чем проблема? Узнать размер файла?



Код

procedure TForm1.FormCreate(Sender: TObject);
var
f: file;
i: integer;
begin
assignfile(f, 'c:\aaa.exe');
reset(f);
i:=filesize(f);
showmessage(inttostr(i));
closefile(f);
end;


Ошибка I/O Error 23
Файл должен смотреть свой розмер

Автор: Poseidon 8.5.2008, 15:00
В DRKB есть статья "Вирусы: обнаружение заражения". Как раз то что тебе надо.

Автор: Snowy 8.5.2008, 15:17
Контроль размера не гарантирует целостности.
Нужно считать контрольную сумму.

Автор: SAVANE 8.5.2008, 15:19
Snowy , Poseidon
Спаибо. То что доктор прописал. 
В принцыпе вопрос решенный тоько все же интересно, как ехе шник может сам проверить свой размер.

Автор: Snowy 8.5.2008, 16:34
Код
  with TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone) do
  begin
    размер := Size;
    Free;
  end;
Также можно через FindFirst

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)