определить скомпилен ли бинарник с /gs

Тема в разделе "WASM.RESEARCH", создана пользователем rain, 18 янв 2008.

  1. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    Вот здесь симантеки говорят, что благодаря ихнему ресёрчу было установленно что примерно 150 бинарников (дров в том числе) в дефолтной поставке свисты скомпилированы c /gs-.
    Вопрос как они это установили, ясное дело что для r3 приложений есть специфический импорт из рантайма, для дров в принципе тоже, но не изрантайма :) (_except_handler3, кстати всегда ли эта? KeTickCount). А что наприм если бинарник r3 скомпилирован с опцией /mt что тогда, или всё же можно спалить по импорту из kernel32.dll? Мне так не кажется если чесно, тики может юзать кто угодно, естественно это не подтверждения =\
    upd2:
    или они хитрый сигнатурный поиск заюзали? ксати если кто видел хорошие линки по сигнатурному поиску с точки зрения кодера (zf не предлагать) просьба поделиться
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Ну, что Gs (stack checking calls), что GS (security check) хорошо видны в бинарике. Как автоматически установить? В случае драйверов используется специфическая точка входа (GsEntry afair), в конце которой прыжок на ОЕР. То есть, достаточно как минимум простого анализатора. Ну или сигнатуры могут помочь, так даже проще в случае проверки ЕР.
     
  3. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    насколько я понимаю по большому счёту это одно и тоже, просто последним регулируется глубина при которой включается проверка.
    Кажется без сигнатурных анализаторов тут не обходится, если кто в этом шарит объясните парой фраз как строятся сигнатурные анализаторы кода, я так понимаю без дизассемблера они не обходятся? т.е. в общем случае имеем определённую последовательность мнемонник, офсетов, констант достаточную чтобы обеспечить уникальность? как тогда определить уникальность?