Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Собственный декомпилятор swf на C#\VC++ .NET

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 23.01.2011, 19:42   #1
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Собственный декомпилятор swf на C#\VC++ .NET

[Ссылки могут видеть только зарегистрированные пользователи. ] нашел статью в блоге одного из забугорных программистов - Mike Swanson, в которой он приводит пример своей сборки для декомпиляции swf файлов. (к сожалению статья весьма старая)
Обращаюсь к тем, кто пишет на C# - возможно кто-то уже имел опыт работы с этой сборкой, возможно кто-либо захочет изучить ее. Мои попытки использовать эту сборку не дали вменяемого результата, поэтому прошу помощи. Возможно кто-либо поделится идеей реализации декомпилятора иным способом.

P.S. не нужно здесь писать о том, что существует множество коммерческих ломаных продуктов с необходимой функциональностью.
  Ответить с цитированием
Старый 23.01.2011, 20:49   #2
 Разведчик
Аватар для dickens011
 
dickens011 на правильном пути
Регистрация: 24.11.2010
Сообщений: 10
Популярность: 20
Сказал(а) спасибо: 8
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Собственный декомпилятор swf на C#\VC++ .NET

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

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

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

В свое время я тоже искал достойные методы декомпиляции, но к сожалению безрезультатно. Так что мой совет: не заморачивайся с этим и лучше потрать это время на то, чтобы улучшить свои знания в том же С# или Flash.
  Ответить с цитированием
Старый 23.01.2011, 21:28   #3
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Собственный декомпилятор swf на C#\VC++ .NET

Цитата:
Сообщение от dickens011Посмотреть сообщение
К сожаления декомпилировать приложение и получить его исходный код - крайне сложно. И если не было создано программ реализующих это, то есть несколько причин, либо это никому не нужно, либо - это крайне сложное и в некоторой степени неблагодарное занятие, ибо воспроизвести рабочий (!) исходный код, на языке, на котором он был написан практически не возможно.

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

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

В свое время я тоже искал достойные методы декомпиляции, но к сожалению безрезультатно. Так что мой совет: не заморачивайся с этим и лучше потрать это время на то, чтобы улучшить свои знания в том же С# или Flash.

Вполне согласен, но для меня C# - лишь увлечение, по специальности я далек от программирования.
Тут моя оплошность -некорректно изложил суть вопроса.
Взять к примеру фласм - извлекает экшин скрипт, пусть не в оригинальном виде, но в том виде, который позволяет извлечь требуемые данные, swfmill - преобразует структуру swf файла в xml с соответствующими узлами, самое главное в данном случае - сохраняются значения переменных и сами переменные, а именно - якоря (ведь за ними-то и охотимся) ). Указанная мною сборка по описанию содержит методы для извлечения элементов, представляющих определенные типы данных, в нашем случае это string (но в экшн скрипт якоря являются элементами словаря(насчет того какой тут тип уместен я не знаю )), но при извлечении строки имеют формат "абра-кадабры", "игры" с кодировкой и распаковкой swf файлов ни к чему не привели, возможно дело в преобразовании byte to String, но кто знает.... возможно дело в обфускации, насчет этого информации нет.
В общем стоит задача не декомпилировать swf до исходного вида а извлечь лишь необходимые элементы экшн кода.

Последний раз редактировалось CaptainAmerica; 23.01.2011 в 23:20.
  Ответить с цитированием
Старый 23.01.2011, 23:34   #4
 Разведчик
Аватар для dickens011
 
dickens011 на правильном пути
Регистрация: 24.11.2010
Сообщений: 10
Популярность: 20
Сказал(а) спасибо: 8
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Собственный декомпилятор swf на C#\VC++ .NET

Вот! Теперь-то практически понятно что требуется, хотя не совсем.
Нужны переменные или отрывки кода: т.е. функции, классы?

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

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

Для поиска и изменения переменных может подойти, скорее всего ArtMoney, CheatEngine или тот же WinHex, также на [Ссылки могут видеть только зарегистрированные пользователи. ] сайте можешь найти разные отладчики кода, и может еще что полезного.
  Ответить с цитированием
Старый 24.01.2011, 00:01   #5
 Пехотинец
Аватар для CaptainAmerica
 
CaptainAmerica на правильном пути
Регистрация: 17.12.2010
Сообщений: 50
Популярность: 68
Сказал(а) спасибо: 10
Поблагодарили 29 раз(а) в 26 сообщениях
 
По умолчанию Re: Собственный декомпилятор swf на C#\VC++ .NET

Цитата:
Сообщение от dickens011Посмотреть сообщение
Для поиска и изменения переменных может подойти, скорее всего ArtMoney, CheatEngine или тот же WinHex, также на этом сайте можешь найти разные отладчики кода, и может еще что полезного.

С этим сайтом знаком хорошо ))

Цитата:
Сообщение от dickens011Посмотреть сообщение
Если честно, не понял про якоря и словари, я думал основой там являются символы, в которые мы преобразовываем то, что нам необходимо, и в которых уже записываем экшн код.

Код из Sothink SWF Decompiler
насчет словарей:
объявление:

private var honeyBoxes: Dictionary;
.............
далее
honeyBoxes = new Dictionary();
...................
далее идут так называемые якоря (данные для игры DarkOrbit):

honeyBoxes["ozims"] = true;
honeyBoxes["1604u"] = true;
honeyBoxes["znmjs"] = true;
honeyBoxes["bu9m9"] = true;
honeyBoxes["zel71"] = true;
honeyBoxes["q4knx"] = true;
honeyBoxes["ci7m0"] = true;
honeyBoxes["1ukl6"] = true;
honeyBoxes["1gtlm"] = true;
honeyBoxes["180fk"] = true;
.................................................. ..
Вот именно этот массив и нужно извлечь, не более не менее.
Должен ведь быть способ добраться до кода программными методами.
  Ответить с цитированием
Пользователь сказал cпасибо:
dickens011 (24.01.2011)
Старый 24.01.2011, 00:29   #6
 Разведчик
Аватар для dickens011
 
dickens011 на правильном пути
Регистрация: 24.11.2010
Сообщений: 10
Популярность: 20
Сказал(а) спасибо: 8
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Собственный декомпилятор swf на C#\VC++ .NET

Спасибо за объяснение, но к сожалению программными методами туда врядли доберешся.

Здесь нужен отладчик и знание хотя бы одного из значений и тут нужны знания ассемблера, точно можно сказать, что true будет выглядеть как "1", false - как "0" в hex и в отладчике там будет меняться флаг переноса С (carry), если не ошибаюсь.

Но врядли от этого всего будет толк, так как во-первых, разрабы скорее всего пользовались своими кодировками, которые у тебя будут выглядеть как иероглифы, а во-вторых, скорее всего все данные будут поступать к тебе в зашифрованном виде хотя второе не факт.

Так что подумай стоит ли тебе тратить на это время.
  Ответить с цитированием
Старый 14.02.2011, 13:09   #7
 Разведчик
Аватар для Regbist11
 
Regbist11 никому не известный тип
Регистрация: 11.02.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
Cool Re: Собственный декомпилятор swf на C#\VC++ .NET

[Ссылки могут видеть только зарегистрированные пользователи. ] - я думаю тебе это пригодится!
  Ответить с цитированием
Пользователь сказал cпасибо:
CaptainAmerica (18.02.2011)
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Создаем собственный квест Katastrofa-2012 Фиксы / Патчи / Программы 2 03.04.2011 15:28
[Помогите!] Нужен декомпилятор Soutch_park Вопросы и ответы, обсуждения 5 30.06.2010 21:31
Собственный сервер siderr Статьи, квесты и описания по Perfect World 1 09.03.2010 18:04

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 19:41.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net