Показано с 1 по 4 из 4.

Кажется, проблема с SearchSign в скриптах AVZ?

  1. #1
    Junior Member Репутация
    Регистрация
    22.08.2009
    Сообщений
    2
    Вес репутации
    27

    Кажется, проблема с SearchSign в скриптах AVZ?

    Доброе всем время суток!

    Описание ситуции.

    1. Создал тестовый файл с именем VIRUS.EX_ и содержимым 'MZ SIGNATURE'. В 16-ричном виде это: 4D 5A 20 53 49 47 4E 41 54 55 52.

    2. Написал и выполнил в AVZ следующий скрипт:

    begin
    if LoadFileToBuffer('c:\virus.ex_') then AddToLog('ok') else AddToLog('failed');
    AddToLog(IntToStr(SearchSign('4D 5A', 0, 2) ));
    AddToLog(IntToStr(SearchSign('53 49 47 4E 41 54 55 52', 3, ));
    AddToLog(IntToStr(SearchSign('5A 4D', 0, 2) ));
    FreeBuffer
    end.

    3. Получил неправильные (на мой взгляд) результаты:
    ok
    -1
    -1
    -1

    По моему мнению, -1 должно быть только в последнем случае? Или я что-нибудь не так делаю?

    P.S. Проверял на нескольких разных версиях AVZ, включая 4.32. Монопенисуально.

    P.P.S. С материалами
    http://www.z-oleg.com/secur/avz_doc/...searchsign.htm и
    http://www.z-oleg.com/secur/avz_doc/...ignexample.htm знаком.

  2. Реклама
     

  3. #2
    Global Moderator Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Регистрация
    12.10.2004
    Адрес
    Смоленск
    Сообщений
    6,179
    Вес репутации
    3380
    Это не баг, это фича На самом деле вопреки моим надеждам этим движком никто почему то не пользовался, потому тонкости не документированы и не подвергались тщательным тестам...
    1. AddToLog(IntToStr(SearchSign('4D 5A', 0, 2) )); - не работает потому, что зона поиска равна по размеру сигнатуре. Как оказалось, там контроль, что для поиска сигнатуры зона поиска должна быть хотя-бы на байт больше длинны искомого, т.е. AddToLog(IntToStr(SearchSign('4D 5A', 0, 3) )); сработает, равно как AddToLog(IntToStr(SearchSign('4D 5A', 0, 0) )); (нуль в длинне понимается как "искать до конца буфера"
    2. Вторая конструкция не сработала по той-же причине - сигнатура по размеру равна буферу, а логика контроля AVZ требует, чтобы буфер был хотя-бы на байт длиннее сигнатуры (в файл можно добавить пробел в хвост и все заработает, или из сигнатуры убрать 1 байт последний)

    Я не помню, откуда выросли эти ограничения "на еще 1 байт" - кажется, это как-то связано с поиском по маскам или с чем-то еще ... я записал это как багу и подправлю в следующей версии. При этом побайтный доступ к буферу естественно полный, т.е.
    Код:
    var
     i : integer;
    begin
     if LoadFileToBuffer('c:\virus.ex_')  then AddToLog('ok') 
      else AddToLog('failed');
     for i := 0 to GetBufferSize - 1 do 
      AddToLog( IntToHex(GetBufferByte(i), 2) );
     FreeBuffer;
    end.
    даст нам
    Код:
    ok
    4D
    5A
    20
    53
    49
    47
    4E
    41
    54
    55
    52
    45
    Последний раз редактировалось Зайцев Олег; 01.09.2009 в 11:32.

  4. #3
    Junior Member Репутация
    Регистрация
    22.08.2009
    Сообщений
    2
    Вес репутации
    27
    Цитата Сообщение от Зайцев Олег Посмотреть сообщение
    Это не баг, это фича
    Спасибо за ответ.

    я записал это как багу и подправлю в следующей версии.
    Замечательно. А то "продвинутая" работа с AVZ планируется для студентов специальности КОИБАС, будут методички и т.п. Поэтому хотелось бы определенности.

    Еще раз спасибо.

  5. #4
    Global Moderator Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация Репутация
    Регистрация
    12.10.2004
    Адрес
    Смоленск
    Сообщений
    6,179
    Вес репутации
    3380
    Цитата Сообщение от drmad Посмотреть сообщение
    Спасибо за ответ.



    Замечательно. А то "продвинутая" работа с AVZ планируется для студентов специальности КОИБАС, будут методички и т.п. Поэтому хотелось бы определенности.

    Еще раз спасибо.
    да не за что, если будут подобные вопросы и непонятки - обязательно обращайтесь, будем разбирать каждую ситуацию и по результатам я или подрихтую доку, или поправлю баги

Похожие темы

  1. Кажется Спам-бот !
    От Negima в разделе Помогите!
    Ответов: 12
    Последнее сообщение: 22.02.2009, 04:34

Метки для этой темы

Свернуть/Развернуть Ваши права в разделе

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Page generated in 0.00841 seconds with 19 queries