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

ВИДЕОКУРС
выпущен 4 ноября!


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

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

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

 eXeL@B —› Протекторы —› Oreans UnVirtualizer ODBG Plug-in
<< . 1 . 2 . 3 . 4 .
Посл.ответ Сообщение


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 25 марта 2011 21:02 · Поправил: BoRoV New!
Цитата · Личное сообщение · #1

UnVirtualizes CISC Themida/WL/CodeVirtualize Machines

Автор: Deathway

Code:
  1. This tool will help conversion VirtualOpcodes -> Assembly Instruction
  2. restoring the original code of your virtualized Application, the basic engine
  3. was from CodeUnvirtualizer, my other tool
  4.  
  5. [Features]
  6. - Supports WinLicense/Themida/CodeVirtualizer Cisc Machines
  7. - Supports almost all common opcodes
  8. - Supports CHECK_MACRO_PROTECTION
  9. - Supppots MultiBranch Tech
  10.  
  11. [Use]
  12. - Right-click on the jump leading to the Virtual Machine Area and press Unvirtualize (If machine isn't found
  13. you have to click again, after checking that the full machine was correctly deofuscated)
  14.  
  15.  
  16. [Oreans UnVirtualizer]
  17. [v1.0]
  18. - First public Version


{ Атач доступен только для участников форума } - OreansUnVirtualizerv1.0.rar

| Сообщение посчитали полезным: Maximus, Rio, HandMill


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

Создано: 4 апреля 2012 11:15 New!
Цитата · Личное сообщение · #2

ClockMan пишет:
где EBP "BaseOreans" и идёт обращение в секцию дата-код протектора.


Интересная мысль, я сразу в нее не въехал. Обязательно проверю!

Ранг: 299.1 (наставник)
Статус: Модератор
CrackLab

Создано: 15 мая 2012 23:04 New!
Цитата · Личное сообщение · #3

плагин UnVirtualizer убирает VM - это плюс
а что делать если это нихера не VM, а обфускация?


Ранг: 1993.2 (!!!!)
Статус: Модератор
retired

Создано: 16 мая 2012 10:19 New!
Цитата · Личное сообщение · #4

Этим плагином-ничего. А чем она особо мешается? Насколько помню, она не в динамически аллоченой памяти, а в своей секции лежит, и нормально дампится, антидампов в ней тоже нет. А если именно разобрать надо, я не встречал софта, где её надо было бы разбирать, ну разбирать руками или написать софт, в принципе она не особо страшная. Можно попробовать чо-нить типа CodeDoctor натравить, хотя ничего хорошего от него ждать не стоит.


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

Создано: 16 мая 2012 18:19 New!
Цитата · Личное сообщение · #5

SReg
а что делать если это нихера не VM, а обфускация?
Смотря в чем, если CodeVirtualizer, то исполняешь этот кусок кода в реальном режиме и в нужном месте увидишь родной asm код...

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

Создано: 25 декабря 2012 01:05 New!
Цитата · Личное сообщение · #6

[v1.6]
- RISC machine re-designed
- Added RISC V2 machines (new branch tech)
- Added Pushad-popad instructions on risc machines
- Fixed some issues with end jump
- Added new detection for virtual machines
- Added abort button


{ Атач доступен только для участников форума } - Oreans UnVirtualizer 1.6.rar

| Сообщение посчитали полезным: daFix, MasterSoft, BAHEK, plutos, SReg, Maximus, vnekrilov, DimitarSerg, Ra1n0, mkdev



Ранг: 527.1 (!)
Статус: Участник
5KRT

Создано: 25 декабря 2012 03:34 New!
Цитата · Личное сообщение · #7

NikolayD
Как-то недавно пришлось долго медитировать на кусок кода, где было пропущено всего несколько ассемблерных команд.
Просидел долго, но в этой версии все баги вроде поправлены! Респект автору софтины!

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

Создано: 3 февраля 2013 19:29 · Поправил: vnekrilov New!
Цитата · Личное сообщение · #8

Вопрос к знающим. Столкнулся с RISC-машиной, при использовании Oreans UnVirtualizer 1.6. Имеется такой код:

Code:
  1.          00911CED         MOV DWORD PTR [EBP+0xfffffffc],0x193
  2.          00911D38         CMP DWORD PTR [0x6fc768],0x0
  3.          00911D83         JNZ 0x80005ad2
  4.          00911D92         PUSH 0x6fc768
  5.          00911DFB         PUSH 0x4121c4
  6.          00911E55         CALL DWORD PTR [0x4012b0]
  7.          00911EDC         MOV DWORD PTR [EBP+0xfffff854],0x6fc768
  8.          00911F18         JMP 0x80005b0e
  9.          00911F27         MOV DWORD PTR [EBP+0xfffff854],0x6fc768
  10.          00911F63         MOV EAX,DWORD PTR [EBP+0xfffff854]
  11.          00911FBD         MOV ECX,DWORD PTR [EAX]


В нем имеется условный прыжок:
Code:
  1. 00911D83 JNZ 0x80005ad2


В восстановленном коде он прыгает сюда:
Code:
  1. 00911F27 MOV DWORD PTR [EBP+0xfffff854],0x6fc768


В CISC-машинах - другая структура прыжка, например:
Code:
  1. 00911D83 JNZ 0x19F


В этом случае дистанция прыжка вычисляется просто:
00911D83+19F+5=00911F27

А как вычислить дистанцию в RISC-машине что-то никак не могу сообразить. Может быть кто-то сталкивался с этим вопросом?


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

Создано: 3 февраля 2013 22:10 New!
Цитата · Личное сообщение · #9

Может 0x80005ad2 = -0x00005ad2. Т е прыжок вверх?

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

Создано: 3 февраля 2013 22:43 New!
Цитата · Личное сообщение · #10

vnekrilov пишет:
00911F18         JMP 0x80005b0e

а вот этот  JMP случайно прыгает не на 00911F63?

Тогда может 5ad2 и 5b0e это дистанция от некой одной базы.


Ранг: 133.7 (ветеран)
Статус: Участник
Qt Developer

Создано: 3 февраля 2013 23:34 New!
Цитата · Личное сообщение · #11

Чем строить догадки, может стоит уже посмотреть официальную документацию на RISC опкоды?


Ранг: 660.7 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 4 февраля 2013 01:03 New!
Цитата · Личное сообщение · #12

hors
К чему - к Themida?


Ранг: 133.7 (ветеран)
Статус: Участник
Qt Developer

Создано: 4 февраля 2013 01:18 New!
Цитата · Личное сообщение · #13

ARCHANGEL к RISC архитектуре.


Ранг: 660.7 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 4 февраля 2013 14:49 New!
Цитата · Личное сообщение · #14

hors
Не понимаю вас, и как это поможет при декомпиляции вм Фемиды? Там что, разрабы риск спецификацию соблюдали, чтоб легче реверсилось?


Ранг: 133.7 (ветеран)
Статус: Участник
Qt Developer

Создано: 4 февраля 2013 14:59 New!
Цитата · Личное сообщение · #15

ARCHANGEL пишет:
Не понимаю вас, и как это поможет при декомпиляции вм Фемиды? Там что, разрабы риск спецификацию соблюдали, чтоб легче реверсилось?


Вопрос был, как высчитывается адрес jmp на RISC машине. С этим можно разобраться, если посмотреть как переходы реализуются на RISC архитектуре вообще.

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

Создано: 4 февраля 2013 16:17 · Поправил: vnekrilov New!
Цитата · Личное сообщение · #16

Я поступил следующим образом. В одной оле открыл вторую, во второй открыл подопытного кролика, нашел в плагине Oreans UnVirtualizer адреса, где обрабатывается восстановленный p-код, и смотрю, как плагин считает эти адреса. После изучения этого вопроса - отпишусь. Не хотелось это делать самому, поскольку я думал, что кто-то уже прошел этот путь.

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

Создано: 5 февраля 2013 14:51 · Поправил: vnekrilov New!
Цитата · Личное сообщение · #17

Разобрался в заданном мной вопросе. В RISC-машинах адрес прыжков вычисляется по формуле:

ADDR_1 + ADDR_2 + 80000000

Где: ADDR_1 - это первый адрес вначале листинга Risc_Uv_Dump.txt
ADDR_2 - это дистанция прыжка в листинге Risc_Uv_Dump.txt

Пример:
Это - начало листинга:

Code:
  1.          00949A99         PUSH EAX
  2.          00949B02         AND EAX,EDI
  3.          00949B11         MOV AX,AX
  4.          00949B2F         AND EAX,0xe5a9
  5.          00949B4D         PUSHFD 
  6.          00949BA7         SHR AH,0x4


Это - часть листинга с прыжком и дистанцией прыжка:
Code:
  1.          0094F0E8         JE 0x80005c1c
  2.          0094F0F7         PUSH 0x0
  3.          0094F160         PUSH 0x46
  4.          0094F1BA         MOV EAX,DWORD PTR [ESI]
  5.          0094F205         PUSH ESI
  6.          0094F26E         CALL DWORD PTR [EAX+0x3b8]
  7.          0094F304         PUSH EAX
  8.          0094F36D         LEA ECX,DWORD PTR [EBP+0xffffffd0]
  9.          0094F3B8         PUSH ECX
  10.          0094F430         CALL EBX
  11.          0094F4B7         PUSH EAX
  12.          0094F520         CALL DWORD PTR [0x401038]
  13.          0094F5B6         ADD ESP,0xc
  14.          0094F5D4         LEA ECX,DWORD PTR [EBP+0xffffffd0]
  15.          0094F62E         CALL DWORD PTR [0x4013c8]
  16.          0094F6B5         LEA EAX,DWORD PTR [EBP+0xc]
  17.          0094F700         MOV DWORD PTR [EBP+0xffffff80],EAX
  18.          0094F74B         MOV ECX,0x4003
  19.          0094F75A         MOV DWORD PTR [EBP+0xffffff78],ECX
  20.          0094F7A5         SUB ESP,0x10


Вычисляем дистанцию прыжка:

00949A99 + 0x80005c1c + 80000000 = 0094F6B5

Значит, в листинге мы должны сделать так:

Code:
  1.          0094F0E8         JE @loc_0094F6B5
  2.          0094F0F7         PUSH 0x0
  3.          0094F160         PUSH 0x46
  4.          0094F1BA         MOV EAX,DWORD PTR [ESI]
  5.          0094F205         PUSH ESI
  6.          0094F26E         CALL DWORD PTR [EAX+0x3b8]
  7.          0094F304         PUSH EAX
  8.          0094F36D         LEA ECX,DWORD PTR [EBP+0xffffffd0]
  9.          0094F3B8         PUSH ECX
  10.          0094F430         CALL EBX
  11.          0094F4B7         PUSH EAX
  12.          0094F520         CALL DWORD PTR [0x401038]
  13.          0094F5B6         ADD ESP,0xc
  14.          0094F5D4         LEA ECX,DWORD PTR [EBP+0xffffffd0]
  15.          0094F62E         CALL DWORD PTR [0x4013c8]
  16.          
  17. @loc_0094F6B5:
  18.          
  19.          LEA EAX,DWORD PTR [EBP+0xc]
  20.          0094F700         MOV DWORD PTR [EBP+0xffffff80],EAX
  21.          0094F74B         MOV ECX,0x4003
  22.          0094F75A         MOV DWORD PTR [EBP+0xffffff78],ECX
  23.          0094F7A5         SUB ESP,0x10


Я полагаю, что эта информация будет полезной для всех тех, кто восстанавливает распознанный код плагином Oreans UnVirtualizer, и получил при этом ошибку в работе плагина. В этом случае, после внесения правок в листинг с распознанным кодом, можно использовать прекрасный плагин Multiline Ultimate Assembler.

| Сообщение посчитали полезным: mak, plutos, DimitarSerg


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

Создано: 31 января 2014 11:15 New!
Цитата · Личное сообщение · #18

[v1.7]
- FISH machine avaible (WHITE and RED variants)
- Added Vm signatures

Hi all, the new version of this plug-in supports the FISH virtual machine, WHITE and RED variants.

Some words about this machine...

It mixes both CISC and RISC architecture, but the code isn't like template anymore, every virtual machine has a new different number of handlers, and every handler contains a different execution path, a little tricky, but nothing that can't be 'devirtualized' , maybe i'll write a paper about FISH and TIGER machines later.

Some specs that aren't coded yet:
- Support for Check macro;
- Sort algo is very unstable
- This plugin may crash when deofuscating very rare sequences, (most of them are 'expected' specially when crash was due to an ud2 instruction).
- Suppor for BLACK variants

... About TIGER, I have no plans for the moment, but it isn't very different from FISH analog.
Plug-in was tested with 2.2.6.0 version, other versions may have variants that this plug-in couldn't handle.


--> Link <--

{ Атач доступен только для участников форума } - Oreans UnVirtualizer 1.7.rar

| Сообщение посчитали полезным: CyberGod, SReg, tihiy_grom, v00doo, Maximus, vnekrilov, daFix, Gideon Vi, Ra1n0, neprovad


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

Создано: 5 февраля 2014 11:18 New!
Цитата · Личное сообщение · #19

[v1.8]
- FISH BLACK variant avaible
- Fixed deofuscation order (GenV6)
- New deofucation scheme for FISH machine
- New smart code tracer for FISH machines
- Stack sort for FISH commands
- Improved management of memory (faster deofuscation)
- Added movzx reg32, [esp+eax+memoffset] on CISC machines
- Added a message prompt when the opcode buffer is not enough
- Added LEAVE instruction for FISH machines
- Added support for CALLs to VM section in FISH machines
- CHECK_PROTECTION macro disabled, now it must be restored by hand
- Fixed QWORD incorrect names for some opcodes
- Fixed a problem when deofuscating RISC machines




{ Атач доступен только для участников форума } - Oreans UnVirtualizer 1.8.rar

| Сообщение посчитали полезным: DimitarSerg, CyberGod, SReg, Jaa, daFix, Gideon Vi, nick8606, NikolayD, plutos, mkdev


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

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

Прошу прощения, что бужу старую тему.
Может кто-нибудь выложить сюда этот плагин версии 1.4, и желательно мувик с ним?
Собрал почти всю коллекцию, но вот этих двух вещей не хватает.

Ранг: 510.2 (!)
Статус: Модератор

Создано: 12 сентября 2017 21:53 New!
Цитата · Личное сообщение · #21

раритет (спс vnekrilov!)
585ba176d179cc556ee6227d8bc04bf4 *Oreans UnVirtualizer 1.4.rar


{ Атач доступен только для участников форума } - Oreans UnVirtualizer 1.4.rar

| Сообщение посчитали полезным: Kuzya69, zNob, plutos

<< . 1 . 2 . 3 . 4 .
 eXeL@B —› Протекторы —› Oreans UnVirtualizer ODBG Plug-in

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

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