Сейчас на форуме: morgot, sashalogout, -Sanchez- (+3 невидимых)

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

Ранг: 22.4 (новичок), 19thx
Активность: 0.020
Статус: Участник

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



http://rghost.ru/22295331

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


Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

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

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

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

Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

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

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

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

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

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

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

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




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

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

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

-----
Everything is relative...


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


Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

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

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


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

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

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

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




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 20 сентября 2011 14:06
· Личное сообщение · #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.

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

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

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




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

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

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


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

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

00D2AEAF: imul ebx, ebx, f

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

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


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

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

-----
127.0.0.1, sweet 127.0.0.1




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

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

Прошу прощения, что поднимаю тему. Не осталось ли у кого живой ссылки на это чудо? Уж очень хочется потрогать.
Пардон, невнимательно читал, уже нашел.


 eXeL@B —› Софт, инструменты —› Themida Risc decoder
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати