eXeL@B —› Софт, инструменты —› Online Deobfuscator |
Посл.ответ | Сообщение |
|
Создано: 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] |
|
Создано: 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 |
|
Создано: 24 сентября 2013 19:32 · Личное сообщение · #3 |
|
Создано: 24 сентября 2013 20:03 · Личное сообщение · #4 |
|
Создано: 24 сентября 2013 22:14 · Поправил: dosprog · Личное сообщение · #5 |
|
Создано: 24 сентября 2013 22:28 · Поправил: reversecode · Личное сообщение · #6 |
|
Создано: 25 сентября 2013 09:19 · Поправил: Veliant · Личное сообщение · #7 не смотря на глюки, я считаю что идея перспективная. Сам уже давно об этом задумывался, только руки не доходят. У LLVM неплохой оптимизатор. Все что требуется сделать - нормальный парсинг нативного x86/x64 в IR код. Для ARM-а, уже запилен и лежал раньше на гугл.коде. Выхлоп из IR в бинарный код уже и так по сути есть в компиляторах. |
|
Создано: 25 сентября 2013 10:15 · Личное сообщение · #8 |
|
Создано: 25 сентября 2013 10:57 · Личное сообщение · #9 |
|
Создано: 04 ноября 2013 02:12 · Поправил: bartolomeo · Личное сообщение · #10 Не такие уж там и школьники ) Nguyen Anh Quynh, автор доклада «Opticode: machine code deobfuscation for malware analysts», давал дельные практические советы по оптимизации и деобфускации кода. Доклад крайне конкретный для реверсеров и тех, кто хотя бы немного любит математику Детали можно найти здесь: взято |
|
Создано: 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] |
|
Создано: 04 ноября 2013 04:13 · Поправил: Dr0p · Личное сообщение · #12 |
|
Создано: 04 ноября 2013 13:02 · Поправил: bartolomeo · Личное сообщение · #13 dosprog пишет: Универсальный деобфускатор это нонсенс. Тут моё мнение в корне отличается, я всё-таки думаю что написать абсолютный деобфускатор возможно, и когда-нибудь он будет написан. Я думаю это будет похоже на написание VHDL модели проца, ответственной за декодирование и исполнение инструкций, то есть попытаться сделать такой разбор инструкций на микрооперации, как это сделано в самом проце самими инженерами Интел. По поводу "пердунов"-"школьников", возможно трудности с которыми они столкнулись при написании инструмента не такие уж и тривиальные ) |
eXeL@B —› Софт, инструменты —› Online Deobfuscator |