Сейчас на форуме: asfa, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Подскажите пожалуйста, как справиться с swf файлом?
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 05 октября 2013 11:42
· Личное сообщение · #1

Господа, как раскодировать код в swf фале.
Код имеет примерно такой вид:
// Тег действия #1
do
{
function ()
{
= 1896 % 511 * true;
" ";
return ;
}
var = 25 + ();
for (;;)
{
if ( == 388)
{
= + 233;
continue;
}
if ( == 894)
{
= - 532;
continue;
}
var __local0;
if ( == 404)
{
= - 262;
continue;
__local0 = eval(true);
}
else
{
__local0 = true;
}
if ( == 624)
{
= - 456;
continue;
}
if ( == 197)
{
= + 697;
continue;
}
if ( == 168)
{
= - 39;
continue;
}
if ( == 652)
{
= - 28;
continue;
}
if ( == 129)
{
= + 664;
var = 1;
continue;
}
if ( == 621)
{
= + 31;
if (__local0)
{
= - 28;
}
continue;
}
if ( == 793)
{
= - 389;
continue;
}
var __local1;
if ( == 142)
{
= + 484;
continue;
__local1 = !" ";
}
else
{
__local1 = " ";
}
if ( == 626)
{
= - 429;
if (__local1)
{
= + 697;
}
continue;
}
if ( != 268)
{
break;
}
= - 100;
}
}
while ( != 362);
= - 362;




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

Создано: 05 октября 2013 13:24
· Личное сообщение · #2

Используйте ASV или FFDec.
Ссылки тут.

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




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

Создано: 05 октября 2013 19:10
· Личное сообщение · #3

Спасибо 4kusNick
FFDec помог, код виден.

Теперь ума не хватает как обойти часть кода.




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

Создано: 05 октября 2013 19:38
· Личное сообщение · #4

Опишите подробнее что именно не получается. Или идите в поиск специалистов, если хотите чтобы все сделали за вас.

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




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

Создано: 05 октября 2013 20:24
· Личное сообщение · #5

FFDec показывает код, хочу внести исправления, но выскакивает окно с ошибкоей.

Подробно, на фото

2dd6_05.10.2013_EXELAB.rU.tgz - ffd_error.jpg



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

Создано: 05 октября 2013 20:30
· Личное сообщение · #6

Что то фото не подключилось.
Сообщение такое: "IDENTIFIER expected but PARENT_OPEN found в строкеDm 1" (Dm - не английские, а абаркадабра, D имеет черточку по середине вертикали, а m это латинская мю).



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

Создано: 05 октября 2013 20:59
· Личное сообщение · #7

Защита, которую хотелось бы отключить, работает примерно так:

Загружается файл .swf с сайта из интернета, на сайте есть еще папка, в которой хранится код (зашифровано имя сайта).
swf файл загруженный на компьютере пользователя, проверяет сайт с которого скачан он (имя сайта), шифрует имя сайта, скачивает зашифрованный код из папки с сайта и сравнивает эти 2 кода. Совпало – работает, не совпало – просто клинит.

Эта галиматья занимает в файле swf почти 1000 строчек кода (много раз обрабатывается по алгоритму MD5).




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

Создано: 05 октября 2013 21:10
· Личное сообщение · #8

MoneyDai пишет:
FFDec показывает код, хочу внести исправления, но выскакивает окно с ошибкоей.

Либо в FFDec баг (а их там сейчас очень много), либо правите байткод направильно.
Судя по всему, у вас as2, следовательно для его редактирования можете попробовать flasm, предварительно почистив флэшку от обфускации с помощью того же ffdec или asv.

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

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





Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 05 октября 2013 21:51
· Личное сообщение · #9

MoneyDai пишет:
много раз обрабатывается по алгоритму MD5

что обрабатывается

Скорее всего просто считается мд5 некоторых данных для дальнейшего сравнения мд5 хешей.
4kusNick прав, вы либо что-то выложите больше, чем своё малопонятное описалово и еще менее понятный скриншот либо помочь никто не сможет.

-----
ds





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

Создано: 06 октября 2013 06:41
· Личное сообщение · #10

Скорее всего проверяется где запущена флешь, а имя сайта шифрована по MD5 чтоб трудно было найти код проверки.

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





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

Создано: 06 октября 2013 09:17
· Личное сообщение · #11

Мы тут так и будем на гуще гадать пока автор не ответит =)

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




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

Создано: 06 октября 2013 15:40
· Личное сообщение · #12

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

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

Нужна другая программа.

ASV найти не могу. Скачал, но требует регистрации.

Где найти рабочую ASV (покупать не хочется, быстрей всего не поможет).




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

Создано: 06 октября 2013 20:50 · Поправил: 4kusNick
· Личное сообщение · #13

Выше я подсказал уже про flasm + ещё as2 байткод умеет редактировать SWiX.
ASV код не умеет редактировать, его для деобфускации я советовал.
P.S.: Надежнее всего - руками, там довольно примитивный байткод, редактируется не сложно, подсказка.

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




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

Создано: 07 октября 2013 07:37
· Личное сообщение · #14

Я исследовал защиту флэш модуля одного из интернет казино (хобби у меня такое). Сначала казалось, что все просто, легко расковыряю, но имевшимися у меня и предложенными здесь средствами мне пока не удалось обойти защиту. Ближе всего я подобрался к ней с помощью FFDec, но он искажает файл, если хотя бы просто его сохранить (сам без моей воли меняет кучу байтов и портит часть полезного кода). Для интереса посмотрел, оказывается FFDec в одном месте из 8 байт 00, оставил только 7 байт 00, то есть адреса прямых переходов уже сдвинулись, а скорректировать уже их или не смог или не захотел.

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

Сейчас пока в раздумьях (мыслей больше нет).





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

Создано: 07 октября 2013 13:59
· Личное сообщение · #15

Так вы пробовали flasm или SWiX?

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




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

Создано: 07 октября 2013 20:20
· Личное сообщение · #16

SWiX я пробовал, но разобраться в выданных им данных не могу.

Нашел 2 блока кода которые отвечают за проверку, но как разобраться в нем пока не пойму.

Вот нижняя часть одного из участков кода:
<Subtract />
<SetVariable />
<Jump Offset="-1604" />
<Jump Offset="163" />
<Push>
<String Name="_" />
</Push>
<GetVariable />
<Push>
<Integer Value="607" />
</Push>
<Equals />
<Not />
<If Offset="29" />
<Push>
<String Name="_" />
</Push>
<Push>
<String Name="_" />
</Push>
<GetVariable />
<Push>
<Integer Value="199" />
</Push>
<Subtract />
<SetVariable />
<DefineLocal />
<Jump Offset="-1552" />
<Push>
<String Name="_" />
</Push>
<GetVariable />
<Push>
<Integer Value="408" />
</Push>
<Equals />
<Not />
<If Offset="34" />
<Push>
<String Name="_" />
</Push>
<Push>
<String Name="_" />
</Push>
<GetVariable />
<Push>
<Integer Value="159" />
</Push>
<Subtract />
<SetVariable />
<Push>
<String Name="_" />
</Push>
<Jump Offset="-1608" />
<Push>
<String Name="_" />
</Push>
<GetVariable />
<Push>
<Integer Value="438" />
</Push>
<Equals />
<Not />
<If Offset="29" />
<Push>
<String Name="_" />
</Push>
<Push>
<String Name="_" />
</Push>
<GetVariable />
<Push>
<Integer Value="438" />
</Push>
<Subtract />
<SetVariable />
<End />
</Actions>
</DoAction>

Но как его расшифровать пока не пойму.

flasm пока еще не пробовал.

SWiX в самом верху сообщает:
<FileAttributes UseNetwork="false" ActionScript3="false" HasMetadata="false" UseGPU="false" UseDirectBlit="false" />




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

Создано: 07 октября 2013 20:56 · Поправил: 4kusNick
· Личное сообщение · #17

Ну, если трудно разобраться в обфусцированном байткоде, то сперва его надо деобфусцировать.
Ищите ASV старый или пробуйте SWFReader, там были относительно рабочие деобфускатеры для as2 протов.
Ну и другие инструменты для деобфускации попробуйте, SWF Decrypt например.
Если так ничего и не поможет - присылайте файл в личку, я подскажу в какую сторону рыть.

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




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

Создано: 07 октября 2013 21:02
· Личное сообщение · #18

Ситуация такая:
В FFdec я вижу где и что нужно изменить, что бы добиться нужного мне результата, но в этой программе не получается правильно сохранить (даже без вмешательства, после сохранения файл повреждается),
В программе SWiX вижу этот же модуль, но не могу найти нужный участок кода

В первой программе Р-код:
GetVariable
Push "enabled" false
SetMember
Push "_level0"
GetVariable
Push "_visible" false
(нужно false изменить на true), но где этот код в SWiX?

Приблизительно он в этом участке кода (всего одна функция):
<DoAction>
<Actions>
<DefineFunction Name="__">
<Params>
</Params>
<Actions>
<Push>
<String Name="_" />
</Push>
<Push>
<Integer Value="2470" />
</Push>
<Push>
<Integer Value="511" />
</Push>
<Modulo />
<Push>
<Boolean Value="3" />
</Push>
<Multiply />
<SetVariable />
<Push>
<String Name="_" />
</Push>
<Push>
<String Name="_" />
</Push>
<If Offset="5" />
<Jump Offset="0" />
<GetVariable />
<Return />
</Actions>
</DefineFunction>

Но как ее расшифровать?




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

Создано: 07 октября 2013 21:22
· Личное сообщение · #19

В SWiX вы видите обфусцированный код, в FFDec - уже после деобфускации.
Что делать дальше я вам уже написал.

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




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

Создано: 07 октября 2013 21:28
· Личное сообщение · #20

SWFReader ищу. Один скачал, но ДРВЕБ его удалил, с трояном оказался.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 08 октября 2013 05:19
· Личное сообщение · #21

MoneyDai пишет:
Один скачал, но ДРВЕБ его удалил, с трояном оказался.


Вы ведь понимаете, что кричащий антивирус - не показатель?

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

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

Создано: 08 октября 2013 13:19
· Личное сообщение · #22

Установил 2 SWFReader (Demo и Free), но разобраться (извлечь пользу) пока не могу.
Загружаешь файл, а дальше что делать, чтобы добраться до кода пока не понятно.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 08 октября 2013 15:17
· Личное сообщение · #23

Здесь есть видео-туториалы. Ломаная демка есть на руборде.




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

Создано: 08 октября 2013 16:58
· Личное сообщение · #24

MoneyDai
Для вас там интересно меню Deobfuscators. Что может быть проще выбора пункта меню?

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




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

Создано: 08 октября 2013 19:51
· Личное сообщение · #25

В демо версии меню есть.
Жму его, но после выходит сообщение: "This is demo version - unprotect only half structures"

Но я и половины то не вижу (ни чего не вижу).




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

Создано: 08 октября 2013 20:42
· Личное сообщение · #26

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

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

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




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

Создано: 08 октября 2013 22:17
· Личное сообщение · #27

4kusNick

Не сердитесь пожалуйста на меня.

Ни где не могу найти рабочую версию SWF Reader (все ссылки уже не рабочие и на другом форуме тоже самое).

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

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

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



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

Создано: 11 октября 2013 18:45
· Личное сообщение · #28

Господа, помогите! Дайте ссылку на рабочую программу SWFReader.



Ранг: 19.7 (новичок), 14thx
Активность: 0.030
Статус: Участник

Создано: 11 октября 2013 19:12 · Поправил: Phantom007
· Личное сообщение · #29

MoneyDai
--> Оно? <--



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

Создано: 11 октября 2013 19:36
· Личное сообщение · #30

Спасибо Phantom007, но этот мне не подходит, это версия free.
Мне нужна версия с меню Deobfuscators.


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Подскажите пожалуйста, как справиться с swf файлом?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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