eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: vitalik9 (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› Themida Risc decoder
Посл.ответ Сообщение

Ранг: 22.4 (новичок)
Статус: Участник

Создано: 20 сентября 2011 03:24 · Поправил: Johnny Mnemonic New!
Цитата · Личное сообщение · #1



http://rghost.ru/22295331

| Сообщение посчитали полезным: Isaev, obfuskator, daFix



Ранг: 78.9 (постоянный)
Статус: Участник

Создано: 20 сентября 2011 09:14 New!
Цитата · Личное сообщение · #2

Как Используется этот инструмент
и С какой целью?

| Сообщение посчитали полезным: sats


Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 20 сентября 2011 09:50 New!
Цитата · Личное сообщение · #3

AKAB подозреваю что этот инструмент ищет хенлы примитивов и позволяет трейсить ленту пикода


Ранг: 516.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 10:51 New!
Цитата · Личное сообщение · #4

Откуда поделка?? Гугл кроме этого топа о ней ничего не знает.
Опробовал на всех Фимках имеющихся в колекции (1.8.0.0-2.1.1.0) не на одной не взлетело.
Везде "VM Risc non Trovata o Versione non supportata", что в переводе гугла на славянский означает VM Risc не найдена или версия не поддерживается.


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 20 сентября 2011 10:55 · Поправил: Nightshade New!
Цитата · Личное сообщение · #5

Может ей дамп надо кормить. Иначе не понятно как она вм будет дергать с лентой


Ранг: 324.0 (мудрец)
Статус: Участник

Создано: 20 сентября 2011 10:58 New!
Цитата · Личное сообщение · #6

Первоисточник

| Сообщение посчитали полезным: OKOB



Ранг: 516.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 10:59 · Поправил: OKOB New!
Цитата · Личное сообщение · #7

Nightshade пишет:
Может ей дамп надо кормить


Да, нет! Она дебажить на Титане пытается в поиске точки входа в ВМ.


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 20 сентября 2011 13:00 New!
Цитата · Личное сообщение · #8

Посмотри видео
http://www.multiupload.com/4I1JH1I1Q0
qKObqfMpRny9kra
Он кормит ей дамп


Ранг: 516.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 14:06 New!
Цитата · Личное сообщение · #9

Nightshade пишет:
Посмотри видео


Посмотрел, действительно да. Вопрос в том где взять рабочий дамп. На тутси автор выложил своего подопытного. Пытаюсь повторить и осмыслить действия показаные в киношке.

- после нахождения стаба ВМ, находится хэндлер 00-00 и из его кода извлекаются "плавающие" смещения в контексте ВМ для полей контекста NextOpCode1 и NextOpCode2. При этом опирается на команды
shl eax, 2
shl eсx, 2

как элементы не подвергшиеся обфускации в блоке хэндлера GoNext_Code.

В оригинале (не обфусцированный в теле Фимы) этот код выглядит так

SLrisc64_GoNext_Code:
add esp, 8
mov eax, [edi+id_NextOpCode1]
shl eax, 2
mov ebx, [edi+id_NextOpCode2]
shl ebx, 2
mov esi, [edi+id_2nd_Bytes_OpcodeTable]
add esi, eax
mov esi, [esi]
add esi, ebx
mov esi, [esi]
jmp esi

где
id_NextOpCode2 = 7FFFFFD3h
id_NextOpCode1 = 7FFFFFD5h

Как видно при обфускации во второй команде произошла замена EBX-->ECX.

Дальше имея эти смещения можно извлекать последовательность обработки команд имея доступ к чистым значениям опкодов ОП1 и ОП2.


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 20 сентября 2011 14:13 New!
Цитата · Личное сообщение · #10

еще я понял что нет распознавания опкодов. То есть в листинге получается код вида
опкод1 еах, есх
опкод2 [xxxxx], xxxxxxx
т е названия мы должны давать сами. Почему не сделано распознавание не понятно. Наверное обфускация.
Но тогда надо знать размер каждого опкода из ленты. Он есть в хендлерах?


Ранг: 516.5 (!)
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 17:42 · Поправил: OKOB New!
Цитата · Личное сообщение · #11

Nightshade пишет:
знать размер каждого опкода из ленты


для риски размер команды фиксированный и в старых версиях был 14 байт в новых 15.

Например в хэндлере 00__ из рассматриваемого случая команда

00D2AEAF: imul ebx, ebx, f

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

Nightshade пишет:
Почему не сделано распознавание не понятно


Такое распознавание (опкод - хэндлер) и есть половина декомпиляции.
Автором сделано достаточно много. На автомате распознается тип хэндлера 1/2/3, аргументы и параметры. Для большинства приведенного кода операцию можно легко указать по самой последовательности команд (типовые конструкции). А для двух "значимых" команд в конце ролика продемонстрировано определение типа операции - ручками.

Для хэндлеров, кстати, приведен не дизассемблированный код, а трасса при конкретных параметрах. В этом можно убедиться сравнив приведенный код для хэндлеров с одним и тем-же опкодом (могут встречаться по несколько раз). Не понятен этап оптимизации кода хэндлера. Попытка деобфускации на одной трассе? (Безусловные переходы которыми изобилует спагетти-код хэндлеров сразу опущены).

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 10 ноября 2017 03:59 · Поправил: Kuzya69 New!
Цитата · Личное сообщение · #12

Прошу прощения, что поднимаю тему. Не осталось ли у кого живой ссылки на это чудо? Уж очень хочется потрогать.
Пардон, невнимательно читал, уже нашел.
 eXeL@B —› Софт, инструменты —› Themida Risc decoder

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS