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

 eXeL@B —› Протекторы —› Декомпилятор ВМ
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 23 . 24 . >>
Посл.ответ Сообщение


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

Создано: 03 марта 2010 12:33
· Личное сообщение · #1

Вашему вниманию предлагаются наработки по декомпиляции ВМ.
Проект на сегодняшний день для меня завершен, но жаль если результат "ляжет на полку", может кому-нибудь и пригодится. Предлагаю сначала ознакомиться с обзором, и если будет интерес то могу выложить и сам плагин, или здесь или в личку заинтересованным лицам, каким образом, пока ещё не решил...
Но если кто-либо ожидает увидеть "автоматическое чудо", то сразу скажу - его нет. Для того чтобы получить результат нужна ручная предварительная работа:
- с исследуемой программы должна быть снята упаковка
- точки входа в ВМ находятся вручную
- возможно неоднократное "жамкание" клавиш в OllyDbg, а возможно и модификация кода, чтобы попасть в нужное место, в зависимости от защищенной функции
- необходимо вручную прицепить к программе требуемый секцию
- запись результатов в файл это тоже ручная работа, но уже более приятная

Не всё гладко обстоит с определением реализаций ВМ, на сегодняшний день примерно каждая третья реализация автоматом не определяется, приходится под неё модернизировать плагин, т.к. не могу сразу предусмотреть все случаи "издевательств" ВМ с кодом примитивов. Лучше дела с восстановлением "исходного" кода защищенных функций - 70% нормально восстанавливается, хотя во многом это зависит от самой структуры функции. Таким образом, если будет заинтересованность и помощь в нахождении подобных ситуаций, то проект может быть доведен до релизной стадии.

ЗЫ: Речь идет об Ореановских машинах. Нигде специально не упоминал.

9c41_03.03.2010_CRACKLAB.rU.tgz - VMSweeperLst.rar

-----
Everything is relative...




Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 29 декабря 2014 16:03 · Поправил: vden
· Личное сообщение · #2

Если интересно, небольшая утилита для приклеивания импорта, найденного свипером к дампу. Довольно простая, тестировалась на exe, но по крайней мере у меня, работает

В командной строке нужно указать текстовый файл, в который скопировали содержимое VM Reference, и путь к дампу.

| Сообщение посчитали полезным: SReg, vnekrilov, Jaa, Laki


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

Создано: 19 мая 2015 21:58
· Личное сообщение · #3

Может кто знает как заставить OllyDbg v1.10 нормально обрабатывать MMX и SSE инструкции? Причем не только отображать их в окне кода, для этого есть плагины, но и работать с этими инструкциями через свой SDK ассемблировать и дизассемблировать.

-----
Everything is relative...




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

Создано: 20 мая 2015 13:55
· Личное сообщение · #4

А можно в свипер добавить функциональности?
Ну к примеру:
1) В настройки вынести переключатель между софтовыми и железными бряками, которые ставит свипер. Просто кажется у меня свипер из-за железных бряков не может правильно декомпилировать ВМ. Наверное защита проги ловит. Но чего-то я сам эту защиту поймать не могу. Одна ВМ никак не декомпилируется доходит до а07 этапа. И терминейтед.
2) И еще ввести кнопочку "Abort" с удалением установленных свипером бряков, а то бывает что жертва уже рухнула, а свипер никак не хочет отключиться от жертвы, и приходится несколько раз перезапускать жертву. Пока свипер поймет, что ему уже "не светит"
3) Ну и все-таки хотелось-бы иметь возможность принудительно задавать конечный адрес, чтоб свипер не лез на следующие ВМ, а тихонько отходил в сторону от жертвы.



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

Создано: 20 мая 2015 16:49 · Поправил: Kuzya69
· Личное сообщение · #5

Не, а чего, никто не сталкивался с таким?
Свипер завалил жертву, а бряк оставил. При следующем запуске он ищет этот бряк, чтоб продолжить свои вычисления, опять валит жертву, но бряк еще не снял. и т.д. и т.п. Хорошо, если этот бряк стоит недалеко от ОЕП. А если путь к этому бряку проходит, через кучу манипуляций в дебагере, связанных с вводом нужных значений. Приходится экспериментировать, чтоб "убедить" свипер, что он должен завершиться.

Да и кстати, не плохо было-бы включать какую-нибудь метку, которая подсказывает, что свипер работает. Например после перезагрузки, а лучше все время. А то когда полоса загрузки свипера пропадает, становишься как слепой. Все на ощупь.




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

Создано: 04 июня 2015 02:18 · Поправил: DenCoder
· Личное сообщение · #6

О, плагины для иды... для Оли... для mr.Exodia...

Vamit мне помог своими трудами с терминами, большое ему за это Благодарю... В моей x64-вмашине попалось не 168 примитивов, а 79. Основную просто протрейсил, обошёл антиотладку (лоховская, я бы по-другому сделал), дошёл до OEP->DllMain, сдампил даже... а импорт в разнобой по разным адресам
Ну весело, дампить малый толк... И ВАУ - 2я вм(те же 79 примитивов), и один из примитивов способен вызвать 3ю... да что за байда

...

Написал вмтрейсер... почти... порядка 30 примитивов уже трейсит и показывает, что нужно-то ))
Почему я писал? Да потому что под x64 до сих пор только иииидаааа, но не обладает нужным мне функционалом...
Так бы мог и плаг для иды набросать, но моё - это нэйтив!

Но набухался я не поэтому!!!

-----
IZ.RU





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 05 июня 2015 13:25
· Личное сообщение · #7

DenCoder пишет:
Но набухался я не поэтому!!!


Узнаю старого товарища
Будешь готовый продукт делать в итоге?

-----
Research For Food





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

Создано: 05 июня 2015 22:45 · Поправил: DenCoder
· Личное сообщение · #8

Версия для меня точно будет. Но чтобы пользоваться всем, ещё немало работы вдобавок к запланированной надо провести. Например, автоматически распознавать сами примитивы под x64, как-то эмулировать некоторые api-функции... Решить, как распространять(нет желания, чтоб было в публичном доступе) - тоже немаловажно. Так что подует ветер - доведу до ума !

-----
IZ.RU





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

Создано: 26 июня 2015 11:34
· Личное сообщение · #9

WMSweeper доведен до релиза 2.0, успех полной декомпиляции вмпрота с созданием исходного кода составляет более 90%. Внесены следующие изменения:
- полное раcпознавание соответствия регистров вм и CPU
- девиртуализация инструкций с ModRM и SIB адресацией
- обработка любых инструкций в коде (MMX, SSE и прочие + те, которые Олька даже и не знает)
- распознавание пакетных вызовов на завиртуализованные функи и АПИ
- вставка созданного кода в нужное место, хотя это и затирает важную информацию, но позволяет скопировать созданный код в копию программы или в ИДА
- полностью статическая декомпиляция, без точек останова и исполнения кода
- оптимизатор структуры функции по условным/безусловным переходам на минимальную размер
Примерчик прилагается...
Новой версии Свипера в свободном доступе по определенным причинам не будет но если кому-то что-то потребуется декомпильнуть - обращайтесь.

4931_26.06.2015_EXELAB.rU.tgz - 78CD80.rar

-----
Everything is relative...


| Сообщение посчитали полезным: ClockMan, Maximus, Jaa, CyberGod, Vnv, [Nomad], samtehnik, daFix, srm60171, sendersu, Kuzya69, Ra1n0, DenCoder, 4kusNick, m0bscene, Bronco, vnekrilov, neprovad, s0cpy, NewNikitoZ, gloom, SReg, freudz


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

Создано: 28 июня 2015 13:46 · Поправил: Vamit
· Личное сообщение · #10

Так, по просьбам на декомпиляцию, чтобы не тратить ни мое ни ваше время:
1. выкладываем только нужный файл и либы для него, если такие имееются, ссылки на полный софт мне не нужны и инсталлировать его я всё равно не буду
2. сообщаем ОЕП и адреса декомпилируемых фунок, искать всё это в проге я тоже не буду
3. оказываю помощь только в декомпиляции фунок и предоставляю их исходный код, всё остальное дело ваших рук и головы
4. будьте готовы на скромное вознаграждение
5. если не предоставлена нужная информация, то реагировать на такие запросы так же не буду

-----
Everything is relative...





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 июня 2015 14:41
· Личное сообщение · #11

Vamit пишет:
будьте готовы на скромное вознаграждение

А я уже думал вы занялись благотворительностью

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 28 июня 2015 15:32
· Личное сообщение · #12

Vamit
Мне работы не оставили? )

Хотя я только начал дербанить различные вм. Хотя и непостоянно над ними тружусь, от случая к случаю, но есть какая-то своя декомпиляция... но у Вас лучше! Правда без поддержки x64 пока )

-----
IZ.RU





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 28 июня 2015 15:58
· Личное сообщение · #13

Почем нынче декомпиляция?

-----
StarForce и Themida ацтой!





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 28 июня 2015 16:14
· Личное сообщение · #14

Подозреваю, что это пассивная защита от бездельников

| Сообщение посчитали полезным: DenCoder


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

Создано: 29 июня 2015 14:09
· Личное сообщение · #15

Gideon Vi пишет:
Подозреваю, что это пассивная защита от бездельников

Так-то оно так, немного от бездельников. Но скилы кодинга тут обязательны, чтоб снять внятный листинг команд вм )

-----
IZ.RU




Ранг: 20.8 (новичок), 7thx
Активность: 0.010.02
Статус: Участник

Создано: 16 августа 2015 10:19 · Поправил: int_256
· Личное сообщение · #16

тут просто крашится

Code:
  1. 029A29D0    FF15 5031A302   call    [<&theolly.#60__Getcputhreadid>] ; THEOLLY._Getcputhreadid
  2. 029A29D6    50              push    eax
  3. 029A29D7    FF15 8C31A302   call    [<&theolly.#53__Findthread>]     ; THEOLLY._Findthread
  4. 029A29DD    83C4 04         add     esp, 4
  5. 029A29E0    85C0            test    eax, eax
  6. 029A29E2    74 05           je      short VMSweepe.029A29E9
  7. 029A29E4    8B40 14         mov     eax, [eax+14]
  8. 029A29E7    EB 02           jmp     short VMSweepe.029A29EB
  9. 029A29E9    33C0            xor     eax, eax
  10. 029A29EB    50              push    eax
  11. 029A29EC    FF15 8431A302   call    [<&theolly.#45__Findmodule>]     ; THEOLLY._Findmodule
  12.  
  13. ->029A29F2    8B08            mov     ecx, [eax]
  14. 029A29F4    8B5424 08       mov     edx, [esp+8]
  15. 029A29F8    83C4 04         add     esp, 4
  16. 029A29FB    3BD1            cmp     edx, ecx
  17. 029A29FD    72 0F           jb      short VMSweepe.029A2A0E
  18. 029A29FF    8B40 04         mov     eax, [eax+4]
  19. 029A2A02    03C1            add     eax, ecx
  20. 029A2A04    3BD0            cmp     edx, eax
  21. 029A2A06    77 06           ja      short VMSweepe.029A2A0E
  22. 029A2A08    B8 01000000     mov     eax, 1
  23. 029A2A0D    C3              retn
  24. 029A2A0E    33C0            xor     eax, eax
  25. 029A2A10    C3              retn
  26.  





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 09 сентября 2015 16:04
· Личное сообщение · #17

Vamit, плезир слинкуй плуг под Mr.eXoDia x64 dbg.
а то плагин есть, и дебагер есть под х64, а в связке ничего нетУ

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 09 сентября 2015 16:53
· Личное сообщение · #18

Bronco
Ты про что? Свипер только в связке с 32 разрядной Олькой может работать...

-----
Everything is relative...





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 10 сентября 2015 11:37
· Личное сообщение · #19

Vamit пишет:
- полностью статическая декомпиляция, без точек останова и исполнения кода

жаль, а то всё чаще попадается с другой разрядностью.

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





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

Создано: 10 сентября 2015 11:44
· Личное сообщение · #20

Bronco пишет:
Vamit, плезир слинкуй портируй плуг под Mr.eXoDia x64 dbg.

т.е. плуг только на x32 завязан? вроде же только инструкции толще должны быть, ядро обфускации наверняка одно и тоже



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

Создано: 10 сентября 2015 11:57
· Личное сообщение · #21

reversecode пишет:
т.е. плуг только на x32 завязан? вроде же только инструкции толще должны быть, ядро обфускации наверняка одно и тоже

Как я понял из доки по созданию свипера вся раскрутка ВМ базируется на заранее выявленным шаблонах. Т.е. для x64 Vamit'у фактически нужно заново исследовать VMP 2.x
Да и в x64 появляются новые инструкции, поиску которых тоже нужно обучить свипер.
Но пусть сам Vamit разъяснит поле работ над x64.

PS. Да и ковыряние в x64 под вторую версию VMP уже не актуально.




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

Создано: 10 сентября 2015 12:50
· Личное сообщение · #22

Да всё просто, анализ кода, девиртуализация и декомпиляция базируются на полном разборе всех вариантов асм инструкций, в х64 - другие инструкции, следовательно под каждую их них должен быть написан свой обработчик. А среда анализа - это Олька 1.10 со своим асмом и дизасмом, Свипер же не законченная прога, а плагин, который базируется на конкретном SDK под Ольку... вот и весь ответ.

-----
Everything is relative...




Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 21 сентября 2015 15:21
· Личное сообщение · #23

vden пишет:
Если интересно, небольшая утилита для приклеивания импорта, найденного свипером к дампу. Довольно простая, тестировалась на exe, но по крайней мере у меня, работает

В командной строке нужно указать текстовый файл, в который скопировали содержимое VM Reference, и путь к дампу.

Если у кого-нибудь осталась тулза, дайте знать в личку. Спасибо! ;)

-----
once you have tried it, you will never want anything else





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

Создано: 21 сентября 2015 15:33
· Личное сообщение · #24

gloom пишет:
vden пишет:
Если интересно, небольшая утилита для приклеивания импорта, найденного свипером к дампу. Довольно простая, тестировалась на exe, но по крайней мере у меня, работает

В командной строке нужно указать текстовый файл, в который скопировали содержимое VM Reference, и путь к дампу.
Если у кого-нибудь осталась тулза, дайте знать в личку. Спасибо! ;)


https://dailyuploads.net/0ijsiw388tsz

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


| Сообщение посчитали полезным: gloom


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

Создано: 31 января 2016 16:51 · Поправил: -Sanchez-
· Личное сообщение · #25

Всем привет! Хочу декомпильнуть одну функцию, получаю ошибку:
Can't execute VM handler Jmp in address 0x00D07531!
Перешел по адресу, а там мусор:
Code:
  1. 00D07531     40                         INC EAX
  2. 00D07532     24 EE                      AND AL,0EE
  3. 00D07534     CC                         INT3
  4. 00D07535     C549 35                    LDS ECX,FWORD PTR DS:[ECX+35]             ; Modification of segment register
  5. 00D07538     5D                         POP EBP                                   ; 007D0EC8

Комплект: Оля 1.10, последний фантик, WMSweper 1.5 beta 4. Программа 2013 года. Как можно обойти эту ошибку?

UPDATE: Почитал тему, все понял.



Ранг: 1.7 (гость), 9thx
Активность: 0=0
Статус: Участник

Создано: 07 апреля 2016 16:37 · Поправил: m1kserok
· Личное сообщение · #26

reversecode пишет:
http://www.slideshare.net/ReCrypt/deobfuscation-and-beyond
на 10 странице VMSweeper вспоминают

Нашёл таки видосик, по этой призентации на 12:21 Вспоминают ВМСвипер вот прямая ссылка
--> 1ODkJ4zF0YU?t=12m17s <--
"Мы прочитали книжку про символьные вычисление и построили своё казино"
Интересно что книжка тоже такую хочу. Странно что их никто не спросил про это



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

Создано: 08 апреля 2016 09:04 · Поправил: VodoleY
· Личное сообщение · #27

-Sanchez- пишет:
Can't execute VM handler Jmp in address 0x00D07531!

подозреваю 2 варианта. либо у тебя не правильно таблица примитивов разспозналась, либо свипер ее не поддерживает. если хочеш просто обойти.. грубо. то можно в таблице примитивов.. адрес 0x00D07531 подправить на ИЗВЕСТНЫЙ свиперу примитив.. только это если ты уверен, что все действительно ДО этого правильно
все это надо начинать рассматривать с главного цикла ВМ (там есть указатель на ленту пикода и адресс таблицы примитивов)

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 1.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 апреля 2016 22:26
· Личное сообщение · #28

Тут проскакивала утилита для приклеивания импорта, сделанного vmsweeperом. По старым ссылкам ее скачать не получается. Никто не выложит ее еще раз?




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

Создано: 19 апреля 2016 10:36
· Личное сообщение · #29

jazzz пишет:
Тут проскакивала утилита для приклеивания импорта, сделанного vmsweeperом. По старым ссылкам ее скачать не получается. Никто не выложит ее еще раз?


--> Link <--

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


| Сообщение посчитали полезным: jazzz

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 19 апреля 2016 16:46
· Личное сообщение · #30

Если кому-то нужно, вот исходники, пока не потерял

https://github.com/vdisasm/pas-vmp-glueimport

| Сообщение посчитали полезным: antipod, mak, jazzz, Jupiter, mkdev

Ранг: 1.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 апреля 2016 00:45
· Личное сообщение · #31

Возможно уже спрашивали, но что то сходу не найду, что значит ошибка Decoder VM is not running? И еще при попытке декомпильнуть функцию происходит краш программы и вообще железные бряки приводят к падению программы несмотря на то что все плагины настроены и сама программа уже распакована? С софтовыми нет проблем. Что вообще тут можно сделать?


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 23 . 24 . >>
 eXeL@B —› Протекторы —› Декомпилятор ВМ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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