Ни разу не сталкивался с Action Script'om но тут пришлось) Собственно есть флешка в которой отображается капча, нужно выяснить URL на неё или методы её отображения, скачав флешку и декомпильнув порыскал по файлам нашёл метод: Code: private function each(arg1:flash.events.Event):void { var loc8:*=false; var loc9:*=true; if (!loc8) { this. & = loaderInfo.parameters; if (loc9 || this) { while.'(this. &); } } var loc1:*=this. &["imgUrl"]; var loc2:*=this. &["key"]; var loc3:*=this. &["id"]; var loc4:*=this. &["pref"]; var loc5:*=this. &["backUrl"]; var loc6:*=this. &["nick"]; if (!(loc8 && this)) { if (loc1 != null) { removeEventListener(flash.events.Event.ADDED_TO_STAGE, this.each); } else if (loc9) { return; if (!(loc8 && arg1)) { removeEventListener(flash.events.Event.ADDED_TO_STAGE, this.each); } } } if (!loc8) { if (loc9 || loc2) { if (loc8 && loc2) { }; } } var loc7:*=new undefined.<#( #error('findrop') <# , "http://l2top.ru/" + loc1, loc2, loc3, loc4, loc5, loc6); if (!(loc8 && arg1)) { addChild(loc7); } return; return; } В исходном коде сайте имеется код(например): Code: <script type='text/javascript'> var flashvars = { key: 'bd6b7090953eda54f95f2a0cfdcc8346', imgUrl: 'cryptImg.php', id: 17114, pref: '0=Без+префикса', nick: '' }; swfobject.embedSWF('/StrongCaptcha.swf?12', 'dfn', '605', '360', '6.0.65.0', null, flashvars); </script> Чувствую они довольно близко взаимосвязаны, прошу собственно знающих помочь разобрать данный метод и хотелось бы узнать, что делает данная строка: Code: var loc7:*=new undefined.<#( #error('findrop') <# , "http://l2top.ru/" + loc1, loc2, loc3, loc4, loc5, loc6); видно, что создается переменная которой присваивается начальный адрес, но почему она undefined и вообще, если кто то может показать, что в конечном итоге получиться т.к. не совсем понятно почему loc1 плюсуется, а остальные через запятую перечисляются. P.S. пока, что я не понял туда ли я рою вообще или нет. Вообщем жду помощи от добрых людей.
Kandi флешка обфусцирована и некоторые декомпиляторы не могут открыть все файлы из нее. Найденная вами строка создает объект класса <# который занимается получением картинки от скрипта, декодированием и выводом на экран. Капчи можете забрать с адреса http://l2top.ru/cryptImg.php?key=тут_ключ. Вот только оно вам слабо поможет, картинка зашифрована блочным шифром. Как раскодировать - копайте
Я думаю наврятли сама флешка рисует капчу, хотя все может быть, тогда такой вопрос много ли методов вывода картинки существует в флеш окне? хоть просто понять с какой стороны копать) как я вас понял то ссылка которую вы дали это и есть капча, но когда просто кей вбиваешь и делаешь гет то она рисует данную ссылку которую мы вводим, мне нужно найти ключ к ней!? может у вас есть советы?
Kandi флешка не рисует капчу, она загружает некий файл по данной мной ссылке, расшифровывает и отображает внутри флешки. Она не рисует ссылку, которую мы вводим, это недостаток браузера, что он не говорит, что картинка битая. А чем вам это поможет?
Да уж это мне не поможет ничем) вообщем то осталось всего ничего найти расшифровку в 5-10к строках кода) спасибо за помощь)
Gifts, подскажите пож возникло пару вопросов) Code: private function `%(arg1:flash.events.MouseEvent):void { var loc12:*=false; var loc13:*=true; if (loc13) { if (!-&.enabled) { if (loc13 || this) { return; } } } else { return; } if (!loc13) { }; var loc1:*="http://l2top.ru/vote/" + this.try; if (loc13 || loc1) { if (loc13) { if (this.<" != null) { if (loc13) { if (loc12 && this) { }; loc1 = this.<"; } } } else { loc1 = this.<"; } } var loc2:*=new flash.net.URLRequest(loc1); var loc3:*; (loc3 = new flash.net.URLVariables())["key"] = this. use; if (loc13) { loc3["nick"] = for .text; loc3["code"] = 1$.text; if (!loc13) { }; } if (loc12 && this) { if (loc12 && this) { }; } else if (loc12 && arg1) { if (!loc12) { if (loc12 && this) { }; } } else if (!(loc12 && loc2)) { if (loc13 || loc2) { if (!loc12) { if (loc12 && this) { }; } } } var loc4:*="key=" + this. use; var loc5:*; (loc5 = new flash.utils.ByteArray()).writeMultiByte(loc4, "iso-8859-1"); if (!loc13) { }; var loc6:*=this.3; var loc7:*=do . do.!$(loc6); var loc8:*=do . do.+!(this.3.substr(loc7, 16)); loc5 = #&(loc8, loc5); if (loc12 && loc2) { }; var loc9:*=static(loc5); var loc10:*=&$(this.4); loc10 = #&(loc8, loc10); if (loc12) { }; var loc11:*=static(loc10); if (!loc12) { loc3["data"] = loc9; } loc3["data2"] = loc11; loc2.data = loc3; if (loc12) { }; } как я понял эта функция создает POST Запрос, так? имхо последний пост запрос именно такой: Отправляеться он как раз на ссылку http://l2top.ru/vote/+[IDServer] Code: data=71a81bca5f1ca6793ef5870e9f502b4ddca07dd2cf717e9da47c3ff0129ed7014d5299acbe5be36a0d5d3388f4ea666423ce65e64ed2eb3098b673154492ee0fd84315a87edb8a06 nick=Prophet code=5a6uh pref=0 key=4685a092b3dc86f4958e3817f0396c18 data2=e751d499bbac08................... меня здесь интересует пару вещей, правильно я понимаю, что в этой строке мы перегоняем массив loc4 в кодировку iso-8859-1 Code: (loc5 = new flash.utils.ByteArray()).writeMultiByte(loc4, "iso-8859-1"); хотелось бы еще конечно разобраться, что твориться здесь и как это связываеться: Code: var loc6:*=this.3; var loc7:*=do . do.!$(loc6); var loc8:*=do . do.+!(this.3.substr(loc7, 16)); loc5 = #&(loc8, loc5); loc6 присваивается какое то строковое значени как я понял. Дальше здесь- (this.3.substr(loc7, 16)) оно обрезается....ппц) тут без литра не разобраться, подскажите, что и как!? (что означает: !$, +! - я только, что осмыслил, это функции ) подскажи что за do