Вот здесь симантеки говорят, что благодаря ихнему ресёрчу было установленно что примерно 150 бинарников (дров в том числе) в дефолтной поставке свисты скомпилированы c /gs-. Вопрос как они это установили, ясное дело что для r3 приложений есть специфический импорт из рантайма, для дров в принципе тоже, но не изрантайма (_except_handler3, кстати всегда ли эта? KeTickCount). А что наприм если бинарник r3 скомпилирован с опцией /mt что тогда, или всё же можно спалить по импорту из kernel32.dll? Мне так не кажется если чесно, тики может юзать кто угодно, естественно это не подтверждения =\ upd2: или они хитрый сигнатурный поиск заюзали? ксати если кто видел хорошие линки по сигнатурному поиску с точки зрения кодера (zf не предлагать) просьба поделиться
Ну, что Gs (stack checking calls), что GS (security check) хорошо видны в бинарике. Как автоматически установить? В случае драйверов используется специфическая точка входа (GsEntry afair), в конце которой прыжок на ОЕР. То есть, достаточно как минимум простого анализатора. Ну или сигнатуры могут помочь, так даже проще в случае проверки ЕР.
насколько я понимаю по большому счёту это одно и тоже, просто последним регулируется глубина при которой включается проверка. Кажется без сигнатурных анализаторов тут не обходится, если кто в этом шарит объясните парой фраз как строятся сигнатурные анализаторы кода, я так понимаю без дизассемблера они не обходятся? т.е. в общем случае имеем определённую последовательность мнемонник, офсетов, констант достаточную чтобы обеспечить уникальность? как тогда определить уникальность?