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

 eXeL@B —› Основной форум —› Онлайн флеш реверсинг
Посл.ответ Сообщение


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

Создано: 06 ноября 2014 10:58
· Личное сообщение · #1

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

-----
Everything is relative...




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

Создано: 06 ноября 2014 11:09
· Личное сообщение · #2

Vamit я б очень посоветовал для начала.. FireFox с плагином httpfox. это позволит перехватить весь хттп трафик и получить линки загрузок

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





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

Создано: 06 ноября 2014 11:35
· Личное сообщение · #3

VodoleY пишет:
получить линки загрузок

В принципе все линки есть, отреверсил лаунчер, который работает как COM клиент через IE. Можно конечно сравнить их и с полученными через FireFox, но думаю что будет разница при запуске приложения как через браузер, так и через лаунчер.

-----
Everything is relative...




Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 06 ноября 2014 11:38
· Личное сообщение · #4

Потом скачать весь контент и поднять на локалхосте какой-нибудь денвер, ну а потом ковырять всякими дамперами-декомпиляторами. Тут хорошая подборка https://exelab.ru/f/action=vthread&forum=1&topic=18041&page=0



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

Создано: 06 ноября 2014 11:43
· Личное сообщение · #5

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

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





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

Создано: 06 ноября 2014 11:59
· Личное сообщение · #6

TryAga1n пишет:
Потом скачать весь контент и поднять на локалхосте какой-нибудь денвер, ну а потом ковырять всякими дамперами-декомпиляторами.

В этом ответе сразу три темки:
1. Скачать весь контент - весь скачать не получится, так как приложение во время работы взаимодействует с реал сервером после авторизации на нем.
2. Денвер - по причине первого толку от него будет мало.
3. До этого я пока не дошел по причине того что нет полной картинки процесса, есть только куча файлов из кеша IE и взаимосвязь между ними я пока не улавливаю...

-----
Everything is relative...





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

Создано: 06 ноября 2014 17:41
· Личное сообщение · #7

Vamit
Расскажите подробней про задачу. Что именно требуется сделать? Надо ли вообще весь контент выкачивать, статический анализ не подходит?

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

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





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

Создано: 06 ноября 2014 20:30
· Личное сообщение · #8

4kusNick пишет: Расскажите подробней про задачу. Что именно требуется сделать?
Особо вдаваться в частности задачи не хотел бы по определенным причинам. Нужно найти на некоторых формах обработчики кнопок и пошаманить над ними.
4kusNick пишет: Надо ли вообще весь контент выкачивать, статический анализ не подходит?
Думаю что не надо и стат анализ подходит.
Так как тема для меня новая, то сначала хотелось бы понять загрузку приложения и его запуск...
Вообще интересует сам процесс отслеживания последовательности загрузки и инструменты для работы с ним.
Пока httpfox'ом получил последовательность линков (около 100) после авторизации и до запуска приложения (html, php, js, swf, jpg и прочее). А вот с контентом сложнее, некоторые линки грузятся нормально, другие с ошибками, а третьи вообще никак... или руки у меня ещё кривые.

-----
Everything is relative...




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

Создано: 06 ноября 2014 21:34 · Поправил: Alinator3500
· Личное сообщение · #9

Читал раньше, что нашлось:
1) Бот для Flash-игры / Внедряемся в Flash http://habrahabr.ru/post/127110/
2) Взламываем flash игры с помощью Monster Debugger. Внедрение (гуглим дополнительно) http://cheaton.ru/sitemap/t-10588.html
3) В поиске бесплатных билетов, исследование игры Аэрофлота http://habrahabr.ru/post/238463/

TryAga1n действительно, на локалке лучше тестить. Для этого нажать пару кнопок в OpenServer/IIS.

Одно время интересовался этим, и узнал нечто новое про популярный сканер портов, который следит где ни попадя.

Для анализа Web общения - burpsuite, fiddler2 (сравнение логов в Windiff).

Еще. Есть такой сайт wpepro.net, сейчас доступен через вебархив https://archive.org/ (в кэш гугл тихо).
Можно менять пакеты IP (правила, фильтры). Замедлять браузер в 1-1000 раз, менять значения переменных в памяти.




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

Создано: 06 ноября 2014 23:02 · Поправил: 4kusNick
· Личное сообщение · #10

Vamit пишет:
Так как тема для меня новая, то сначала хотелось бы понять загрузку приложения и его запуск...

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

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

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

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

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




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

Создано: 07 ноября 2014 00:24 · Поправил: unknownproject
· Личное сообщение · #11

Сразу видно, что ребята приложения вк никогда не ломали (=
Снифаете запросы.
Пишите софтан для автоматизации.
Профит.
Charles/TamperData и тд.Сниферов http запросов по горло.
Можно даже CheatEngine заюзать, натравив на браузер.

-----
TEST YOUR MIGHT





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

Создано: 07 ноября 2014 02:19
· Личное сообщение · #12

4kusNick пишет: не понятно что именно сейчас вызывает затруднения.
Пока не удалось получить нужный контент по полученным линкам, хотя браузер его получает, что видно по заголовкам, контент httpfox тоже показывает, правда не весь, про некоторые файлы говорит что не удалось распознать, хотя браузер в кеш их берет нормально. Если в кеше IE файлы контента лежат в исходном виде, то в кеше Мозилы они переименованы и внктри к содержимому пристыкованы нттр заголовки, причем в кеш попадает не весь запрашиваемый контент.
Для загрузки контента по url использую Content Downloader, вот про него я и писал, что контент по некоторым линкам грузит нормально. Картинки и бинарные файлы обрезает или удаляет из них что-то (ещё не разобрался), а некоторые линки вообще не грузит - причина пока неизвестна. Нет-ли какого нибудь плагина для FireFox по получению контента или даже не по получению а по сохранению в файлы уже полученного.

-----
Everything is relative...





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

Создано: 07 ноября 2014 15:11
· Личное сообщение · #13

Vamit
Гляньте всё-таки Charles. В нём удобно просматривать загружаемый контент, все запросы, ответы и т.д., из него же можно и сохранять всё полученное.

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





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

Создано: 07 ноября 2014 15:33
· Личное сообщение · #14

С контентом разобрался, взял что нужно из кеша FireFox с помощью Cache Viewer.

-----
Everything is relative...





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

Создано: 07 ноября 2014 20:18
· Личное сообщение · #15

4kusNick пишет:
и результаты проверяю уже подменой swfки в кэше браузера.

Вот так брутально никогда не пробовал)
там есть какие-нибудь тонкости?
Просто тупо в процессе работы подменить файл и всё будет работать дальше?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 07 ноября 2014 20:43 · Поправил: JohnyDoe
· Личное сообщение · #16

Isaev Будет. Правда иногда обновляется все это дело. Я делал так. В опере гружу страницу с флешкой. Заменяю флешку. Открываю исходный код страницы прямо в опере, вношу любые изменения, отменяю изменения, нажимаю применить. Флешка перегружается из кэша. Вуаля. Этот способ гарантированно позволяет грузить флешку из кэша. Другие способы могут привести к обновлению файла с сервера.

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


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

Создано: 07 ноября 2014 20:49
· Личное сообщение · #17

Isaev
Да, оно работает, но как верно заметил JohnyDoe иногда юзается антикэш и файл либо вообще в кэш не сбрасывается, либо постоянно там обновляется новой версией. В таком случае на помощь приходит всё тот же Charles, там есть возможность подмены флэшек и вообще любых файлов. Просто на определённый запрос в ответ будет подсовываться наша флэшка вмето флэшки с сервера.

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





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

Создано: 09 ноября 2014 11:57
· Личное сообщение · #18

Попробовав несколько AS декомпиляторов пришел к выводу что наиболее правильный код создает AS3 Sorcerer, хотя и в нем присутствуют некоторые ошибочки (переменные без типа, отсутствующий импорт).
Проверку проводил FleshDeleloper'ом пытаясь скомпилировать полученные скрипты.

-----
Everything is relative...





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

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

Как узнать какой swf файл проигрывает Flash Player в настоящий момент?

-----
Everything is relative...





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

Создано: 10 ноября 2014 18:49
· Личное сообщение · #20

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

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





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

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

4kusNick пишет:
Глянуть на его память.

Если бы это было так просто.... Когда запущено приложение SwfId показывает несколько десятков swf файлов загруженных в память но все они ссылаются на какой-то полупустой prsc.swf в temp директории.
Можно как-то узнать имена этих файлов и последовательность их загрузки?

-----
Everything is relative...





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

Создано: 10 ноября 2014 21:50 · Поправил: 4kusNick
· Личное сообщение · #22

Vamit
Тогда можно профайлирить через PreloadSWF например (во флэшке, используемой в качестве PreloadSWF можно дёргать flash.sampler.getSamples() и получать в том числе все текущие лоадеры, а дельше следить за ними, фильтруя только те, что грузят swf файлы).
Есть TheMiner, который использует PreloadSWF: http://www.sociodox.com/theminer/
В нём есть Loaders profiler:
http://www.sociodox.com/theminer/feature.html#Loaders
http://www.youtube.com/watch?v=mb-tCYOu8to
Потребуется отладочная версия FP, чтобы оно сработало. И я уже давно не использовал этот профайлер, не знаю как он с последними версиями FP себя ведёт.

Добавлено спустя -52 минут
Ну и всякие низкоуровневые снифферы тоже никто не отменял (можно по заголовку узнать, что загружается swf файл).

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

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





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

Создано: 10 ноября 2014 23:54 · Поправил: Vamit
· Личное сообщение · #23

4kusNick
Всё это конечно хорошо, только нифига не работает... Первый swf файл loader грузится через http интерфейс - с ним всё понятно, но на этом http и скончался, дальше он не юзается и соответственно любые профайлеры в том числе и TheMiner ничего не ловят. Вся дальнейшая загрузка контента выполняется посредством библиотеки GreenSock (полная GSAP & LoaderMax), которая сидит в лоадере и что через неё проходит никто не знает.
Вернее немножко не так, TheMiner фиксирует загрузку кучи swf, но кроме их размера больше ничего не знает, а имя и URL всем вешает от первого лоадера, так что толку от него мало.

Сниферы тоже молчат, т.к. htth нету и заголовков тоже а трафик через сокеты хрен кто поймет если он ещё своим протоколом шифрован.

Протов пока не обнаружено, хоть с этим повезло))

-----
Everything is relative...





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

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

Ответов нет - это тоже неплохо...
Тогда такой вопрос, как можно "слушать" протокол у флешки, в качестве его контейнера использован стандартный protobuf. В дебаг плейере, я думаю, это можно реализовать через PreloadSFW, сначала отловив нужный имидж, а зачем что? Подскажите реализацию по шагам или ещё лучше если есть какой либо скриптовый пример. А как быть с релиз плейером, с ним же такая штука не прокатит...

-----
Everything is relative...





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

Создано: 12 ноября 2014 20:14 · Поправил: 4kusNick
· Личное сообщение · #25

Vamit пишет:
Вся дальнейшая загрузка контента выполняется посредством библиотеки GreenSock (полная GSAP & LoaderMax), которая сидит в лоадере и что через неё проходит никто не знает.

Ещё можно глянуть в лоадере, в исходниках.
Или в конфиге, если он лоадером прогружается.

Vamit пишет:
В дебаг плейере, я думаю, это можно реализовать через PreloadSFW, сначала отловив нужный имидж, а зачем что

Затем следить за лоадерами через flash.sampler.getSamples(). У обычного Loader например (который используется для загрузки ресурсов, в том числе и в гринсоковском LoaderMax) есть св-во contentLoaderInfo типа LoaderInfo, у которого, в свою очередь, есть свойство url - загружаемая ссылка (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/LoaderInfo.html#url). С URLLoader (используется чаще всего для общения с сервером или для загрузки бинарных данных каких-нибудь) насколько помню уже не так просто, он не хранит в себе целевую ссылку.

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

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

Правда отладка через трейсы тоже только в debug версии проигрывателя проканает. Для релизного fp надо внедрять во флэшку отправку данных на свой сервер какой-нибудь например.

Добавлено спустя -6 минут
Тут есть пример использования getSamples():
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/sampler/NewObjectSample.html

в нашем случае это будет что-то типа (не проверял) такого:

Code:
  1. import flash.sampler.*;
  2.  
  3. for each (var sample:Sample in getSamples())
  4. {
  5.     if ((sample != null) && (sample is NewObjectSample))
  6.     {
  7.         var newSample:NewObjectSample = NewObjectSample(sample);
  8.         var obj:* = newSample.object;
  9.         if (obj is Loader)
  10.         {
  11.             // получаем contentLoaderInfo.url у obj
  12.         }
  13.     }
  14. }


Добавлено спустя -4 минут
Хотя думаю это не сработает, если в TheMiner не проканало, глянул сейчас его сорец (1.4.01 Pro) - там похоже Loader примерно так и обрабатывается =\

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


| Сообщение посчитали полезным: Vamit
 eXeL@B —› Основной форум —› Онлайн флеш реверсинг
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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