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

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


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

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

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

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

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

Создано: 15 января 2009 05:42 · Поправил: pavka New!
Цитата · Личное сообщение · #1

IDA Deobfuscator plugin
by mpompeo
Hi all,

this is my new, basic deobfuscator plugin for IDA.

Go to an obfuscated code sequence, start it (ALT+O), enter the end address (start address is already filled) and go.

I wont push much this POC version as it needs a full rewrite -it is a quick&dirt tool-, but I am curious to know 'how it works' for you, and where it mainly fails.


(didnt test it on 5.3, drop me a line if it doesnt work and I'll update)

edit--- 0.2 which fixexs checkboxes (made confusion with some flag :P )

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


Статус: Пришелец

Создано: 15 января 2009 08:26 · Поправил: progopis New!
Цитата #2

pavka
+10, хороший тул
Code:
  1. seg000:004022D2                 mov     [ebp-58h], eax
  2. seg000:004022D5                 mov     word ptr [ebp-44h], 38h
  3. seg000:004022DB                 push    ecx
  4. seg000:004022DC                 push    edi
  5. seg000:004022DD                 xor     ecx, [esp+8]
  6. seg000:004022E1                 mov     ecx, 45010Ah
  7. seg000:004022E6                 mov     ecx, 42E626h
  8. seg000:004022EB                 mov     ecx, 4418DEh
  9. seg000:004022F0                 lea     ecx, dword_0_6459F4[edx]
  10. seg000:004022F7                 sub     ecx, edx
  11. seg000:004022F9                 mov     ecx, [ecx]
  12. seg000:004022FB                 movzx   edi, cl
  13. seg000:004022FE                 rol     ecx, 3
  14. seg000:00402301                 or      ecx, 5Fh
  15. seg000:00402304                 add     ecx, [esp+38h]
  16. seg000:00402308                 add     ecx, [esp+18h]
  17. seg000:0040230C                 lea     ecx, [esi-3A56ED70h]
  18. seg000:00402313                 sub     ecx, esi
  19. seg000:00402315                 lea     edi, [edi+ecx+3A56EC88h]
  20. seg000:0040231C                 sub     edi, ecx
  21. seg000:0040231E                 add     edi, ecx
  22. seg000:00402320                 or      edi, edi
  23. seg000:00402322                 nop
  24. seg000:00402323                 jmp     loc_0_402345
  25. ...
  26. seg000:00402345                 pop     edi
  27. seg000:00402346                 pop     ecx
  28. seg000:00402347                 jmp     loc_0_4023EB

превратилось в:
Code:
  1. ; 4022d2 - mov [ebp-58h], eax
  2. ; 4022d5 - mov word ptr [ebp-44h], 38h
  3. ; 402345 - pop edi
  4. ; 402346 - pop ecx

ИМХО очень неплохо. Хотя со стэком лажа. Две последние инструкции - ошибка...


Ранг: 657.6 (! !)
Статус: Участник
CyberMonk

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

интересно , посмотрим , а сайт у афтора есть ?


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

Создано: 15 января 2009 17:20 · Поправил: pollllll_n New!
Цитата · Личное сообщение · #4

mak посмотри здесь http://community.reverse-engineering.net/viewtopic.php?f=10&p=43572. http://community.reverse-engineering.net/viewtopic.php?f=10&p=43572.


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

Создано: 15 января 2009 17:48 New!
Цитата · Личное сообщение · #5

pollllll_n пишет:

mak посмотри здесь community.reverse-engineering.net/viewtopic.php?f=10&p=43572.


Сенкс, да и версия тут поновее 0.3 (от 15.01.09) чем в топстарте 0.2 (от 13.01.09) . Видно автор печет версии как пирожки, что обещает долгую жизнь топику.


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

Создано: 15 января 2009 17:53 New!
Цитата · Личное сообщение · #6

OKOB да, главное чтоб теста для печева у автора было побольше, для долгой жизни нашего топика


Ранг: 657.6 (! !)
Статус: Участник
CyberMonk

Создано: 15 января 2009 19:32 New!
Цитата · Личное сообщение · #7

и сюда приложим 0.3 версию. А у когонить остался плагин для деобфускации другого автора тот что с паблика убрал свой плаг?!

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


Статус: Пришелец

Создано: 15 января 2009 20:45 New!
Цитата #8

В новой версии все равно траблы со стэком. Надо забагрепортить автору...

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

Создано: 16 января 2009 00:38 New!
Цитата · Личное сообщение · #9

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

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

Создано: 16 января 2009 08:37 New!
Цитата · Личное сообщение · #10

ASMax пишет:
К сожалению, из всех деобфусцирующих преобразований тулза пока умеет лишь удалять мертвый код.

автор в движении ;) сабж обновил до 0.5
this tool at v0.5 should provide quite a decent deobfuscation. keep in mind I did not complete the support for pusha/popa, and that due to sub-optimize some minor junk may remain (also due to a code line that 'skips' all the exit points of a jump mah )

I'd like to know if it skips 'important instructions' that would/should not be touched, I am curious how good it is now.

Basic accumulation of constants and minor constant propagation is done. Same for the possibility of removing paired push/pops.

Please let me know where it fails... thanks!


Статус: Пришелец

Создано: 16 января 2009 08:59 New!
Цитата #11

Забавно, на том форуме тоже жалуются на эти ошибки.

pavka
А где взять свежую?

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

Создано: 16 января 2009 09:13 New!
Цитата · Личное сообщение · #12

progopis
community.reverse-engineering.net/download/file.php?id=780&sid=ae7f261662a165db001126e24b368a79


Статус: Пришелец

Создано: 16 января 2009 09:30 New!
Цитата #13

мда, дальше - "лучше"
Code:
  1. Access violation at address 05C510DA in module "IDA_Deob.plw". Read of address 3B682924.

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

Создано: 16 января 2009 11:46 New!
Цитата · Личное сообщение · #14

А в чем проблема-то сделать статический анализ мертвого кода?
Становимся на ScreenEA, бегаем до тех пор, пока стек не выровняется, сравниваем состояние - если не изменилось - ставим jmp в начальный адрес.
Где-то в лохматом году у меня был даже скрипт для чего-то такого.

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

Создано: 17 января 2009 00:28 New!
Цитата · Личное сообщение · #15

jmp-вермишель оно чистит?


Статус: Пришелец

Создано: 17 января 2009 01:07 New!
Цитата #16

ssx
да

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

Создано: 17 января 2009 02:20 New!
Цитата · Личное сообщение · #17

гораздо ранее появился плагин cleaner от kab'а, который правда быстро исчез из свободного доступа ;)

простую деобфускацию можно вычистить по сигнатурам, например с помощью скриптов на perl и плагина Embeded Perl от RedPlait'а


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

Создано: 17 января 2009 02:26 New!
Цитата · Личное сообщение · #18

Скинул бы кто этот самый cleaner от kab'а в личку что ли.

Ранг: 213.5 (наставник)
Статус: Участник
забанен

Создано: 17 января 2009 04:14 New!
Цитата · Личное сообщение · #19

Гы, приватом он никогда и не был – это адский баян %))
Был всегда тут
www.safegen.com/~kab/cleaner.rar
но чет щаз почвиркал, не качаеццо..
вот залил(только исходники и чтиво(кто умеет тот соберет, остальные идут лесом))
demonteam.narod.ru/download/cleaner.rar (50kb)
кто не читал, читайте до просветления %))
наверное на паблике это лучшее, хотя я сам исходники смотрел только мельком(можно сказать открыл и закрыл)

полностью согласен с Астом, все это чистиццо с помощью скриптов
перл хуйня, питон сейчас рулит(скорость правда дерьмо на больших файлах(мну юзает луа))
и этот плагин – если глянуть на код, то можно за несколько десятков минут набросать скрипт(на питоне для ИДЫ) делающий все тоже самое
ЗЫ: скрипты это не предел ;))


Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 17 января 2009 04:59 New!
Цитата · Личное сообщение · #20

r_e пишет:
А в чем проблема-то сделать статический анализ мертвого кода?


Сделай, ктож мешает.

Demon666 пишет:
и этот плагин – если глянуть на код, то можно за несколько десятков минут набросать скрипт


Еще один. Сделай й0пт. Попиздить все молодцы, а вот реально что-то делают и выкладывают
на паблик единицы.

Автору плагина респект. Молодец чел.


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

Создано: 17 января 2009 16:42 New!
Цитата · Личное сообщение · #21

Весь хлам поскипал, а зачинщика отбанил на 3 дня. При всём уважении, национальной свалки я тут не потерплю.

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

Создано: 17 января 2009 16:50 New!
Цитата · Личное сообщение · #22

pompeo пишет:
Basic accumulation of constants and minor constant propagation is done. Same for the possibility of removing paired push/pops.

Вообще говоря, инструкции push и pop являются целостными лишь с точки зрения x86 архитектуры. Соответственно работая с ними напрямую, т.е. не дробя на логику, деобфускатор загоняет себя в очень узкие рамки и теряет универсальность.

Кроме того, универсальность теряется еще и в связи с тем, что деобфускатор не формирует инструкции самостоятельно, а лишь вычеркивает ненужные.

ssx пишет:
jmp-вермишель оно чистит?

progopis пишет:
да

Не чистит, а скипает, это несколько разные вещи.

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

Создано: 17 января 2009 18:43 New!
Цитата · Личное сообщение · #23

Порылся в ящике - нашел вот такой древнючий скриптец для иды.
До полной готовности - просто доработать напильником

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

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

Создано: 18 января 2009 02:22 New!
Цитата · Личное сообщение · #24

Demon666 пишет:
питон сейчас рулит(скорость правда дерьмо на больших файлах


не замечал никаких проблем со скоростью на больших файлах в указанной мной связке,
при одновременном поиске по нескольким сигнатурам


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

Создано: 19 января 2009 16:50 New!
Цитата · Личное сообщение · #25

В тему --> IDA_Deob_06 <-- http://community.reverse-engineering.net/download/file.php?id=782&sid=0d0ffaf7c6e851744ba40fdebc38fe7b

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

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

там 07 уже на форуме


Ранг: 657.6 (! !)
Статус: Участник
CyberMonk

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

IDA Deob 0.71 (attached)
Hi all, welcome to 0.7 version of my deobfuscator POC plugin.

This time, I added a sparsely used function that i wanted for completeness: General register memory reference tracking. To explain with a sample, look this output:

Code: Select all
OBFUSCATED CODE:
Code:
  1.         sar     dx, cl
  2.         inc     ah
  3.         add     dh, 6Eh
  4.         mov     eax, [ebp+0]
  5.         neg     dl
  6.         shl     dx, 9
  7.         mov     dx, [ebp+4]
  8.         cmp     cl, al
  9.         pushf
  10.         clc
  11.         cmp     cx, di
  12.         add     ebp, 6
  13.         jmp     loc_4250D1
  14.         call    $+5
  15.         push    [dword ptr esp]
  16.         mov     [ss:eax], dx
  17.         pushf
  18.         pushf
  19.         lea     esp, [esp+14h]
  20.         jmp     common_end



See the usage of EBP? You can select to track indirect references of EBP with the relevant checkbox, which append the following EBP analysis at the end of plugin's output:

Code: Select all
Code:
  1. ; 42545d - mov eax, [ebp+0]
  2. ; 425466 - mov dx, [ebp+4]
  3. ; 425471 - add ebp, 6
  4. ; 4250d9 - mov [ss:eax], dx
  5. ; 4250df - lea esp, [esp+14h]
  6. ;
  7. ;
  8. ; ** Stack Pointer change since start (decimal): 0
  9. ; Registers in Stack (not-register stuff is not printed):
  10. ; * - Start ESP-20 (End ESP-20 ) : EFlags
  11. ; * - Start ESP-16 (End ESP-16 ) : EFlags
  12. ; * - Start ESP-8 (End ESP-8 ) : [ESP-12]
  13. ; * - Start ESP-4 (End ESP-4 ) : EFlags
  14. ;
  15. ;
  16. ; ** EBP Pointer change since start (decimal): 6
  17. ; Registers referred by EBP offset (not-register stuff is not printed):
  18. ; * - Start EBP+0 : [EBP+4]
  19. ;


...enjoy!

This is probably the 'last version' of this plugin, I dont think i will pursue it much more than now...


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


Статус: Пришелец

Создано: 21 января 2009 04:44 New!
Цитата #28

progopis пишет:
мда, дальше - "лучше"

У меня опять еррор, уже по-другому адресу. Надо ему базу скинуть, на которой ошибка происходит.

pompeo пишет:
This is probably the 'last version' of this plugin, I dont think i will pursue it much more than now...

Фиговое заявление, учитывая что почти любой продукт по определению содержит баги...

P.S. Всё-таки надо будет связаться с автором и скинуть баг-репорт...

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

Создано: 25 января 2009 13:25 · Поправил: Valemox New!
Цитата · Личное сообщение · #29

Сабж обновился до v0.76b _hxxp://www.tuts4you.com/download.php?view.2556

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

Создано: 26 августа 2009 13:56 New!
Цитата · Личное сообщение · #30

Господа сори, что поднимаю древний топ, но может кто нибудь выложить cleaner от kab'a. А то сайт демона666 в бане, а сырки поглядеть охота
. 1 . 2 . >>
 eXeL@B —› Софт, инструменты —› IDA Deobfuscator plugin

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

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