Привет! Реверсирую малаварь, по мимо основного exe модуля в ней оказался драйвер, в котором реализована криптография. Собственно её мне нужно вскрыть (стянуть алгоритм для обмена данными). OllyDBG'ом под него не подлезть, через IDA долго (по крайней мере мне, т.к. опыта в драйверах мало). Каким образом можно быстро и в более-менее читабельном виде получить алгоритм драйвера? Есть ли какие то плагины IDA для этого дела? Спасибо!
Эх.... В ида ты можешь через хэксрейс вытащить. Потом свести с динамикой (те сверить что ты правильно перевел на С/С++). Отлаживать если то в виндбг.
это декомпилятор в ида. в виде плагина. его может у тебя и не быть. выбираешь функцию. нажимаешь ф-5. матан он прилично разбирает - таблицы, математика итд. ну и это... гугл никто не отменял.
Попробовал этот плагин. Да, код стал читабельнее, но слишком много математики и мусора там. Т.е. уйдет слишком много времени пока разберусь что к чему и состряпаю алгоритм. Какие есть варианты перехватить значение внутри выполняемого драйвера?
Выложи алгоритм здесь, может узнаем его. Вполне вероятно, что это что-то из широкораспространенного. Либо распространенный поточный шифр, либо блочный. Подозреваю, что там либо RC4, либо AES ( очень часто юзаются в малвари ). Также выложи плиз XREF'ы к нему. CTRL + X и все вызовы где он вызывается. ( скрин кода, тоже в Hex-Rays ), + на Ctrl + n переименуй функции алгоритма как "unknownalgo1", "unknownalgo2" и т.д, чтобы проще читать было код где он вызывается
обычно в малварях обратная дешифровка невозможна == чрез дравер доступ к файлу не блокируется, дабы криптор не палился юзвером. И в итоге в файле мусорка получается.. в сущности мусорка легко может получаться и на уровне всего логического раздела. Если хочешь узнать симметрический шифр, то вытащи из дравера ключ и протестируй его на разных шифрах, сравнивая хэш-суммы с эталонным шифротекстом.