Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› Flash (swf). Декомпиляция, взлом |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
Посл.ответ | Сообщение |
|
Создано: 11 апреля 2011 15:04 · Поправил: 4kusNick · Личное сообщение · #1 Дружественные темы: Анализаторы: Декомпиляторы\редакторы: Работа с байткодом\тэгами: Автоматизированное снятие защит + уже упомянутые: ASV, FFDec, RABCDAsm mod и SWF Reader. Дапмеры\Распаковщики (для тех, кому лень Есть ещё обычный SWF Revealer, который входит в комплект ASV. Тоже весьма прокачанный распаковщик, работает по другому принципу. + уже упомянутые: SWF Reader, SWF iD. Разное За скомпилированный бинарь Другие местные обсуждения в области исследования Flash: Чтиво на тему Доки \ маны 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 |
|
Создано: 27 февраля 2012 22:05 · Личное сообщение · #2 SWR А как полностью событие называется? Кстати, вышел новый RABCDAsm - не знаете, скальпель там не обновлялся? А если дадите (в личку) доступы для ползанья на тот форум (в режиме read-only), чтобы я сам мог проверять не вышла ли новая версия - буду совсем благодарен) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 28 февраля 2012 21:19 · Личное сообщение · #3 В дебажной версии можно создать прелоадер и подписаться на событие allComplete. которое происходит при загрузки нового swf. В сообщении присутствует указатель на контекст загрузки. Эта фича используется для отладки. А в релизной версии чтото не получается. Мне нужно отслеживать загрузку нового кода или получить указатель на новый контекст. сама строчка в плеере есть, возможно какие нибудь проперти выставить нужно. По поводу RABCDAsm, вроде только баг фиксы. В клиенте появился универсальный дампер swf (любой код загружаемый в плеер дампится) |
|
Создано: 29 февраля 2012 14:08 · Поправил: 4kusNick · Личное сообщение · #4 Я не совсем понял что вы имеете ввиду под "контекст загрузки"... ApplicationDomain\SecurityDomain? По идее слушать загрузку нового swf можно через Event.COMPLETE Code:
По поводу RABCDAsm - там есть одно очень важное изменение - появилась возможность работы с lzma сжатыми флэшками (и сжимать их в lzma). На счёт дампа в клиенте - это здорово, он дампит только код, или swf целиком? Не выложите ли вы этот обновлённый клиент? Интересно поглядеть как дамп работает на упакованных флэшках. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 29 февраля 2012 14:19 · Личное сообщение · #5 |
|
Создано: 29 февраля 2012 21:58 · Поправил: SWR · Личное сообщение · #6 http://ifolder.ru/29014290 - клиент Для включения дампера в плагине mFlashDbg поставить галку на включение дампа. После перезапуска все загружаемые cws будут в .\DumpSwf скидываться. Ну адобе тоже говорит что прелоадер есть только в дебажной версии. Я нашел возможность сделать его и в релизном. Проблема только в получении LoaderInfo. Загружаемая флешка имеет свой контекст загрузки. Думал по стейдж отловить, но он отбирается после потери вывода. | Сообщение посчитали полезным: mtechnolog |
|
Создано: 29 февраля 2012 23:12 · Личное сообщение · #7 SWR пишет: Проблема только в получении LoaderInfo. Если вам нужен LoaderInfo загруженной флэшки, и он не приходит вместе с событием (в e.target), то можнно попросить его прямо у самой загруженной флэшки - свойство loaderInfo есть у любого DisplayObject. SWR пишет: Загружаемая флешка имеет свой контекст загрузки. Я не совсем понимаю.. А какой же контекст нужен вам? Может нам стоит связаться по каким-то более оперативным каналам? Если у вас есть почта на gmail - напишите её в личку я вас потыкаю из своей почты через гтолк - можно там в чате пообщаться более оперативно. SWR пишет: http://ifolder.ru/29014290 - клиент Спасибо! Это так скальпель эволюционировал (тот что GUI для RABCD)? Я изначально ведь про него спрашивал %) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: mtechnolog |
|
Создано: 06 марта 2012 12:23 · Поправил: Oott · Личное сообщение · #8 SWF decompiler/viewer/editor, Mac/Win: | Сообщение посчитали полезным: 4kusNick, Wesso |
|
Создано: 06 марта 2012 13:44 · Личное сообщение · #9 http://ifolder.ru/29087594 - новый скальпель 4kusNick Спасиб. Я уже по другому сделал. инжект кода в целевой файл. | Сообщение посчитали полезным: 4kusNick |
|
Создано: 09 марта 2012 14:43 · Личное сообщение · #10 |
|
Создано: 10 марта 2012 12:10 · Личное сообщение · #11 |
|
Создано: 10 марта 2012 13:57 · Личное сообщение · #12 |
|
Создано: 11 июля 2012 05:42 · Личное сообщение · #13 |
|
Создано: 27 августа 2012 16:14 · Поправил: schokk_m4ks1k · Личное сообщение · #14 JavaSnoop 1.1 A tool that lets you intercept methods, alter data and otherwise test the security of Java applications on your computer Normally, without access to the original source code, testing the security of a Java client is unpredictable at best and unrealistic at worst. With access the original source, you can run a simple Java program and attach a debugger to it remotely, stepping through code and changing variables where needed. Doing the same with an applet is a little bit more difficult. Unfortunately, real-life scenarios don’t offer you this option, anyway. Compilation and decompilation of Java are not really as deterministic as you might imagine. Therefore, you can’t just decompile a Java application, run it locally and attach a debugger to it. Next, you may try to just alter the communication channel between the client and the server, which is where most of the interesting things happen anyway. This works if the client uses HTTP with a configurable proxy. Otherwise, you’re stuck with generic network traffic altering mechanisms. These are not so great for almost all cases, because the data is usually not plaintext. It’s usually a custom protocol, serialized objects, encrypted, or some combination of those. JavaSnoop attempts to solve this problem by allowing you attach to an existing process (like a debugger) and instantly begin tampering with method calls, run custom code, or just watch what’s happening on the system. |
|
Создано: 27 августа 2012 23:37 · Личное сообщение · #15 |
|
Создано: 02 ноября 2012 10:37 · Личное сообщение · #16 |
|
Создано: 20 ноября 2012 03:11 · Личное сообщение · #17 WinRABCDAsm Ещё один GUI для RABCDAsm, на этот раз более практичный - можно использовать с любой версией RABCDAsm: ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 27 ноября 2012 13:17 · Поправил: schokk_m4ks1k · Личное сообщение · #18 pass - wrOBABA8Mpc4MKEL32mz15zZc5KqAYhtn yagello сори, действительно битый, обновил ссылку, я по ходу по другой ссылке качал! должен быть не битый архив, пробуй!!! |
|
Создано: 28 ноября 2012 20:02 · Поправил: yagello · Личное сообщение · #19 |
|
Создано: 19 марта 2013 13:03 · Поправил: JohnyDoe · Личное сообщение · #20 Кто-нибудь в курсе, можно ли накрытый протектором код чем-то привести в нормальный вид? Я имею ввиду перемешанный всякими левыми условными переходами код. Это естественно можно ручками сделать. Но это небыстро и нудно . Что-то мне не очень хочется swf tools переписывать под это дело. Надо ведь еще придумать как это лучше сделать. Можно конечно еще rabcdasm попробовать модифицировать, но язык C привычнее. |
|
Создано: 19 марта 2013 15:08 · Личное сообщение · #21 |
|
Создано: 19 марта 2013 16:45 · Поправил: JohnyDoe · Личное сообщение · #22 ASV дорогой и недоступный в плане крякнутых версий. И он ведь не позволяет модифицировать код насколько я помню? А посмотреть есть AS3Sorcerer и всякие софинки. Софинки хоть и не умеют также хорошо декомпилировать код, зато в них есть поиск. SWFReader для меня какая-то мутная софтина. На сайте написано что в демке можно попробовать все механизмы на части кода. Но у меня на выходе обычно тоже самое что и на входе получается. Так что я никак не могу понять делает ли он то что заявлено и делает ли вообще. Вот если бы кто демонстрацию возможностей устроил. Например, на входе было это, а на выходе получите вот это. Надо на сайте глянуть, может кины есть на эту тему. И я не очень люблю яву. Можно исходники в принципе глянуть и в swftools перенести функционал попробовать. Автор кстати не забил на депротекторы. Он предлагает писать плагины самим и в тоже время в pro версии все депротекторы присутствуют.. В связи с нелюбовью к яве также интересует софтина позволяющая Vizzy заменить. Есть какая-нибудь софтина для просмотра логов плеера в реальном времени? От разработчиков DoSWF была софтина на AIR, но она еще более убогая. Можно конечно заинжектить консоль во flash и через нее смотреть, но софтина все равно лишней не будет. Кстати некоторые протекторы переименовывают не только переменные, но и имена в тэгах placeobject. Их какая-то софтина может переименовывать так чтобы flash потом не развалился? |
|
Создано: 19 марта 2013 22:20 · Личное сообщение · #23 JohnyDoe пишет: ASV дорогой и недоступный в плане крякнутых версий. И он ведь не позволяет модифицировать код насколько я помню? Он позволяет сохранить swf с почищенным байткодом. То есть по сути деобфусцировать им можно. JohnyDoe пишет: Автор кстати не забил на депротекторы. Он предлагает писать плагины самим и в тоже время в pro версии все депротекторы присутствуют.. Они присутствуют, но почти не развиваются. А as2 депротекторы он вообще официально больше не поддерживает. Ну а то что есть для as3 - почти всегда не работает, только если повезет. JohnyDoe пишет: Есть какая-нибудь софтина для просмотра логов плеера в реальном времени? Да дофига их на самом деле... Меня Vizzy устраивает, а так еще есть всякие Demonster, фаербаги и т.д. JohnyDoe пишет: Кстати некоторые протекторы переименовывают не только переменные, но и имена в тэгах placeobject. Их какая-то софтина может переименовывать так чтобы flash потом не развалился? Хз, не сталкивался вроде, либо не заметил =) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 19 марта 2013 22:33 · Поправил: JohnyDoe · Личное сообщение · #24 Ты наверное просто не пробовал все переменные с "плохими" именами переименовывать. В классах бывают переменные типа MovieClip, которые ссылаются на какой-либо объект внутри сложного спрайта. Так вот, если ты ее переименуешь, то доступ к объекту будет потерян. В коде обычно такая переменная нужна для задания свойств объекта интерфейса. Я просто не люблю переменные типа "_-4A", уж лучше var1279 например. Натравил swfreader на довольно сложный swf. Он его лопатил несколько часов. В итоге какая-то фигня получилась. Хотя там сложно довольно все было. Типа так Code:
Наверное надо было попроще что-то взять |
|
Создано: 20 марта 2013 00:10 · Личное сообщение · #25 Вообще я свой деобфускатор писал на основе одной либы для парсинга swf но до переменных не дошел. Только пакеты с классами сделал (переименовывались в package0, package1, Class0, Class1 и т.д.), а потом забил ибо оказалось не нужно и не гибко) А по поводу ссылок типа MovieClip - не совсем понял, переменную типа var kjsdhfiuhj:MovieClip = someContainer.someClip; можно безболезненно переименовывать например в var localVar1:MovieClip = someContainer.someClip; ссылка сохранится... А вот если someClip будет обфусцирован - уже так просто не получится. Но те (проты), кто так делают - очень рискуют сломать флэшку, особенно если она не одна в проекте или большая. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 20 марта 2013 00:58 · Личное сообщение · #26 Подскажите, будьте любезны, такой момент. Вот есть одна он-лайн игра, флэшку я извлёк, декомпильнул, нашёл нужные мне функции, разобрал. Всё, вроде, гладко и хорошо. И вот настал момент написать бота. Для того, чтоб реализовать задуманное, мне надо как-то вызывать методы флэшки из своего кода. Какими средствами возможна реализация задуманного? Естественно, хотелось бы сделать бота так, чтоб он не сильно зависел от обновлений флэшки. Я имею ввиду, чтоб он не переставал работать, если разработчики вдруг выпустят новую версию своего творения. Т.е. чтоб не привязывался к сигнатурам самой флэшки, ничего там не читал по абсолютным адресам, не использовал смещения. Просто вызывал бы паблик методы флэшки и всё. Такое вообще возможно, если возможно, то в какую сторону смотреть? ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 20 марта 2013 02:51 · Поправил: 4kusNick · Личное сообщение · #27 Да, возможно, для этого можно использовать механику прелоадера - грузим флэшку-жертву в свою собственную флэшку и вызываем паблик методы подгруженной флэшки. Более того, при определенных обстоятельства можно даже перезаписать оригинальные классы своими =) Вообще ещё можно разобрать протокол и писать бота на уровне фейкового клиента или как посредника между клиентом и сервером, зависит от объема и сложности задач, которые вы хотите возложить на бота. Если что, пишите в личку - можно связаться по более оперативным каналам для дальнейшего обсуждения. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: ARCHANGEL |
|
Создано: 20 марта 2013 12:57 · Личное сообщение · #28 |
|
Создано: 20 марта 2013 16:58 · Поправил: JohnyDoe · Личное сообщение · #29 |
|
Создано: 20 марта 2013 18:31 · Личное сообщение · #30 SWR пишет: прелоадер легко детектится, и требует дебажной версии плеера. Вы не поняли - я про настоящий прелоадер, другая swf которая загружает в себя целевую. Игры обычно используют свои прелоадеры - можно прикинуться таковым. Чтобы заменить классы не вмешиваясь в swf надо просто создать их в своей флэшки и загружать жертву в свой домен - тогда классы в своей флэшке перезапишут классы во флэшке жертве. Ну, по-крайней мере так было пару лет назад, могло измениться. Или создать у себя классы, расширяющие классы в жертве и тогда можно заоверрайдить нужные методы - но сработает только если класс и методы в жертве не помечены как final. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 21 марта 2013 00:45 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
eXeL@B —› Основной форум —› Flash (swf). Декомпиляция, взлом |