Сейчас на форуме: -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!

Создано: 12 июня 2013 15:56
· Личное сообщение · #2

ASDec преобразился и неплохо обновился:
http://www.free-decompiler.com/flash/
http://www.free-decompiler.com/flash/changeslog.html

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


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

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

Создано: 15 июня 2013 18:34 · Поправил: JohnyDoe
· Личное сообщение · #3

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

В кратце. Флешку кромсают так же как и в случае doSWF. Прелоадер что-то химичит и если его изменить, то флешка перестает работать. Что-то он там делает на основе загруженных своих же байт. Код там какой-то хитрый и достаточно длинный. Я не стал разбираться с ним. Просто сдампил загружаемые флешки и начал их ковырять. Всякие декомпилеры на них жестко тупили. Правда елтимовский все таки открывал и я посмотрел что там хоть есть. Т.к. я не нашел внутри шейпов, то я предположил что все батоны и спрайты фальшивые. Скорее всего это слишком смелое предположение, но это сработало. При помощи swfsplit'a разрезал флешку и удалил "левые" на мой взгляд объекты.
Это были:
Cпрайты - код 39;
Батоны - код 34;
DoInitAction - код 59;
DoAction - код 12;
+ все что было после объекта end.

Потом собрал все назад в одну кучу. Открыл софинком и о чудо он не упал. Проделал тоже самое со второй флешкой. Объединил первую и вторую. Запускаю. И все работает как часы.

Код надо сказать оказался замусорен. Присутствуют "левые" операторы newfunction, видимо подсмотрели у SecureSWF 4.0. Также насовано своих разных дурацких if'ов. С которыми бороться сложнее. AS3Sorcerer их берет без проблем.

Некоторые строки переименованы знатно, но это вообще не проблема. Вот иллюстрация того что было и то что я получил после несложной манипуляции.



Вобщем как-то так.

P.S. никак из заголовка файла не разобрал что за защита была. Там на китайском.

А это часть кода из прелоадера



Switch очень длинный и естественно там не просто break в каждом кейсе. Вот пример того что там

Code:
  1. L442:
  2.       pushnamespace       PrivateNamespace(null, "var95#4")
  3.       jump                L551


В конце какая-то очень длинная "колбаса" из кода не стал сюда выкладывать.

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


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

Создано: 16 июня 2013 21:40
· Личное сообщение · #4

Еще одно подтверждение тому, что все, кроме обфускации имен в swf, - обратимо и взламываемо.
Если интересно покопаться в защитах - разбери SWF Cry - тот же пример с сайта прота, если ещё не пробовал (не помню, говорил я тебе про него ранее или нет).
Там приятные интересности алхимические есть, правда когда уже ознакомишься с алхимией дальше не так интересно.

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





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

Создано: 20 июня 2013 23:48 · Поправил: 4kusNick
· Личное сообщение · #5

FFDec (JPEXS Free Flash Decompiler) обновился до 1.6.3!
Release date: 06/20/2013

New:
Parallel SpeedUp can be disabled in menu
Better loop detection

Fixed:
Replacements file not found issue
AS1/2 postincrement fix
Fixed loop detection
Fixed loop highlighting in export
Flash player file path detection
Improved imports
CommentItem fix
Better deobfuscation
AS3 inc/dec local deobfuscation fix
Memory limit increased

Еще раз обновился, до 1.6.3u1 с мелким фиксом
Memory limit decreased - FFDec was not working on 32 bit JVM.

http://www.free-decompiler.com/flash/download.html

Кстати, кто ещё не пробовал - очень рекомендую, лучший аналог ASV (по качеству деобфускации) что я видел. А концепт живого редактирования кода (дада, именно кода, а не байткода - экспериментальная фича) вообще выносит мозг.
Автор относительно активно фиксит баги, так что если кто чего найдет - смело оставляйте в Issues

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


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


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

Создано: 21 июня 2013 18:48 · Поправил: 4kusNick
· Личное сообщение · #6

Обновил шапку, добавил секцию с дамперами и статьями, почистил всякое старьё.

Тем временем FFDec обновился ещё разок:
1.6.3 update 2
Release date: 06/21/2013
New:
Ifs with empty onTrue branches now inverted

Fixed:
Long line restriction removed

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


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


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

Создано: 01 июля 2013 22:32
· Личное сообщение · #7

Релизнулся Swf iD 0.6.c от местного обитателя LIZARD'а.
Очень годный софт для первичного анализа защищенной swfки (особенно тем, кто ранее с флэшом мало сталкивался), есть сигнатурный анализ протекторов, прикольный дампер, и много чего еще.

Крооме того, офигенски обновился FFDec:
1.6.4
New:
Globally rename identifier (!)
Deobfuscation - rename identifiers according to type (!)
Drag & Drop SWF file to main window opens it
Context menu integration on Windows
Drag & Drop items from tree outside of application
AS3: Find document class
Using exportassets tag for tag names
New lines in plain text export
Display AS2 classes as tree of packages
Better loop detection
Remembering window size + splitbar positions between runs

Fixed:
AS1/2: not refreshing decompiled after rename
Renaming SymbolClass identifiers too
Renaming identifiers renamed strings
Invalid text positions in FLA export
Unicode support
Escape filenames during obfuscated AS3 export
Better package vs classname handling
Empty if branches not inverted
Better search handling (not freezing)
AS3: Try statements in loops
Graph repaint problem
AS3: Improper rest parameter handling
Commandline binaryData export
DefineBitsJPEG2 image replacing
Closing SWF file after loading
other minor fixes

1.6.4 update 1
Fixed:
For loops detection
AS3:direct lookupswitch support

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





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

Создано: 07 июля 2013 02:16
· Личное сообщение · #8

У SWF iD появился свой сайт: http://swfid.je1.ru
Добавлено в шапку.

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





Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 07 июля 2013 13:42
· Личное сообщение · #9

Добавьте в шапку ZWS decompress


683f_07.07.2013_EXELAB.rU.tgz - ZWS decompress.rar

-----
Nulla aetas ad discendum sera





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

Создано: 07 июля 2013 17:03
· Личное сообщение · #10

Мм.. я так понимаю, это простой декомпрессор (поддерживающий LZMA), многие из указанных в шапке утилит умеют сжимать\разжимать swfки.

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




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

Создано: 18 июля 2013 19:58
· Личное сообщение · #11

Action Script Viewer ссылки мёртвые залейте у кого если есть плиз




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 18 июля 2013 21:44
· Личное сообщение · #12

Xlab0s

http://zalil.ru/34643385 5.01

-----
[nice coder and reverser]


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

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

Создано: 21 июля 2013 14:54 · Поправил: JohnyDoe
· Личное сообщение · #13

Что-то описания работы для ffdec нигде нет. Я решил его попинать чуток, чтобы понять на что он годен. Возникло некое непонимание. Может кто сможет прояснить?

Баловался с деобфускацией.



Если выставляю обработать все классы, ffdec что-то там молотит часик, судя по нагрузке на процессор. Потом нагрузка на проц пропадает, индикатор рядом с деобфускацией продолжает крутиться. И так до бесконечности.

Если не выставлять птицу "обработка всех классов", то мгновенно выскакивает окно что все сделано. Но видимо ничего не сделано, потому как в сохраненном файле ничего не меняется. Как эту птицу использовать?

У всех так долго деобфускация работает? Понятно что зависит от исходного swf, но все же. Я экспериментировал с добавлением в rabcdasm функционала по удалению лишнего кода, он у меня это делает можно сказать на лету. Корявенько правда, но делает и быстро. Восстановление порядка выполнения кода я не делал, к rabcdasm это прикрутить непросто. Хотя может я просто еще не продумал этот вопрос до конца.




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

Создано: 21 июля 2013 16:31
· Личное сообщение · #14

JohnyDoe пишет:
Если выставляю обработать все классы, ffdec что-то там молотит часик, судя по нагрузке на процессор. Потом нагрузка на проц пропадает, индикатор рядом с деобфускацией продолжает крутиться. И так до бесконечности.

Это баг.

JohnyDoe пишет:
Как эту птицу использовать?

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

Деобфускация у меня работает быстро, тормозить её может автоматическая деобфускация впринципе, попробуй отключить её и посмотреть стало ли быстрее.

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


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

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

Создано: 21 июля 2013 18:15 · Поправил: JohnyDoe
· Личное сообщение · #15

4kusNick пишет:
Если она не установлена, то обрабатывается только тот класс что сейчас открыт.Если в открытом классе ничего не меняется, но должно - значит тоже баг.


Вообще код "выпрямляется" вполне пристойно. Т.е. я вижу что код выпрямлен. При сохранении файла должны эти изменения внестись в код? SWFDecompiler не показывает изменений в деобфусцированном классе, после сохранения файла в FFDec.




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

Создано: 21 июля 2013 20:07
· Личное сообщение · #16

Да, оно должно сохраняться. А в самом FFDec при повторном открытии этого файла код уже почищен?
Если нет и все так же как было до деобфускации - то это баг.

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




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

Создано: 21 июля 2013 20:47 · Поправил: JohnyDoe
· Личное сообщение · #17

Вобщем вроде что-то прояснилось. Когда я не врубаю "обработать все классы", у меня срабатывает деобфускация только когда я функцию выделяю. И деобфусцируется только эта функция. После сохранения в SWFDecompiler'е эта функция выглядит нормально, а остальные функции класса остаются не деобфусцированными. Весь класс полностью деобфусцировать что-то не получается пока.




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

Создано: 21 июля 2013 22:04
· Личное сообщение · #18

О, вон оно как
Так разве автоматическая деобфускация не подчищает байткод всего открытого класса?

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




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

Создано: 22 июля 2013 15:32
· Личное сообщение · #19

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



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

Создано: 23 июля 2013 15:31 · Поправил: Xlab0s
· Личное сообщение · #20

что то немогу убрать стучалку на сайт
Action Script Viewer вобще может править байткод as3?

Symbol 1706
файл rghost.ru/47611050

*
Flasm помог, может есть что более удобное?




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

Создано: 23 июля 2013 17:16 · Поправил: 4kusNick
· Личное сообщение · #21

А шапку почитать?
ASV не позволяет нормально вручную править байткод, правда можно из него сохранить swf после деобфускации.

Используйте FFDec или RABCDasm (и его производные).

Flasm с as3 не работает.

PS: ваша флэшка не будет работать без сервера (она получает оттуда необходимые для работы данные).

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


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

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

Создано: 23 июля 2013 17:33
· Личное сообщение · #22

да всё норм сервер есть Flasm правит но FFDec поудобнее



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

Создано: 02 августа 2013 19:17
· Личное сообщение · #23

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




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

Создано: 02 августа 2013 20:37
· Личное сообщение · #24

Парсеры - это инструменты для разбора чего-либо, в данном случае вы выдали полную кашу. На самом деле вам нужен граббер, например Sothink SWF Catcher.

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


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

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

Создано: 03 августа 2013 01:35
· Личное сообщение · #25

Xlab0s
SWF iD может сдампить флешки в папку, например, с процесса FlashPlayerPlugin.

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

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

Создано: 04 сентября 2013 18:53
· Личное сообщение · #26

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



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

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

Gauri
Дамп памяти флешки и поиск уже по сигнатурам, тех файлов которые нужны.




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

Создано: 04 сентября 2013 23:34
· Личное сообщение · #28

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

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


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

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

Создано: 05 сентября 2013 04:54
· Личное сообщение · #29

yanus0
А есть готовые утилиты, чтоб велосипед не изобретать? Чтоб как минимум jpg и pdf искать умели.




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

Создано: 05 сентября 2013 06:40
· Личное сообщение · #30

Gauri пишет:
Чтоб как минимум jpg и pdf искать умели.

Crypto Checker



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

Создано: 26 сентября 2013 22:17 · Поправил: JohnyDoe
· Личное сообщение · #31

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

http://exelab.ru/f/action=vthread&forum=1&topic=18041&page=2#21


Посылка получена.

Всем спасибо!


<< . 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 » Выход » ЛС
   Для печати Для печати