Сейчас на форуме: CDK123, sashalogout, bartolomeo, artyavmu (+9 невидимых)

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

Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 15 января 2009 05:42 · Поправил: pavka
· Личное сообщение · #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 )

dcae_14.01.2009_CRACKLAB.rU.tgz - IDA_Deob_02.rar



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 15 января 2009 08:26 · Поправил: progopis
· Личное сообщение · #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

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




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

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

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

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





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

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

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




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

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

pollllll_n пишет:

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


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

-----
127.0.0.1, sweet 127.0.0.1





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

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

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




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

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

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

5534_15.01.2009_CRACKLAB.rU.tgz - IDA_Deob_03.rar

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 15 января 2009 20:45
· Личное сообщение · #8

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



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

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

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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 16 января 2009 08:37
· Личное сообщение · #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!



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 16 января 2009 08:59
· Личное сообщение · #11

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

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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

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

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



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 16 января 2009 09:30
· Личное сообщение · #13

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




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

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

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

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




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

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

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



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 17 января 2009 01:07
· Личное сообщение · #16

ssx
да



Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

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

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

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




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

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

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



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

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

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

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

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

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

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


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

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


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

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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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



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

Создано: 17 января 2009 16:50
· Личное сообщение · #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 пишет:
да

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



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

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

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

fd95_17.01.2009_CRACKLAB.rU.tgz - tracer.zip

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




Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

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

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


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




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

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

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

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

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

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




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

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


bf63_20.01.2009_CRACKLAB.rU.tgz - IDA_Deob_071.rar

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 21 января 2009 04:44
· Личное сообщение · #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 (ветеран), 3thx
Активность: 0.070
Статус: Участник

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

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



Ранг: 9.5 (гость), 4thx
Активность: 0.010
Статус: Участник

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

Господа сори, что поднимаю древний топ, но может кто нибудь выложить cleaner от kab'a. А то сайт демона666 в бане, а сырки поглядеть охота


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


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