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

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

Создано: 20 октября 2015 12:02
· Личное сообщение · #2

4kusNick, ситуация похожа на ту, что описал Isaev. Есть флешка, накрытая (подозрение такое) SecureSWF. Она скорее всего является wrapper для других флешек.Открывается в iframe по https.
Собственно из-за такой схожести и посмел спросить о чем-то тутороподобном... Сам в реверсе swf не копенгаген (




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

Создано: 20 октября 2015 14:08
· Личное сообщение · #3

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

Если не понятно как что-то конкретное сделать - спрашивайте, пока я с трудом понимаю вашу задачу и конечную цель и на чём именно вы застряли.

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




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

Создано: 20 октября 2015 14:16 · Поправил: soho
· Личное сообщение · #4

4kusNick, может Вы и гуру, но вопрос был не про то, что делать мне, а не планирует ли кто-то из вас что-то тутороподобное. Перечитать все посты как-то хватило озу и без подсказок.



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

Создано: 02 декабря 2015 13:36
· Личное сообщение · #5

Зашел посмотреть, что там нового в JPEXS Free Flash Decompiler. Оказалось отладчик флеша в нем появился. Сам не пользовался, но кто-то вроде интересовался.

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

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

Создано: 02 декабря 2015 21:39
· Личное сообщение · #6

http://blogs.adobe.com/conversations/2015/11/flash-html5-and-open-web-standards.html
http://www.opennet.ru/opennews/art.shtml?num=43438
Помянем.



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

Создано: 02 декабря 2015 22:15
· Личное сообщение · #7

Рано еще закапывать...

http://habrahabr.ru/post/272195/




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 06 января 2016 12:14 · Поправил: ClockMan
· Личное сообщение · #8

Вопрос знатокам байт кода AS3 имеем такой код
Code:
  1. public function XXXX() : void
  2.         {
  3.             var _loc_1:* = this;
  4.             var _loc_2:* = this.YYYYY(integer) + 1;
  5.             _loc_1.YYYYY = _loc_2;
  6.             return;



Его байт код
Code:
  1. //d0 
  2. _as3_getlocal <0> 
  3. //30 
  4. _as3_pushscope 
  5. //d0 
  6. _as3_getlocal <0> 
  7. //2a 
  8. _as3_dup 
  9. //d5 
  10. _as3_setlocal <1> 
  11. //66 ec 32 
  12. _as3_getproperty YYYYY
  13. //c0 
  14. _as3_increment_i 
  15. //d6 
  16. _as3_setlocal <2> 
  17. //d1 
  18. _as3_getlocal <1> 
  19. //d2 
  20. _as3_getlocal <2> 
  21. //61 ec 32 
  22. _as3_setproperty YYYYY
  23. //08 02 
  24. _as3_kill <2>
  25. //08 01 
  26. _as3_kill <1>
  27. //47 
  28. _as3_returnvoid 
  29.         }// end function

при замене
Code:
  1. //66 ec 32 
  2. _as3_getproperty YYYYY
  3. //c0 
  4. _as3_increment_i 


на
Code:
  1. //24 05
  2. _as3_pushbyte
  3. //02
  4. _as3_nop
  5. //02
  6. _as3_nop


флешь вылетает с ошибкой но если занопить часть кода то флешь работает нормально
Ещё вопрос есть инфа по опкодам AS3?

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 06 января 2016 14:31 · Поправил: 4kusNick
· Личное сообщение · #9

ClockMan
Инфу по опкодам можно в офмане для avm2 посмотреть:
--> Link <--

pushbyte в частности принимает аргумент - какой именно байт пушить

pushbyte 1 напр.

ClockMan пишет:
от меняя тебе ашь две благодарности

ы

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


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


Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 06 января 2016 15:59 · Поправил: ClockMan
· Личное сообщение · #10

4kusNick пишет:
Инфу по опкодам можно в офмане для avm2 посмотреть:
--> Link <--

Спасибо решил по изучать AS3 )))
Разобрался
Нужно было писать так(меняю в чужой флешке байт код)
Code:
  1. //29 
  2. _as3_pop
  3. //24 05
  4. _as3_pushbyte
  5. //02
  6. _as3_nop
  7. //d6 
  8. _as3_setlocal <2> 

P.S
от меняя тебе ашь две благодарности

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.


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

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

Создано: 06 января 2016 17:51
· Личное сообщение · #11

В hex-редакторе меняешь? Так уже никто не делает . Разве что, только если as2 код обфусцирован и его нельзя восстановить чем-нибудь.

flasm для as2
rabcdasm для as3




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

Создано: 06 января 2016 18:23
· Личное сообщение · #12

Либо FFDec для обоих случаев (если нет обфускации, или она не серьёзная).

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




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

Создано: 06 января 2016 19:38
· Личное сообщение · #13

4kusNick предпочитаю исключительно rabcdasm использовать. В этом случае для меня результат получается гарантированно предсказуемым. Однажды пришлось "оперировать" флешку в которую влезли не очень умелые руки, вооруженные FFDec'ом. Было интересно покопаться, но для простого любителя поковыряться в флеше все закончилось бы отправкой в морг. В смысле флешки . Были нарушены всего пара значений на бинарном уровне в DoABC блоке, но этого достаточно, чтобы испортить его и больше никогда не восстановить. Инструментов ведь для хирургического вмешательства не существует. Любые декомпиляторы просто падают без каких-либо предупреждений в таком случае. Честно говоря, я даже не знаю как такое с флешкой могло произойти. Но вызов меня порадовал




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

Создано: 06 января 2016 21:41 · Поправил: 4kusNick
· Личное сообщение · #14

JohnyDoe
Раньше тоже использовал исключительно RABCDAsm, в том числе твою суперскую тулзу, которая автоматизирует всю рутину, т.к. других надёжных инструментов просто не было, FFDec тогда в большинстве случаев запарывал либо структуру, либо байткод, либо что-нибудь ещё.

Сейчас же FFDec'ом пользуюсь чаще, т.к. большинство таких багов уже поправили и в нём значительно быстрее процесс проходит, особенно если надо переписать большие объёмы. Ну и встроенный отладчик иногда полезен бывает.

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

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





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 07 января 2016 02:02 · Поправил: ClockMan
· Личное сообщение · #15

JohnyDoe пишет:
В hex-редакторе меняешь? Так уже никто не делает

Мне много и не надо поменять пару байт,вообще я только начил изучать эти дебри))))))))
Ещё вопрос по структуре флешек может скинете мануал по структуре SWF файлов?
Всё нашёл --> Link <-- может в шапке поправить и добавить эти ссылки ,если вдруг кому то понадобится эта инфа в будущем

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




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

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

Структуру флешек можно детально изучить поигравшись со SWIX, Sothink SWF Editor. Eltima Flash Decompiler также может сдампить структуру флешки. Там все наглядно. SWF Editor при этом подсвечивает шестнадцатиричные данные связанные с теми или иными значениями. Правда часто значения упакованы и поэтому нельзя точно понять каким образом значение хранится внутри файла. SWIX умеет пересобирать флешку обратно. Но не стоит его использовать для пересборки. Файл может быть испорчен. У меня были проблемы со звуками после пересборки.

4kusNick
Надо будет попробовать FFDec в деле. Я его пробовал использовать только для деобфускации, но безуспешно. Потому и забил на него.



Ранг: 15.1 (новичок), 5thx
Активность: 0.010
Статус: Участник

Создано: 10 января 2016 12:03
· Личное сообщение · #17

Доброго времени суток!

Существуют ли готовые решения или наработки по созданию лоадеров для флэш?
Задача такая:
1. Отследить загрузку флэш в память программы
2. Найти и заменить определенные байты




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

Создано: 10 января 2016 14:46
· Личное сообщение · #18

manco
В чём конкретно вопрос? Что пробовали, что не получается?

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




Ранг: 15.1 (новичок), 5thx
Активность: 0.010
Статус: Участник

Создано: 10 января 2016 16:32 · Поправил: manco
· Личное сообщение · #19

Есть exe обертка + swf (на флексе). Отдельно запустить swf в браузере или отладочной версии флэшплеера не получается.

Снял дамп флэшки, подправил нужные байты - все работает как надо, но вместо патча файла, хотелось бы сделать лоадер, который патчит флэш в памяти. Лоадеры, которыми я пробовал это делать (dup, uppp) не помогли.

Вот собственно и спрашиваю. И попутно, как подцепить отладчик (типа монстердебагер) к флэшке, которая запускается со своей флэшбиблиотекой, а не системной? правка mm.cfg не помогла.




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

Создано: 10 января 2016 17:41
· Личное сообщение · #20

Готовых инструментов для таких задач я не видел, возможно придется кодить - ловить swf после чтения с диска но до съедения проигрывателем и патчить.
Ещё можно попробовать пропатчить swf в памяти уже после того как проигрыватель его прогрузит, но тут могут быть неожиданные неприятности.

По поводу отладчиков по типу монстрдебаггер и т.п. - если своя флэш-либа стандартная, то посмотреть отладочная или нет, если нет, попробовать заменить на отладочную, релизная вроде бы в mm.cfg не смотрит или не всё оттуда прорабатывает.

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





Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 09 февраля 2016 23:31 · Поправил: -=AkaBOSS=-
· Личное сообщение · #21

RABCDAsm v1.18 (2016.01.16)
---------------------------

* Fix disassembly of `pushbyte` instructions (the AVM specification
incorrectly lists the argument as unsigned).
* Bump `#version` directive of new disassemblies to 4:
- Versions below 4 treat `pushbyte` as unsigned, and throw an exception if
the argument is outside the range `0` ... `255`.
- Versions 4 and above treat `pushbyte` as signed, and throw an exception
if the argument is outside the range `-128` ... `127`.
* Fix buffer reuse bugs when using macros
* Dump floating-point numbers in hex notation if necessary to ensure precision
* Cease emitting a number in a comment after opening `script` tags
* Detect a known DMD bug in `build_rabcdasm`
* Ignore invalid file size in header

сорцы
бинарники

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


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

Создано: 19 февраля 2016 10:08 · Поправил: 4kusNick
· Личное сообщение · #22

FFDec 8.0
Обновился неплохо так - теперь можно отлаживать на уровне p-кода и они наконец занялись деобфускацией - проверил на нескольких семплах, которые раньше FFDec не мог осилить - все декомпильнулось отлично.

--> Link <--

Code:
  1. New:
  2.  
  3. New application icon and splash screen
  4. Debugger - AS1/2 Show registers
  5. Debugger - display variables in the tree structure
  6. Debugger - set value of variable
  7. Debugger - AS1/2 View constantpool
  8. Debugger - P-code level debugging for both AS1/2 and AS3
  9. Basic SVG import for shapes
  10. Simplify expression setting
  11. Issue #1145 AS3 better declaration type detection, better convert_x instruction handling
  12. Issue #1118 Loading characters through ImportAssets - show as readonly
  13. Issue #409, Issue #1132, [SkinPart] metadata support - decompilation and direct editation in AS3
  14. Issue #1134 compiling §§ instructions back while direct editation (§§goto is still missing)
  15. Issue #1121 Ability to save binary data by its name
  16. Issue #1052 Add object to existing frame
  17. Allow adding tag to main timeline
  18. Binary export - use .swf extension for swf files
  19. AS1/2: Ctrl+click to declaration of variables, registers
  20. Allow trait specification in pcode import
  21. Icons for tag types in Dump view
  22. Better tree labels in generic tag editor (Raw edit)
  23. Issue #758 Allow zooming more than preview area in internal viewer
  24. Show error message when a text tag is invalid (glyph index problem)
  25. AS3 direct editation - store local register names in debug info = allow to rename them
  26.  
  27. Fixed:
  28.  
  29. Issue #1096 FLA export - pretty print
  30. Issue #1104 AS1/2/3 Script Importat not working
  31. Issue #1107 Text Offset Incorrect fixed
  32. Issue #1106 New Shapes replace function fix
  33. Issue #1113 It takes too long to switch between rendered sprite
  34. Issue #1075 Lenght of DefineText in some cases
  35. Issue #1127 autoRenameIdentifiers is not supported in CLI mode
  36. Issue #1128 Letterspacing bug (after font embed): ignore letterspacing when character changed
  37. Issue #1103 Foreach variables fixes
  38. AS3 Switch fixes
  39. Default clause position in switch
  40. Issue #1133 Incorrect frame order for nested sprite
  41. Issue #1135 Handle try "to" in p-code correctly
  42. Font wideOffsets,wideCodes fixed in DefineFont2/3
  43. AS3: super method call
  44. Issue #1138 All exported videos are the same file which may be broken
  45. Issue #1139,Issue #930 Windows Installer: Correct ActiveX download link, Download latest java from webpages
  46. Issue #1137 running flashplayer(debugger) executable in Linux/MacOs
  47. Issue #1144 Command line argument renameInvalidIdentifiers
  48. Issue #1145 double not (!!) not removed
  49. Issue #1147 Sprite is exported incorrectly
  50. Issue #1148 handing end of stream exception in abc reader, loc exception
  51. Issue #1152 Font info tag modified tag was not set => saved swf was corrupt
  52. Issue #1154 Some 32bit JRE problems - program won't start
  53. Issue #1145 Correct precedence handling on binary operators
  54. Issue #116 not resolving unusual tags in DefineSprite


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


| Сообщение посчитали полезным: nick8606, ClockMan, -=AkaBOSS=-, t0ShA, tracename

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

Создано: 14 августа 2016 15:34
· Личное сообщение · #23

JPEXS Free Flash Decompiler (FFDec) 9.0.0

--> Link <--

Code:
  1. New:
  2. Instance metadata (AMF3) editing in PlaceObject4
  3. Issue #1162 improved opening loaded SWF files
  4. Issue #1156 Flash Viewer - DefineScalingGrid support (9-slice scaling)
  5. Flash Viewer - skip frames when not on time
  6. Issue #1171 Export stroke scale to FLA
  7. FLA export - check invalid unicode characters
  8. Issue #1199 Automatically import alpha channel to JPEG3/4 from PNG
  9. Issue #1170 Extract from memory in commandline
  10. Reload one vs Reload all buttons
  11. ABC: Float and Float4 support
  12. AS3 p-code instruction documentation in GUI
  13. Issue #1241 Settings to show original bytes in hex view
  14. Search in dump view
  15. Jump to resources view from hex view
  16. Show warning on 32bit JRE
  17.  
  18. Fixed:
  19. Issue #1151 Filters on texts fixed
  20. Issue #1128 Adding characters to font fixed (FontAlignZones not removed)
  21. Issue #1163 Clicking open->file makes program buggy
  22. Refresh tree after raw edit
  23. Issue #1172 Text double escape fix
  24. Issue #1174 Change language fix
  25. some AS2 deobfuscation fixes
  26. Issue #1183 Index out of bounds fix
  27. Implicit coersion on binary/unary opfix
  28. debugger: corect display variable values through getters
  29. Multiple XLF export fix
  30. Issue #1193 FLA export - text tag advance fix, one layer shape fix
  31. Issue #1193 FLA export - smoothed image detection, export raw JPEG data
  32. Issue #1193 Export space character to TTF correctly
  33. Issue #1200 Previous search text selected when quick find
  34. Flash viewer: aspect ratio on startup fix
  35. Issue #1198 Saving trait slot const value
  36. Zoom parameter commandline fixed
  37. Issue #1205 clipping fixed
  38. Issue #1194 Wrong sound effects in FLA
  39. Issue #1210 Frame Export fix
  40. Improved/fixed go to declaration in AS3
  41. Issue #1217 PCode window not in same position as AS
  42. Hide memor search on non windows platform
  43. Issue #1244 Incorrect showing of NOP instructions
  44. Issue #1244 Remove unknown actions when deobfuscation is enabled, compole unknown instructions back
  45. Issue #1241 File content is different from hex view
  46. Issue #1247 Incorrectly handling remainingbytes for DefineCompactedFont
  47. Issue #1236 won't open fixed
  48. Issue #1251 SWF not same after export XML and import back
  49. Issue #1265 Error during export
  50. Issue #1268 Font export - Using second glyph when two glyphs for one character found
  51. Issue #1268 GFX compacted font - fixed advance values on export


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

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

Создано: 11 сентября 2016 17:54
· Личное сообщение · #24

Добрый вечер подскажите есть ли программа для редактирования swf файлов с функцией импорта скриптов обратно

Это программа https://www.free-decompiler.com/flash/download/ позволяет лишь экспортировать из файла скрипты в формате as вот скрин https://cloud.mail.ru/public/GLSy/q59Vs3ojw

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 12 сентября 2016 00:12
· Личное сообщение · #25

для несложных патчей FFDec предлагает возможность править сам код
но у меня чёт постоянно косяки с пространствами имён там вылазили (еще в версии 8, новые не тестил)

можно еще конешн разбирать всё до уровня исходников и молиться чтобы успешно пересобралось

но надёжнее всего - учить байткод и править его RABCDasm'ом




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 28 сентября 2016 13:39
· Личное сообщение · #26

при вопроса к знатокам

1) есть такой кусок кода
public static function decrypt(cipher:ByteArray, password:String) : ByteArray
{
...
var array2:* = new ByteArray();
array2.writeUTFBytes(password);
array2.writeBytes(cipher, 0, 16);
...
вопрос: перетирается ли в array2 часть пароля password, или (cipher, 0, 16) дописывается в его конец?

2) в выражении
tmp2 = tmp2 + array3[index1] + _MD5_digest.charCodeAt(index1 % _MD5_digest.length) & 255;
маскироваться будет вся сумма
tmp2 + array3[index1] + _MD5_digest.charCodeAt(index1 % _MD5_digest.length)
или только последнее слагаемое _MD5_digest.charCodeAt(index1 % _MD5_digest.length)?

3) вышеупомянутый декрипт применяется к байткоду перед загрузкой
var loader:* = new Loader();
var cipher:* = Run_main;
var plain:* = decrypt(ByteArray(new cipher), password);
loader.loadBytes(plain);
вопрос: как в файле найти начало Run_main?

-----
127.0.0.1, sweet 127.0.0.1





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

Создано: 28 сентября 2016 15:23
· Личное сообщение · #27

OKOB пишет:
вопрос: перетирается ли в array2 часть пароля password, или (cipher, 0, 16) дописывается в его конец?

перетирается, т.к. пишут 16 байт с 0 оффсета (с начала массива).

OKOB пишет:
маскироваться будет вся сумма
tmp2 + array3[index1] + _MD5_digest.charCodeAt(index1 % _MD5_digest.length)
или только последнее слагаемое _MD5_digest.charCodeAt(index1 % _MD5_digest.length)?

Побитовое & выполнится после сложений (к сумме).

OKOB пишет:
вопрос: как в файле найти начало Run_main?

Судя по всему это просто массив байт, тэг DefineBinaryData, его легко найти с помощью того же FFDec, в разделе binaryData.
Там должен быть ваш тэг с именем символа Run_main. Там и offset посмотреть можно (начало массива в файле), да и сам массив выдрать.

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


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


Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 28 сентября 2016 17:14 · Поправил: OKOB
· Личное сообщение · #28

собрали такой сэмпл
package {
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.utils.*;
import flash.text.TextField;


public class FlashTest extends Sprite {
public function FlashTest() {

var newBytes:ByteArray = new ByteArray();

var fData:ByteArray = new ByteArray();
fData.writeUTFBytes("Hello World!");
newBytes.writeUTFBytes("xxxxxxxxxxxxx");
newBytes.writeBytes(fData, 2, 7);

var field:TextField=new TextField();
field.text=newBytes.toString();
addChild(field);
}
}
}

в результате получили "xxxxxxxxxxxxxllo Wor", что означает, что не перетирает

-----
127.0.0.1, sweet 127.0.0.1





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

Создано: 28 сентября 2016 18:28
· Личное сообщение · #29

OKOB пишет:
в результате получили "xxxxxxxxxxxxxllo Wor", что означает, что не перетирает


Да, я лажанулся, offset там не для массива в который пишут, а для массива который пишут =(

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





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 30 сентября 2016 08:57
· Личное сообщение · #30

Почистил бы кто шапку топика до актуального состояния, а то понадобилось в кои веки поковырять флэш,
а ссылки все на которые ходил битые, что на офсайты инструментов, что на обменники, что на топики по форуму.
Примеры: ссылка в топе на который ведет RABCDAsm mod - очередная редакция дизассемблера от местного обывателя, JohnyDoe, на этот раз с автоматической деобфускацией имён и некоторой чисткой от мусора;
ссыла на офсайт SWF Decrypt - снимает старые версии Amayeta SWF Encrypt и DComSoft SWF Protector...

Про моего подопытного SWFiD сказал, что secureSWF v.4.0 (kindi.com). Чем кроме sulo можно помочь себе?

-----
127.0.0.1, sweet 127.0.0.1





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

Создано: 30 сентября 2016 12:13 · Поправил: 4kusNick
· Личное сообщение · #31

OKOB пишет:
Почистил бы кто шапку топика до актуального состояния

Освежу
Освежил

OKOB пишет:
Чем кроме sulo можно помочь себе?

Попробуйте ASV, или кидайте файл мне через личку, я прогоню через него.

Если нужен только код, то AS3 Sorcerer (от автора ASV) тоже должен сработать.

FFDec тоже в последних версиях научился кое-как его деобфусцировать, но подробно не тестил, надо смотреть, может и справится.

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



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