| Сейчас на форуме: -Sanchez- (+8 невидимых) |
| eXeL@B —› Основной форум —› Flash (swf). Декомпиляция, взлом |
| << . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
| Посл.ответ | Сообщение |
|
|
Создано: 11 апреля 2011 15:04 · Поправил: 4kusNick · Личное сообщение · #1 Дружественные темы: , , , . Анализаторы: - первый и единственный анализатор для SWF, позволяет выяснить чем накрыта флэшка, имеет встроенный дампер флэшек с отсевом фэйков. Декомпиляторы\редакторы: - лучшее, что есть для работы с обфусцированными swf (). - только код, только as3 (от автора ASV) (). - декомпилятор и редактор байткода; есть автоматическая деобфускация (слабенькая), редактирование кода (именно кода!), сохранение в fla, пакетное переименование. - редактор swf в виде xml. (). (). - отличная утилитка на AIR, которая позволяет ползать по структуре swf, декомпилировать код и т.д. - аналог SWFWire от Adobe, по некоторому функционалу интереснее. Работа с байткодом\тэгами: - асм/дизасм байткода, опенсорс (as3). - удобный редактор с подсветкой и сворачиванием блоков. - ещё один GUI для RABCDAsm, на этот раз более практичный - можно использовать с любой версией RABCDAsm. - удобная редакция RABCDasm от местного обывателя JohnyDoe, позволяет разбирать\собирать swf простым перетаскиванием на основной exe, с автоматической деобфускацией имён и некоторой чисткой от мусора. - позволяет править все тэги и данные в swf, содержит декрипторы\депротекторы, разработка прекращена. - инструмент на основе RABCDAsm для работы с байткодом, сделан для исследователей малвари. Автоматизированное снятие защит - снимает старые версии Amayeta SWF Encrypt и DComSoft SWF Protector (офсайт сдох). + уже упомянутые: ASV, FFDec, RABCDAsm mod и SWF Reader. Дапмеры\Распаковщики (для тех, кому лень ) - самый продвинутый из автоматических инструментов данного типа, вытащит все, что проиграется в локальном проигрывателе. Платный, количество лицензий ограничено. Есть ещё обычный SWF Revealer, который входит в комплект ASV. Тоже весьма прокачанный распаковщик, работает по другому принципу. - бесплатный и простой дампер. - умеет вытаскивать swfки из кэшей браузеров и искать их в памяти процессов (). + уже упомянутые: SWF Reader, SWF iD. Разное - дополнение к Intel Pin kit. Может трейсить инструкции (), дампить всё что загружается с помощью loader.loadBytes() и расшифровывать SecureSWF строки. За скомпилированный бинарь спасибо JohnyDoe, еще компилил OKOB, но ссылка сдохла. Другие местные обсуждения в области исследования Flash: - о том, как находить и вытаскивать включённые в swf файлы с двоичными данными Чтиво на тему Доки \ маны - описание вирт. машины для as3 с опкодами и проч. - спецификация формата 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 |
|
|
Создано: 28 февраля 2015 20:09 · Поправил: OKOB · Личное сообщение · #2 4kusNick пишет: Если кто скомпилит - делитесь http://rghost.ru/7n7GHPsJy - sulo.dll - Release ----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: 4kusNick |
|
|
Создано: 28 февраля 2015 20:52 · Личное сообщение · #3 |
|
|
Создано: 28 февраля 2015 20:53 · Поправил: JohnyDoe · Личное сообщение · #4 Я не совсем понял для чего нужен Sulo. Я его уже видел кстати, но так и не попробовал. И эта собака падает с ошибкой:"ERROR: namespace pointer is NULL in Traits object" Vizzy ведь тоже может показать полный трейс. Там игра с параметрами в файле mm.cfg идет. FlashHacker вот так выглядит. http://s10.postimg.org/aexbqi2l5/asew4wre.jpg Питон надо поставить. Потом pip и через него установить PySide. ![]() |
|
|
Создано: 28 февраля 2015 22:11 · Поправил: 4kusNick · Личное сообщение · #5 JohnyDoe пишет: Vizzy ведь тоже может показать полный трейс. Там игра с параметрами в файле mm.cfg идет. Через mm.cfg можно трейсить только в отладочном FP и лог там слишком "шумный" и малоинформативный Пример лога: (AS3Trace=1 + AS3Verbose=1) Sulo в теории работает со всеми FP, только автор не добавлял поддержку всех версий (это сделать не сложно, надо прописать смещения в одном cpp). Я пробовал на релизном . Вот пример его лога: (а вот примерно то же место, что в Vizzy: ) Командная строка была такая: pin.exe -t source\tools\Sulo\Release\sulo.dll -logfile "d:\sulo.log" -tracefile "d:\trace.log" -- "D:\fp.exe" JohnyDoe пишет: FlashHacker вот так выглядит. http://s10.postimg.org/aexbqi2l5/asew4wre.jpg Питон надо поставить. Потом pip и через него установить PySide. Прелестно! Спасибо =) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 03 марта 2015 01:15 · Личное сообщение · #6 |
|
|
Создано: 03 марта 2015 01:55 · Личное сообщение · #7 |
|
|
Создано: 03 марта 2015 03:52 · Личное сообщение · #8 |
|
|
Создано: 03 марта 2015 11:57 · Поправил: JohnyDoe · Личное сообщение · #9 На самом деле у меня даже шаблон есть. Просто разбираем rabcdasm'ом и вставляем где надо. Переменную для вывода надо заменить на свою. Code:
| Сообщение посчитали полезным: Isaev |
|
|
Создано: 03 марта 2015 12:22 · Личное сообщение · #10 |
|
|
Создано: 03 марта 2015 12:55 · Личное сообщение · #11 |
|
|
Создано: 03 марта 2015 14:38 · Поправил: JohnyDoe · Личное сообщение · #12 4kusNick Прокатит. Все элементы через запятую должны выпасть в лог. С ByteArray'ем посложнее будет через трейс. Но его можно например так слить в файл Code:
P.S. Вектор тоже выводится как массив. Только что попробовал. ![]() |
|
|
Создано: 03 марта 2015 16:12 · Личное сообщение · #13 JohnyDoe пишет: Вектор тоже выводится как массив. Только что попробовал. Эт хорошо!) JohnyDoe пишет: С ByteArray'ем посложнее будет через трейс. Но его можно например так слить в файл Да, сам пользовал FileReference.save на одной air приложухе, правда во Flash player такое вроде только в ответ на пользовательское действие можно делать, то есть если был клик по кнопке и в где-то в коде обработчика клика такое прописать - будет ок, но если клика не было могут и послать насколько помню. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 03 марта 2015 16:25 · Личное сообщение · #14 |
|
|
Создано: 03 марта 2015 20:34 · Личное сообщение · #15 |
|
|
Создано: 03 марта 2015 22:17 · Поправил: JohnyDoe · Личное сообщение · #16 |
|
|
Создано: 03 марта 2015 23:19 · Личное сообщение · #17 Вероятно в standalone меньше ограничений, рад что там работает "из коробки"! Без участия - я имел ввиду без предварительного клика по кнопке где-то во флэшке. В доках написано так: In Flash Player, you can only call this method successfully in response to a user event (for example, in an event handler for a mouse click or keypress event). Otherwise, calling this method results in Flash Player throwing an Error exception. This limitation does not apply to AIR content in the application sandbox. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 05 марта 2015 00:25 · Личное сообщение · #18 |
|
|
Создано: 05 марта 2015 00:53 · Личное сообщение · #19 Isaev пишет: как вевысти нужную переменную Вкратце - нужно дизассемблировать до байткода, затем в нужном месте вставить байткод вызова трейса с передачей ему аргумента (пример привёл JohnyDoe выше, там трейсится массив с именем names) и ассемблировать обратно. Для дизасма\асма - лучше использовать что-нибудь на основе RABCDAsm, например . Это всё про as3. Если swfка на as2, то подход немного другой, но вцелом аналогичен. Только инструменты иные. Я бы посоветовал SWiX или FFDec для редактирования as2 байткода. Если есть обфускация - лучше сперва снять, либо пробовать по живому, но внимательно проверять результат, т.к. могут быть проблемы. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 05 марта 2015 02:44 · Личное сообщение · #20 4kusNick, as3, обфускация есть, посмотреть массив хотелось бы "на лету", ибо я без понятия можно ли флешку с социальной сети запустить без авторизации. Следовательно обфускацию тоже не снять (да и даже если бы можно было, после снятия оно же не соберётся назад в рабочую флешку?!) пробовал в JPEXS там есть экспериментальная кнопка патча в памяти, но оно вообще похоже ничего не патчит) ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
|
Создано: 05 марта 2015 03:26 · Личное сообщение · #21 Я бы действовал так: - попробовал пропатчить обфусцированную swf (нашёл бы нужно место и впердолил бы туда трейс) - подсунул бы её браузеру через Map Local в Charles например - второй вариант - перехватывать FFDec'овсим прокси и патчить через тот же ре-ассемблинг А обфускацию зачастую можно снять не ломая флэшку. Скорее наоборот, все станет пошустрее работать
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: Isaev |
|
|
Создано: 05 марта 2015 09:14 · Поправил: VodoleY · Личное сообщение · #22 |
|
|
Создано: 05 марта 2015 10:18 · Личное сообщение · #23 |
|
|
Создано: 05 марта 2015 12:02 · Личное сообщение · #24 VodoleY Туторов не знаю, но там все довольно просто - дизасмим, лезем в нужный метод нужного класса, добавляем нужный байткод, асмим обратно =) Как выглядит байткод трейса выше кидал JohnyDoe. Наверное лучше начать, а там по ходу дела все возникающие вопросы решать. Isaev Туторов не видел, но я и не искал, т.к. для деобфускации SecureSWF ASV пользую. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
|
Создано: 05 марта 2015 14:03 · Поправил: JohnyDoe · Личное сообщение · #25 Isaev Вот тебе 3 картинки. Оригинальная флешка накрытая secureswf в софинке, она же в as3sorcerer и она же после прохода модом rabcdasm опять же в софинке. As3sorcerer не модифицирует флешку. Поэтому придется копаться в обфусцированном коде для того чтобы вставить свой код. Rabcdasm mod вносит изменения в код и копаться в нем много легче потом. Вставить свой код даже в обфусцированную флешку не такая уж проблема. Надо только найти место, куда его вставить. Но когда у тебя есть исходники, я не вижу проблемы с поиском нужного места. Тем более ты же уже рипнул алгоритм, а значит тебе должно быть известно место. ![]() |
|
|
Создано: 05 марта 2015 15:49 · Личное сообщение · #26 |
|
|
Создано: 05 марта 2015 16:29 · Личное сообщение · #27 |
|
|
Создано: 06 марта 2015 09:57 · Личное сообщение · #28 |
|
|
Создано: 06 марта 2015 10:34 · Личное сообщение · #29 Я чарли никогда не использовал. Делал через старую оперу. Открываем страницу. Ищем в кэше нужный файл и заменяем нашим файлом. В опере открываем исходный код страницы, пару букв правим(чтобы кнопка применить изменения активировалась), применяем изменения. При этом все будет подгружено из кэша. Вот сейчас чарли глянул. Там все просто. Tools->Map local. Указываешь адрес в интернете и выбираешь файл на винте. Профит. Не забываем указать чарли в качестве прокси. ![]() |
|
|
Создано: 06 марта 2015 12:16 · Поправил: 4kusNick · Личное сообщение · #30 Isaev пишет: так и не нашёл как в нём возможно подменить флешку Он при установке в лису в качестве прокси прописывается. Затем запускаем лису, запускаем чарли, ждём когда прогрузится то что нам надо, находим в дереве в левой части нашу swf, ПКМ на неё и выбираем Map Local... http://i.imgur.com/efN5wCl.png В разделе Map From уже всё будет заполнено, останется выбрать файл для Map To: http://i.imgur.com/JrxZyUk.png (у меня в Map From там от балды шляпа на скрине, не обращай внимания). Ну и выбираешь свой swf патченный. Всё, теперь чисть кэш в лисе и обновляй страницу - должен будет вместо оригинального swf подхватиться твой локальный. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: Isaev |
|
|
Создано: 07 марта 2015 02:19 · Поправил: Isaev · Личное сообщение · #31 Всё останавливается при начале загрузки флешки (уже по идее после "подмены"), слева в столбце она помечается красным крестом и Charles пишет в Notes "You may need to configure your browser to trust the Charles CA SSL Certificate." Но запроса на сертификат нет и как ему это разрешить? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
| << . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
| eXeL@B —› Основной форум —› Flash (swf). Декомпиляция, взлом |







Для печати