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

 eXeL@B —› Основной форум —› Flash (swf). Декомпиляция, взлом
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
Посл.ответ Сообщение


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 11 апреля 2011 15:04 · Поправил: 4kusNick
· Личное сообщение · #1

Дружественные темы: Взлом .net, Java. Взлом и реверсинг, Взлом Android приложений, Unity3D.

Анализаторы:
SWF iD - первый и единственный анализатор для SWF, позволяет выяснить чем накрыта флэшка, имеет встроенный дампер флэшек с отсевом фэйков.

Декомпиляторы\редакторы:
Action Script Viewer (ASV) - лучшее, что есть для работы с обфусцированными swf (ru-board).
AS3 Sorcerer - только код, только as3 (от автора ASV) (ru-board).
JPEXS Free Flash Decompiler (FFDec) - декомпилятор и редактор байткода; есть автоматическая деобфускация (слабенькая), редактирование кода (именно кода!), сохранение в fla, пакетное переименование.
SWiX - редактор swf в виде xml.
Sothink SWF Decompiler (ru-board).
Eltima Flash Decompiler Trillix (ru-board).
SWFWire Inspector - отличная утилитка на AIR, которая позволяет ползать по структуре swf, декомпилировать код и т.д.
Adobe SWF Investigator - аналог SWFWire от Adobe, по некоторому функционалу интереснее.

Работа с байткодом\тэгами:
RABCDAsm - асм/дизасм байткода, опенсорс (as3).
Редактор на базе RABCDAsm - удобный редактор с подсветкой и сворачиванием блоков.
WinRABCDAsm - ещё один GUI для RABCDAsm, на этот раз более практичный - можно использовать с любой версией RABCDAsm.
RABCDAsm mod - удобная редакция RABCDasm от местного обывателя JohnyDoe, позволяет разбирать\собирать swf простым перетаскиванием на основной exe, с автоматической деобфускацией имён и некоторой чисткой от мусора.
SWF Reader - позволяет править все тэги и данные в swf, содержит декрипторы\депротекторы, разработка прекращена.
FlashHacker - инструмент на основе RABCDAsm для работы с байткодом, сделан для исследователей малвари.

Автоматизированное снятие защит
SWF Decrypt - снимает старые версии Amayeta SWF Encrypt и DComSoft SWF Protector (офсайт сдох).
+ уже упомянутые: ASV, FFDec, RABCDAsm mod и SWF Reader.

Дапмеры\Распаковщики (для тех, кому лень руками)
SWF Revealer Ultimate - самый продвинутый из автоматических инструментов данного типа, вытащит все, что проиграется в локальном проигрывателе. Платный, количество лицензий ограничено.
Есть ещё обычный SWF Revealer, который входит в комплект ASV. Тоже весьма прокачанный распаковщик, работает по другому принципу.
SWF Memory Dumper - бесплатный и простой дампер.
Sothink SWF Catcher - умеет вытаскивать swfки из кэшей браузеров и искать их в памяти процессов (ru-board).
+ уже упомянутые: SWF Reader, SWF iD.

Разное
Sulo - дополнение к Intel Pin kit. Может трейсить инструкции (пример), дампить всё что загружается с помощью loader.loadBytes() и расшифровывать SecureSWF строки.
За скомпилированный бинарь 1 спасибо JohnyDoe, еще компилил OKOB, но ссылка сдохла.

Другие местные обсуждения в области исследования Flash:
Decrypt SWF, подверженный обфускации Amayeta SWF Encrypt
Вытащить swf из exe (Camtasia Studio)
Реверсинг Adobe Flash Player
Формат данных флэш-вьювера "Электронной библиотеки" РНБ
DoSWF - professional flash encrypter
Реверсинг Флэша, поменять размер массива
Новый метод защиты swf
Реверсинг flash(action script)
www.teachshop.ru - Обновленная защита
Разбор флешки - о том, как находить и вытаскивать включённые в swf файлы с двоичными данными

Чтиво на тему
Способы "защиты" flash-приложений
Упакованный SWF. Как распаковать?
Продвинутое шифрование в DoSWF? Вызов принят!

Доки \ маны
AVM2 Overview - описание вирт. машины для as3 с опкодами и проч.
SWF File Format Specification - спецификация формата swf (строение, расположение тэгов и проч.).

Debug-версии Flash Player - тут.
Они позволяют трейсить и отлаживать код (см. описание AS3Trace и AS3Verbose тут).

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


| Сообщение посчитали полезным: uncleua, OKOB, SReg, res, ClockMan, Gideon Vi, sendersu, Oott, _ruzmaz_, FrenFolio, d0wn, SGA, Flint, Coderess, daFix, Runner, tracename, pollllll_n, Hexxx, DenCoder, Lumen, NikolayD, AKAB, ==DJ==[ZLO], Rustem, BAHEK, SyntaX, nick8606, UniSoft, Soso, sivorog, MarcElBichon, soho


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 23 октября 2013 15:12
· Личное сообщение · #2

SWFReader опенсорснулся. Бинарники последней PRO версии можно найти тут:
http://sourceforge.net/projects/swf-reader/files/
А сорцы - тут:
http://sourceforge.net/p/swf-reader/code/HEAD/tree/trunk/swf-reader-all/

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


| Сообщение посчитали полезным: Gideon Vi, LIZARD, t0ShA

Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 25 октября 2013 22:15 · Поправил: JohnyDoe
· Личное сообщение · #3

Ох уж эти Java-приложения. SWF-reader тоже почему-то тупит. Бодрячком прогресс дополз до 47 процентов и здрасьте все опять замерло. Это я испытывал снятие secureSWF.

Может сама Java где-то косячит? Выжирает память или еще какая-нибудь фигня с ней? Для усложнения эксперимента скормил ридеру флешовый supaplex. Там все достаточно злобно в плане кода. И ведь не справляются ни ридер, ни ffdec. Прям беда...

Попробовал не все опции при деобфускации включать. Файл на выходе на 10% больше стал. И это при том что оригинал не был сжат. Это прям шутка юмора какая-то.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 26 октября 2013 00:47
· Личное сообщение · #4

Фигня в том, что оба этих приложения очень глючные сами по себе + ява тупит, если ей памяти недостаточно (надо настраивать в конфиге память для кучи и общую виртуальную память, по умолчанию там не всегда адекватные значения).
Правда у меня хоть и настроено нормально всё в плане памяти - всё равно оба приложения так же тупят как и у тебя =\
Зато ASV работает нормально)

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


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

Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 26 октября 2013 01:02
· Личное сообщение · #5

Понятно. Значит что-то крупное ими ковырять не вариант.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 27 октября 2013 04:39 · Поправил: Isaev
· Личное сообщение · #6

Ребят, а AS3 Sorcerer 2.20 кто-нибудь доводил до ума?
или ASV 2013

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 27 октября 2013 04:51
· Личное сообщение · #7

Isaev пишет:
Ребят, а AS3 Sorcerer 2.20 кто-нибудь доводил до ума?


автор дает возможность пользоваться ключиделом переводя системное время.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 27 октября 2013 06:49
· Личное сообщение · #8

Gideon Vi хм... у меня есть версии 1.35 и 1.40 работающие без ключиделов... я их, как таковых не встречал. Да и при чём тут время, кейген и автор?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 27 октября 2013 09:41
· Личное сообщение · #9

Isaev, --> Link <--




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

Создано: 27 октября 2013 10:13
· Личное сообщение · #10

есть asv 2012 - но только распакованный




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 27 октября 2013 17:15
· Личное сообщение · #11

Gideon Vi работает да, только и сама программа потом работает только с отмотанной датой(

r99 пишет:
есть asv 2012 - но только распакованный

кинь поиграться

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

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

Все новые сборки модифицированного rabcdasm буду выкладывать тут http://exelab.ru/f/action=vthread&forum=3&topic=22375

| Сообщение посчитали полезным: 4kusNick, Gideon Vi


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 02 декабря 2013 20:04
· Личное сообщение · #13

JohnyDoe
Гуд, добавил ту тему в шапку. Заодно немного прочесал её.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




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

Создано: 09 декабря 2013 23:17 · Поправил: yagello
· Личное сообщение · #14

Gideon Vi пишет:
автор дает возможность пользоваться ключиделом переводя системное время.

Это не автор дает, это MAZE накосячили. Если в ключеделе один байтик поправить, все будет работать без перевода даты. На руборде ужО есть исправленный ключедел. Сюда же, вроде, нельзя его аттачить?

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


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

Создано: 10 декабря 2013 04:24
· Личное сообщение · #15

Ну ок. Лишь бы теперь уже автор алго не исправил.



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

Создано: 18 января 2014 23:35
· Личное сообщение · #16

Всем привет, пытаюсь понять чем зашифрована эта AS3 Sorcerer, кто может подсказать как ее открыть ее в ida pro? Пишет про не верную точку входа http://floomby.ru/s1/74Fnzx.




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

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

MamXam пишет:
чем зашифрована эта AS3 Sorcerer


vmprotect. Перейдите в другую тему, пожалуйста.



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

Создано: 24 января 2014 19:56 · Поправил: Xlab0s
· Личное сообщение · #18

правайдеры наёбывают со скоростью причём вместо 100мбит/с дают 4-5мбит/с и посылают сюда speedtest.net там всё что им надо показывают и тебя как лоха посылают .......
(хорошо видно по торрентам где много раздач я так обычно смотрел было 6мбайт/с при этом это в 2а раза меньше тарифа щас же 500кбайт/с причём стабильно)
решил глянуть флешку теста скорости думал там всё просто
выдрал флешь

Amayeta SWFEncrypt OLD
другой
SecureSWF 3.6

и унпак несправился

сами флешки ниже

30d9_24.01.2014_EXELAB.rU.tgz - swf.rar




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 24 января 2014 20:55
· Личное сообщение · #19

Xlab0s
Они ничем не упакованы, там только простая обфускация, и непонятно зачем вам это, скорость тестируется без фальсификаций. Главное выбрать правильный сервер (который не попадает в локалку вашего прова).

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 14 марта 2014 19:09
· Личное сообщение · #20

Подскажите, а есть где-то вменяемый обзор формата с примерами (стихами и картинками), а не официальная спецификация? Т.е. в чём проблема. Мне хотелось бы узнать, как я могу вручную воспроизвести функционал декомпилятора. Т.е. как парсить теги, что такое вообще теги, как их патчить в файле вручную (хекс редактором). Ну откуда же люди знают, как писать декомпили? Где-то же берётся инфа о том, как это делается. Потом интересно, чем вообще можно создать флэшку для тестов? Ну, имеется ввиду что-то не очень большое. Также хотелось бы почитать про ручную деобфускацию байткода, про опкоды байткода, про интсрукции байткода. Сссылки в шапке смотрел, но там или просто готовые инструменты, или поверхностные статьи. В спецификации по формату тупо не вижу этой инфы, гугл даёт ссылки на слишком поверхностные статьи, прям печаль-беда.

-----
Stuck to the plan, always think that we would stand up, never ran.




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

Создано: 14 марта 2014 20:14
· Личное сообщение · #21

Вменяемей официальной спецификации ничего не найдёшь.Советую посмотреть любой исходный код SWF декомпилятора,там всё нагляднее.Например RABCDAsm.Я так и сделал.

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

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

Создано: 14 марта 2014 23:45
· Личное сообщение · #22

ARCHANGEL пишет:
Т.е. как парсить теги, что такое вообще теги, как их патчить в файле вручную (хекс редактором)

Теги - по сути это байткодовые блоки.
>как парсить теги
Находим заголовок флешки - это файловая сигнатура FWS, версия плеера, размер файла, размер кадра, частота кадров, количество кадров. После заголовка идет первый тег. Читаем два байта после заголовка, у полученного значения сдвигаем 6 бит вправо и получаем ID тега, далее читаем следующие 4 байта - это размер тега. Передвигаемся в конец первого тега и читаем первые два байта второго тега, и т.д. пока не дойдем до нулевого - последнего тега. Вкратце как-то так, если ничего не забыл.

>как их патчить в файле вручную (хекс редактором)
Если после патча должен поменяться размер, то пропатчить не распарсив на теги будет сложно, ибо надо править размер тега, размер элемента, который изменяется(например строка) и размер файла.
У 010 Editor есть темплейт SWFTemplate, который как раз парсит флешку, там же можно посмотреть алгоритм.



Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 15 марта 2014 14:38 · Поправил: JohnyDoe
· Личное сообщение · #23

RABCDAsm написан на языке D. C ним все не слишком просто. Но самое главное что в нем реализован только функционал работы с тэгами DoABC. Если хочется поковыряться, то лучше взять исходники swfdump из пакета swftools. Он написан на С. Код не то чтобы длинный .

Также можно взять Sothink SWFEditor. В нем структура тоже вполне прилично разложена по полочкам.

Eltima SWFDecompiler умеет делать дамп в котором шестнадуатиричные коды соседствуют с описанием того что эти коды значат. Тоже вариант.

Описаний, кроме официальных от адоба, насколько я знаю нет.

Опкоды менять в hex-редакторе уже не слишком модно. RABCDasm позволяет все делать проще. В нем можно и обфусцированный код лопатить руками, если очень хочется. Но это муторно. Я пробовал .



Ранг: 214.1 (наставник)
Активность: 0.130
Статус: Участник

Создано: 17 марта 2014 12:16
· Личное сообщение · #24



Распаковал флешку и обработал утилитой nowar_swf_decompiler.exe
Только она сняла Amayeta SWF Encrypt.

По ссылке флешка, распакованный вариант, деобфусцированный вариант.
http://rghost.ru/private/53050868/f558009e1e79deb928abbed29815d9d9

4kusNick дал код нужной функции, но хотелось бы самому дойти до этого также.

Если правильно понимаю - код замусорен и поэтому декомпилятор вылетает ( например, здесь об этом написано http://exelab.ru/f/action=vthread&forum=2&topic=12987&page=3#9 ).

Как мне получить доступ к коду, чтобы его поправить перед декомпиляцией в сотнике? Практически только он обрабатывает третий фрейм, все остальные падают. Action Script Viewer (2010-03 Eng и 2010-06 Chinese - то что удалось найти) то же падает на третьем фрейме, хотя второй дизассемблирует. ffdec_2.0.0 справляется только со 2 фреймом.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 17 марта 2014 14:07 · Поправил: 4kusNick
· Личное сообщение · #25

ARCHANGEL
LIZARD
JohnyDoe
По поводу сорцов декомпиля. Самые интересные сейчас на паблике - сорцы FFDec, там ява, она очень проста и понятна + там декомпиляция as2 и as3.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 марта 2014 15:07
· Личное сообщение · #26

LIZARD, JohnyDoe, 4kusNick - спасибо всем, буду смотреть инфу и ссылки.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 17 марта 2014 18:24 · Поправил: 4kusNick
· Личное сообщение · #27

gegter пишет:
Если правильно понимаю - код замусорен и поэтому декомпилятор вылетает

Основная проблема там не замусоренность, а количество кода в одном DoAction тэге. FFDec вроде как пытается что-то сделать, но уж больно долго деобфусцирует, срабатывает таймаут (пробовал ждать минут 20) и съедает до 9 гигов оперативы (если принудительно выставить большой таймаут а advanced options).

Как вариант - можно попробовать разнести код на несколько разных DoAction на одном кадре (FP их все равно склеит при выполнении, финкционал не пострадает), тогда возможно FFDec одолеет их по одному.

ARCHANGEL пишет:
Потом интересно, чем вообще можно создать флэшку для тестов?

Есть несколько способов - какой-нибуль портабельный древний Adobe Flash Macromedia 8 Pro (53 мб), либо Flash Develop, сам он лёгкий, но для разработки надо будет выкачивать SDK (он сам выкачает), который немало весит.
Третий вариант - юзать онлайн площадки-билдеры, типа http://wonderfl.net/ и выкачивать флэшки оттуда =)

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 марта 2014 18:47
· Личное сообщение · #28

4kusNick
В посте выше вы описывали некий тэг DoAction, я так понимаю, что именно внутри этого тэга описывается код. Можно ли так сделать, чтоб после завершающего тэга шёл тэг DoAction, но код, который он описывает, выполнялся?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 17 марта 2014 21:22 · Поправил: JohnyDoe
· Личное сообщение · #29

ARCHANGEL

Конец флешки - это конец флешки. Официально то что за тэгом END работать не будет.

Но можно из скриптов обратиться к данным находяшимся за тэгом END и сделать с ними все что захочется.

Таким образом один китайский протектор например работает.

Ах, да. Насколько я помню тэг DoABC должен быть внутри определенного фрейма, т.е. до тэга showframe.



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

Создано: 17 марта 2014 22:18
· Личное сообщение · #30

JohnyDoe
Добавлю, что конечного тега может и не быть, как у обфускатора SWFCry.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 18 марта 2014 01:39
· Личное сообщение · #31

ARCHANGEL
JohnyDoe
LIZARD
Напомню, что речь о совсем разных тэгах.

DoAction - это тэг с as2 байткодом (avm1), DoABC - это совсем другой тэг с as3 байткодом (avm2), они по-разному устроены и по-разноу работают.

По поводу тэга END - выше все верно подсказали. Если он есть, FP отрабатывает только те тэги, что есть до него (если его нет - отрабатыват все до последнего тэга в файле).
Но можно без проблем запихнуть что угодно после тэга END и обращаться к этому из кода. Примерно так работают "спёртые байты" (так будет проще понять людям, хорошо знакомым с классическим реверсом) в некоторых обфускаторах - закидывают в конец файла реальный байткод (иногда пошифрованный, иногда нет), оставляя на исходной позиции обращения к расшифровщикам \ считывалкам \ переносчикам байткода.
Наиболее простой пример такой обфускации видел в какой-то древней версии Amayeta, и именно при накрывании as2. Забавно, что имена они не тёрли, так что для полного восстановления сорца в почти первозданном виде было достаточно восстановить "украденное" (делалось, к слову, как статически, самописной тулзой, ползающей по байткоду, так и динамически, трейсером), потому, кстати, Amayeta "прославилась" в определнных кругах, как мошенническая контора.
Чет меня понесло

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


| Сообщение посчитали полезным: ARCHANGEL
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Основной форум —› Flash (swf). Декомпиляция, взлом
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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