| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Сигнатура |
| Автор: Rever 10.4.2010, 10:53 |
| Мне нужно организовать поиск сигнатуры. Допустим есть сигнатура (ну например ca64a10a706173c4776f7d72e1d) Есть файл file.exe Нужно определить присудствует ли сигнатура в файле. Как это сделать, а то толком ниче не понял, помогите плз! Зарание спасибо! |
| Автор: boostcoder 10.4.2010, 11:01 |
как подстрока? или как хеш сумма какого-то блока? |
| Автор: Rever 10.4.2010, 11:04 |
| Эм, я даж и не знаю=) Какнибудь, прост найти сигнатуру эту, пример просто нужен Вообщем принцип нужен можно сказать как в антивирусниках |
| Автор: boostcoder 10.4.2010, 11:08 |
уже лучше осталось узнать, какого алгоритма эта хеш сумма? Добавлено через 54 секунды странно, 27 знаков |
| Автор: W4FhLF 10.4.2010, 11:27 |
| boostcoder, это не хеш, а сигнатура. Часть бинарного кода файла или его заголовка, данных. Rever, Читаешь файл в бинарном режиме побайтно. Сравниваешь первый байт файла с первым байтом сигнатуры. Совпали. Сравниваешь со вторым и последующими. Не совпали. Читаешь второй байт файла и снова сравниваешь с первым байтом сигнатуры. |
| Автор: boostcoder 10.4.2010, 11:30 |
крайне сложно понять, что ТС имеет именно это в виду. |
| Автор: Rever 10.4.2010, 11:36 |
| Ну эту сигнатуру взял с какойто базы антивиря=) ну допустим что есть какаято сигнатура , алгоритм MD5 |
| Автор: W4FhLF 10.4.2010, 11:39 |
| Так сигнатура или хеш или хеш сигнатуры или хеш файла, в котором сигнатура? А потом иди учи основы программирования. И вопросы задавай в раздел для новичков. |
| Автор: assasincore 13.4.2010, 13:38 |
| ca64a10a706173c4776f7d72e1d - Не факт что это последовательность байт. Полный ли это кусок? ca64 a1 0a 70 61 73c4 776f 7d 72 e1d Это может быть. MD5 CRC. Сткрутура Пример struct SignPattern { DWORD offset; DWORD crc32; }; struct DescSignatru { SignPattern pattern1; SignPattern pattern1; }; П.С. 15 байтная последовательность очень маленькая что бы быть сигнатурой. Так что это либо структура либо CRC(MD5 или еще че... ) П.С. Если дизассембилировать последовательность то получим. 0100149C > CA 64A1 RETF 0A164 ; Far return 0100149F 0A70 61 OR DH,BYTE PTR DS:[EAX+61] 010014A2 ^73 C4 JNB SHORT IzSrv.01001468 010014A4 77 6F JA SHORT IzSrv.01001515 010014A6 7D 72 JGE SHORT IzSrv.0100151A 010014A8 ^E1 CC LOOPDE SHORT IzSrv.01001476 И это можеть байть последовательность байт для создание сигнатры? нет... Rever При все при том что я на форме новенький, тебе к новичкам. Знай свое место школота.. Да и к тому где уверенность что вы взяли кусок сигнатуры? |
| Автор: jhonyxakep 16.4.2010, 14:47 |
| assasincore, мда грузанул.... Rever, может тебе надо просто вычислить хеш файла? В общем сигнатура - это запись в базе данных вирусов, если брать антивирусы то это сочетание имени вируса, разнообразных данных о нем, и его сигнатуры. При помощи хеша можно сравнить 2 файла (к примеру тело вируса пойманное в антивирусной лаборотории, и у пользователя на компе) не храня при этом в базе весь файл, или большую его часть... Другое дело что если вам требуется(хочется |