Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2016, 10:23   #1
Pascal12345
 
Регистрация: 03.03.2016
Сообщений: 5
По умолчанию Поиск сигнатуры в файле

Нужно создать программу наподобие антивируса. Из файла tracert.exe в папке windows нужно взять сигнатуру (не менее 16 знаков (цифр)),ее нужно вписать в программу как константу.Далее эту сигнатуру программа должна проверять в каждом файле,который там есть. Если она будет такая же,программа должна выдать этот файл и путь к нему. Когда программа закончит все эти файлы проверять,то она должна написать "поиск окончен"
Знаю, что нужно пользоваться программой winhex.
Pascal12345 вне форума Ответить с цитированием
Старый 03.03.2016, 10:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

WinHex не особо нужен здесь.

для поиска можете воспользоваться темами:
http://www.programmersforum.ru/showthread.php?t=196864

http://www.programmersforum.ru/showthread.php?t=201993
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2016, 12:24   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Знаю, что нужно пользоваться программой winhex.
И всё?!
Меня больше интересует, почему именно tracert.exe, и с какого смещения сигнатуру брать-то?
Поиск по стриму - это отдельная история.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 03.03.2016, 17:30   #4
Pascal12345
 
Регистрация: 03.03.2016
Сообщений: 5
По умолчанию

16 знаков любых с файла tracert.exe и по ним искать этот файл в каталоге
Pascal12345 вне форума Ответить с цитированием
Старый 03.03.2016, 17:35   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Pascal12345 Посмотреть сообщение
16 знаков любых с файла tracert.exe и по ним искать этот файл в каталоге
в принципе, понятно.
не факт, конечно, что такие же точно 16 байт подряд не найдутся в другом файле, но идея ясна.

Как делать Вам выше рассказали.
Можно смело приступать к реализации поиска.

к слову, а Паскаль у Вас какой?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2016, 17:45   #6
Pascal12345
 
Регистрация: 03.03.2016
Сообщений: 5
По умолчанию

Turbo,ABC,Lazarus
Pascal12345 вне форума Ответить с цитированием
Старый 03.03.2016, 17:46   #7
Pascal12345
 
Регистрация: 03.03.2016
Сообщений: 5
По умолчанию

то что прислали выше, не то что надо.
Pascal12345 вне форума Ответить с цитированием
Старый 03.03.2016, 17:47   #8
Pascal12345
 
Регистрация: 03.03.2016
Сообщений: 5
По умолчанию

uses Dos;
type
buf = array [1..16] of byte;

const
signature:buf = ($0F,$7F,$44,$24,$28,$89,$44,$24,$3 8,$B8,$17,$00,$00,$00,$49,$8D);
var
scanF: file;
block:byte;
s:searchRec;
CurDir:string;



procedure findSign(const findFile: string) ;
var i:integer;
begin
assign(scanF, findFile);
reset(scanF,1);
i:=1;
while not EoF(scanF) do
begin
blockread(scanF, block, 1);
if block=signature[i] then
begin
if i=16 then
write(' - НАЙДЕНА СИГНАТУРА!!!');
else i:=i+1;
end
else i:=1;
end;
end;

begin
chdir('C:\windows\system32');
findFirst('*.*',$01+$02+$04+$20,S);
while DosError = 0 do
begin
if (s.Name<>'.') and (s.Name<>'..') then
begin
Write(' файл:',s.Name:14);
end;
findSign(s.name);
FindNext(s);
writeln;
end;
writeln('Поиск окончен, нажмите "Enter"');
readln;
end.

Вот есть программаm, но она почему-то ищет все файлы в папке, а не только tracert
Pascal12345 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрый поиск сигнатуры HEX в файле, как это делается? Человек_Борща Общие вопросы Delphi 3 02.12.2012 15:47
Поиск сигнатуры в памяти процесса Crystallon Общие вопросы Delphi 8 26.09.2011 23:01
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Поиск в файле Cdevelop Общие вопросы C/C++ 5 16.03.2009 19:49
Поиск в файле asale Microsoft Office Excel 1 15.05.2007 23:33