Сейчас на форуме: Rio, vsv1, site-pro (+7 невидимых)

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


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

Создано: 24 сентября 2013 19:03
· Личное сообщение · #1

Сабж http://opticode.coseinc.com/

х86 обфусцированый код (NASM нотация) -> трансляция в Low Level Virtual Machine Intermediate Representation (LLVM IR) -> LLVM оптимизация -> результирующий деобфусцированый код

-----
127.0.0.1, sweet 127.0.0.1


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


Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 сентября 2013 19:14 · Поправил: reversecode
· Личное сообщение · #2

mov [esp], esi
mov ecx, 0BAF95FA2h
mov ebx, 830D560h
mov [esp+4], ecx
lea eax, [ebx-0E8F0h]
call eax

и сайт даун))

Error 500: Internal Server Error
Sorry, the requested URL 'http://opticode.coseinc.com/deob' caused an error:

Internal Server Error

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


Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 24 сентября 2013 19:32
· Личное сообщение · #3

Попробовал куски кода с мусором, генерируемых Morphine - тоже не порадовало
Простые конструкции конечно разбирает довольно хорошо.
Сама идея очень интересна.

-----
ds





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

Создано: 24 сентября 2013 20:03
· Личное сообщение · #4

reversecode пишет:
и сайт даун))


без последнего CALL отработал

mov eax, ESI
mov ecx, ESP
mov DWORD PTR [ecx], eax
mov DWORD PTR [ecx+0x4], 0xbaf95fa2
mov EAX, 0x82fec70
mov ECX, 0xbaf95fa2
mov EBX, 0x830d560

-----
127.0.0.1, sweet 127.0.0.1




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

Создано: 24 сентября 2013 22:14 · Поправил: dosprog
· Личное сообщение · #5

Да школьники то всё играются в интернет.
Та же самая фигня, что и "Online Obfuscator 1.0" - но тот хоть кое-как работает,
потому, что задача прямая - в разы проще, чем обратная.
IMHO.

(Аналгично тому,что дизассемблировать код - в разы проще, чем ассемблировать его из текста).




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 24 сентября 2013 22:28 · Поправил: reversecode
· Личное сообщение · #6

а кто игрался virtual deobfuscator ? http://www.hexeffect.com/virtual_deob.html
а то чет руки не доходят
по доке они даже vmp чето там победили местами



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

Создано: 25 сентября 2013 09:19 · Поправил: Veliant
· Личное сообщение · #7

не смотря на глюки, я считаю что идея перспективная. Сам уже давно об этом задумывался, только руки не доходят.
У LLVM неплохой оптимизатор.
Все что требуется сделать - нормальный парсинг нативного x86/x64 в IR код.
Для ARM-а, уже запилен и лежал раньше на гугл.коде.

Выхлоп из IR в бинарный код уже и так по сути есть в компиляторах.




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

Создано: 25 сентября 2013 10:15
· Личное сообщение · #8

Veliant пишет:
парсинг нативного x86/x64 в IR код


Dagger: decompilation to LLVM IR

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 25 сентября 2013 10:57
· Личное сообщение · #9

Veliant
Лет 10 назад эту тему обсуждали на ренге. В итоге получилось как всегда.

-----
старый пень




Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 04 ноября 2013 02:12 · Поправил: bartolomeo
· Личное сообщение · #10

Не такие уж там и школьники )

Nguyen Anh Quynh, автор доклада «Opticode: machine code deobfuscation for malware analysts», давал дельные практические советы по оптимизации и деобфускации кода. Доклад крайне конкретный для реверсеров и тех, кто хотя бы немного любит математику Детали можно найти здесь:
--> Link <--

взято отсюда



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

Создано: 04 ноября 2013 03:26 · Поправил: dosprog
· Личное сообщение · #11

Класс. 9-й.

Наверняка они там такой вариант предусмотрели (должны были бы...), но и то получается фигня:

------------------------------------------------
Source obfuscated code:
~~~~~~~~~~~~~~~~
push ebx
lea ebx,[eax+eax*8] ;;.....ebx=eax*9
lea eax,[eax+eax*2] ;;.....eax=eax*3
shl eax,05H ;;....................eax=eax*32 (итого eax=eax*96)
sub eax,ebx ;;....................eax=eax*96-eax*9=eax*87 = eax*0x57
pop ebx

REALLY DEOBFUSCATED CODE:
~~~~~~~~~~~~~~~~~~~~~
imul eax,eax, 0x57


Вместо этого мы видим:

Result "deobfuscated" code (from http://opticode.coseinc.com/):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mov eax, ESP
mov ecx, EBX
mov DWORD PTR [eax-0x4], ecx
imul eax, EAX
mov EAX, eax

---------------------------------------------
Толку от такой "деобфускации"?

Универсальный деобфускатор это нонсенс. Переливание из пустого в порожнее.
Поняв алгоритм конкретной обфускации, можно как-то пытаться её раскрутить.
Я уж не говорю, что при реальной обфускации ещё и контролируется целостность кода на каждом этапе.
В общем, бесполезная то затея.
[offtop]
...а кто-то же оплачивает этот полёт мысли...
[/offtop]




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

Создано: 04 ноября 2013 04:13 · Поправил: Dr0p
· Личное сообщение · #12

> автор доклада «Opticode: machine code deobfuscation for malware analysts», давал дельные практические советы

Видали мы их дельности, эти старые пердуны пытаются матан прикрутить туда, где он не нужен, для самопиара,

http://link.springer.com/journal/volumesAndIssues/11416



Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 04 ноября 2013 13:02 · Поправил: bartolomeo
· Личное сообщение · #13

dosprog пишет:
Универсальный деобфускатор это нонсенс.


Тут моё мнение в корне отличается, я всё-таки думаю что написать абсолютный деобфускатор возможно, и когда-нибудь он будет написан.
Я думаю это будет похоже на написание VHDL модели проца, ответственной за декодирование и исполнение инструкций, то есть попытаться сделать такой разбор инструкций на микрооперации, как это сделано в самом проце самими инженерами Интел.

По поводу "пердунов"-"школьников", возможно трудности с которыми они столкнулись при написании инструмента не такие уж и тривиальные )


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


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