Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi]Написание антивируса


Автор: alertmy 9.5.2007, 16:34
Добрый время сутак. Я ученик Марупольского Городского Лицея. Для конкурса в Малую Академию Наук, нужно написать:
1. Клавиатурный сниффер (В принципе пока под вопросом, и не затрагивается)
2. Вирус (Буду вопросы - задам.)
3. Троянский конь (Точнее инсталятор, несущий в реестр информацию отличную от мирной  smile )
4. 3х модульный антивирус.
Вот самое важное... 
ВОПРОСЫ (Для начала, потом будут ещё):
1. Как осуществить поиск по базе вирусов (В указанной при помощи оператора "Открыть")
2. Как осуществить поиск именно в указанной папке
3. Как осуществить поиск именно в оперативной памяти по процессам, и где найти список процессов, которые являются дорокачественными и злокачественными?
4. Какой системой находятся подозрительные файлы? Каким образам?
 smile 

Автор: Romikgy 9.5.2007, 18:10
Ув. 
Цитата(alertmy @  9.5.2007,  15:34 Найти цитируемый пост)
ученик
alertmy, вы правила данного форума читали?

и что бы ответить на все эти вопросы , надо очень много времени!

Цитата(alertmy @  9.5.2007,  15:34 Найти цитируемый пост)
2. Вирус (Буду вопросы - задам.)
3. Троянский конь (Точнее инсталятор, несущий в реестр информацию отличную от мирной  smile )

тем более что это вообще запрещено на форуме!

Цитата(alertmy @  9.5.2007,  15:34 Найти цитируемый пост)
Как осуществить поиск

если в винда FindFirst поиск по нету и винапи

Автор: alertmy 9.5.2007, 22:38
Хорошо....
Тогда буду спрашивать по другому. 
Допустим есть кнопка Х, как сделать так, чтобы при нажатии на неё она проверяла диск С: по названием и весу, указаннаму в базе baza.txt    вида   №:nazvanie:ves-kb1:ves-kb2
(Номер:название:вес не менее и не более).
В совершенстве - если диск можно менять...
ПОЖАЛУЙСТА!

Автор: Yanis 9.5.2007, 22:48
alertmy
Копи деньги и иди в раздел «работа», а лучше купи какую-нибудь книжку по программированию в/на Delphi.

Автор: MetalFan 9.5.2007, 23:23
в винде есть встроенный механизм для поддержки создания антивирусов... вот как им пользоваться.... не помню)

Автор: alertmy 10.5.2007, 00:13
Не ну такой лёгкий был вопрос! А Вы тут нафлудили так...

Автор: aktuba 10.5.2007, 00:36
Цитата

Не ну такой лёгкий был вопрос! А Вы тут нафлудили так...


Если легкий - чего сам не решил?  smile 

Цитата

Допустим есть кнопка Х, как сделать так, чтобы при нажатии на неё она проверяла диск С: по названием и весу, указаннаму в базе baza.txt    вида   №:nazvanie:ves-kb1:ves-kb2
(Номер:название:вес не менее и не более).
В совершенстве - если диск можно менять...


Ты хочешь, чтобы тебе написали готовую функцию? Тогда тебе в раздел "Работа"... Тут только "наставляют на путь", а не решают за тебя задачи. Если выглядит грубо - пойми, у каждого из форумчан есть свои работа, семья, заботы, хоби, любимые и т.д. Никто не будет что-то делать за тебя.

А по поводу заданного вопроса - тут как-раз все просто. Рекурсивный обход диска с проверкой размера файла. Вот только если ты не знаешь рекурсии - думаю, ты долго будешь решать эту задачу. Вот тебе наброски:

Код

procedure ScanDir(Dir: string);
var
  SearchRec: TSearchRec;
begin
  if Dir <> '' then
    if Dir[length(Dir)] <> '\' then
      Dir := Dir + '\';

  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      if (SearchRec.name = '.') or (SearchRec.name = '..') then continue;
      if (SearchRec.Attr and faDirectory) <> 0 
        then ScanDir(Dir + SearchRec.name)
        else Showmessage(Dir + SearchRec.name);
    until
      FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;


Это рекурсивный обход диска. Использовать:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  ScanDir('c:');
end;


Проверку размера можно встроить в код выше:
Код

var
  Size: Int64;
...
  Size := SearchRec.FindData.nFileSizeHigh * 4294967296 + SearchRec.FindData.nFileSizeLow;


Примеры кодов не мои! Их даже искать не надо - выложены на каждом углу!!!

Автор: Guedda 10.5.2007, 11:55
Цитата(aktuba @  10.5.2007,  01:36 Найти цитируемый пост)
if Dir <> '' then
    if Dir[length(Dir)] <> '\' then
      Dir := Dir + '\';

Это делается одной процедурой:
Код

IncludeTrailingBackSlash(Path: string);

Вроде так...

Автор: Alexeis 10.5.2007, 12:02
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: keenara 10.5.2007, 16:02
Дураков нет, никто не будет тут тебе прогу ТАКОГО масштаба полностью писать. Запасайся капустой и ищи профи которые это сделают. Это во-первых. А во-вторых, что-то не верится мне что
Цитата
Для конкурса в Малую Академию Наук, нужно написать:
1. Клавиатурный сниффер (В принципе пока под вопросом, и не затрагивается)
2. Вирус (Буду вопросы - задам.)
3. Троянский конь (Точнее инсталятор, несущий в реестр информацию отличную от мирной  smile )

Это что ж за конкурс такой, ведь вирьмейкинг вообще занятие незаконное!

Автор: alertmy 10.5.2007, 21:34
Цитата

Это что ж за конкурс такой, ведь вирьмейкинг вообще занятие незаконное! 


Не ну не будем же просто антивирус писать. Мы в его базу введём созданный нами вирус (Просто ЭКСешник. Ну прогу для изменения в реестре и т.д.) и там при всех введём. Задание нам предложили.
 smile 

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