Пятница, 12 Февраля 2016 г. 15:01
+ в цитатник
Давно и успешно использую следующий метод для поиска неэкспортируемых символов. Дизассемблируем код (linear sweep), линейно, хотя бы для того, чтобы убедиться, что код создан нормальным компилятором и в нем нет антиотладки. Отмечаем начало функций (все, что вызывется через call). Потом трейсим каждую функу рекурсивно и используем эвристики, такие как: использование констант (хорошо, если есть строки), определенный набор внешних функций или даже просто специфическую форму CFG. Странно, но нашел всего одно упоминание этого способа в нужном контексте, да и то без готового инструмента, а просто, как PoC. Так что и антивирусные приколы могут быть полезны, кто бы мог подумать. :-) Неожиданно, массовый софт - предельно стабилен и меняется медленно, так что "сигнатуры" (на control / data flow, не на инструкции) накрывают очень широкий диапазон версий.
http://lj.rossia.org/users/herm1t/80894.html
Метки:
analysis
control
data
disassembly
flow
function
hidden
static
symbol
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-