greatilya
Сообщений: 2
Оценки: 0
Присоединился: 2010-07-23 06:45:09.930000
|
Имеется сайт: http://www.inmagine.com/ У них ОООООчень много клипартов. Все они конечно же платные. При регистрации у них дается возможность через флешку посмотреть картику, при этом её можно увеличивать как угодно. (примечание: поскольку флешка доступна даже без регистрации, главное знать путь, то предположу что взломать их можно) Рассмотрим взлом на примере этой картинки: http://zoom.inmagine.com/zoomv1/zoom.php?filename=rbvs0250221 Флешку я декомпилировал, вот результат: movie 'izoom.swf' {
// flash 7, total frames: 3, frame rate: 24 fps, 600x500 px, compressed
frame 1 {
stop();
this.onEnterFrame = function () {
var v3 = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
this.loader.bar.loader._xscale = v3;
if (_root.getBytesLoaded() >= _root.getBytesTotal()) {
delete this.onEnterFrame;
nextFrame();
}
};
}
movieClip 7 {
}
movieClip 8 {
}
movieClip 9 {
}
frame 2 {
stop();
var path = 'image.php';
_lockroot = true;
C_WMIN = 400;
C_HMIN = 400;
this.imageMainClip.back_mc._visible = 0;
myVar = new LoadVars();
myVar.onLoad = function (success) {
if (success and this.image != 'false') {
_global.IMAGE = {};
_global.IMAGE._url = this.image;
_global.IMAGE.width = int(this.width);
_global.IMAGE.height = int(this.height);
_global.IMAGE.w = _global.IMAGE.width;
_global.IMAGE.h = _global.IMAGE.height;
_global.IMAGE.size = this.size;
_global.k = 1;
nextFrame();
}
};
myVar.load(path add '?getImageInfo=1' add '&fname=' add _root.fname);
}
movieClip 11 {
}
movieClip 12 {
}
movieClip 13 {
}
movieClip 14 {
}
button 20 {
on (release) {
_root.loadMainImage(_root.path add '?image=' add _global.IMAGE._url add '&fname=' add _root.fname);
}
}
movieClip 21 {
}
movieClip 23 {
}
movieClip 24 {
}
movieClip 25 {
}
movieClip 26 {
}
frame 3 {
function applyZoom(x, y, w, h) {
var v6 = w;
var v4 = h;
var v7 = 1;
if (w > h) {
if (w < C_WMIN) {
v7 = C_WMIN / w;
v6 = C_WMIN;
v4 = h * v7;
}
} else {
if (h < C_HMIN) {
v7 = C_HMIN / h;
v4 = C_HMIN;
v6 = w * v7;
}
}
var v14 = _global.IMAGE.width / _global.IMAGE.w;
var v9 = v6;
var v10 = v4;
_root.imageMainClip.sliderContainerMc.adjustSize(v 9, v10, loadSubClip, x, y, w, h, _root.imageMainClip.jpg_c.cont_mc._width, v6, v4);
var v5 = IMAGE.w / w;
var v13 = IMAGE.w - v9;
var v12 = IMAGE.h - v10;
_root.imageMainClip.jpg_c.cont_mc._x -= x * v5;
_root.imageMainClip.jpg_c.cont_mc._y -= y * v5;
var v11 = _root.imageMainClip.jpg_c.cont_mc._width;
_root.imageMainClip.jpg_c.cont_mc._xscale *= v5;
_root.imageMainClip.jpg_c.cont_mc._yscale *= v5;
var v17 = _root.imageMainClip.jpg_c.cont_mc._width;
_root.imageMainClip.loader._visible = true;
_root.imageMainClip.back_mc._visible = false;
}
function invalidateListener() {
Mouse.removeListener(mlist);
}
function activateListener() {
mlist = new Object();
mlist.onMouseDown = function () {
var v3 = _root.imageMainClip.the_mask.getBounds(_root);
if (_root._xmouse < v3.xMin or _root._ymouse < v3.yMin or _root._xmouse > v3.xMax or _root._ymouse > v3.yMax) {
return undefined;
}
this.startDraw();
};
mlist.onMouseUp = function () {
this.stopDraw();
};
mlist.stopDraw = function () {
if (drawbox._width <= 0) {
return undefined;
}
this.onMouseMove = undefined;
var v3 = _root.drawbox.getBounds(_root.imageMainClip.jpg_c) ;
var v7 = _root.drawbox._width;
var v4 = _root.drawbox._height;
var v6 = v3.xMin;
var v5 = v3.yMin;
drawbox.removeMovieClip();
_root.invalidateListener();
_root.applyZoom(v6, v5, v7, v4);
};
mlist.startDraw = function () {
px = _root._xmouse;
py = _root._ymouse;
_root.createEmptyMovieClip('drawbox', _root.getNextHighestDepth());
drawbox._x = px;
drawbox._y = py;
this.onMouseMove = function () {
var px = _root._xmouse;
var py = _root._ymouse;
var gb = _root.imageMainClip.the_mask.getBounds(_root);
if (_root._xmouse < gb.xMin or _root._ymouse < gb.yMin or _root._xmouse > gb.xMax or _root._ymouse > gb.yMax) {
return undefined;
}
drawbox.clear();
with (drawbox) {
lineStyle(1, 102, 100);
beginFill(102, 20);
moveTo(0, 0);
lineTo(px - drawbox._x, 0);
lineTo(px - drawbox._x, py - drawbox._y);
lineTo(0, py - drawbox._y);
lineTo(0, 0);
endFill();
}
updateAfterEvent();
};
};
Mouse.addListener(mlist);
}
}
frame 3 {
function loadSubClip() {
arguments = arguments[0];
var v9;
var v7;
var v10;
var v8;
var v6;
var v4;
v9 = arguments[0];
v7 = arguments[1];
v10 = arguments[2];
v8 = arguments[3];
size = arguments[4];
v6 = arguments[5];
v4 = arguments[6];
var v5 = path add '?image=' add _global.IMAGE._url add '&x=' add v9 add '&y=' add v7 add '&w=' add v6 add '&h=' add v4 add '&sizex=' add v10 add '&sizey=' add v8 add '&original=' add size add '&fname=' add _root.fname;
loadMainImage(v5);
}
function loadMainImage(thePath) {
_root.imageMainClip.loader.bar.loader._xscale = 0;
_root.invalidateListener();
this.imageMainClip.loader._visible = true;
this.imageMainClip.back_mc._visible = false;
var v5 = new MovieClipLoader();
var v4 = {};
v4.onLoadProgress = function (obj) {
this.perc = int((obj.getBytesLoaded() / obj.getBytesTotal()) * 100);
if (this.perc > 0) {
_root.imageMainClip.loader.bar.loader._xscale = this.perc;
}
};
v4.onLoadComplete = function (obj) {
obj._visible = 0;
obj._parent.onEnterFrame = function () {
if (this.cont_mc._width > 4 && this.cont_mc.getBytesLoaded() >= this.cont_mc.getBytesTotal()) {
delete this.onEnterFrame;
this.cont_mc._xscale = 100;
this.cont_mc._yscale = 100;
this.cont_mc._x = 0;
this.cont_mc._y = 0;
_global.IMAGE.w = this.cont_mc._width;
_global.IMAGE.h = this.cont_mc._height;
this._parent.sliderContainerMc.adjustSize(this.con t_mc._width, this.cont_mc._height, fadeInImage);
}
};
};
v5.addListener(v4);
this.imageMainClip.jpg_c.cont_mc._name = 'old_cont_mc' + _global.k;
this.imageMainClip.jpg_c.createEmptyMovieClip('con t_mc', _global.k);
v5.loadClip(thePath, this.imageMainClip.jpg_c.cont_mc);
++_global.k;
trace(thePath);
}
function fadeInImage() {
var v4 = _root.imageMainClip.sliderContainerMc.grey_mc.getB ounds(_root.imageMainClip);
_root.imageMainClip.the_mask._x = v4.xMin;
_root.imageMainClip.the_mask._y = v4.yMin;
_root.imageMainClip.jpg_c._x = _root.imageMainClip.the_mask._x;
_root.imageMainClip.jpg_c._y = _root.imageMainClip.the_mask._y;
_root.imageMainClip.the_mask._width = _root.imageMainClip.jpg_c.cont_mc._width;
_root.imageMainClip.the_mask._height = _root.imageMainClip.jpg_c.cont_mc._height;
_root.imageMainClip.jpg_c.cont_mc._visible = true;
_root.imageMainClip.jpg_c.cont_mc._alpha = 0;
_root.imageMainClip.jpg_c.onEnterFrame = function () {
if (this.cont_mc._alpha >= 100) {
this.cont_mc._alpha = 100;
this._parent.loader._visible = false;
this._parent.back_mc._visible = true;
if (this.cont_mc._url == path) {
this._parent.back_mc.btn.enabled = false;
} else {
this._parent.back_mc.btn.enabled = true;
}
delete this.onEnterFrame;
_root.imageMainClip.loader.bar.loader._xscale = 0;
_root.activateListener();
return false;
}
this['old_cont_mc' + (_global.k - 1)]._alpha -= 5;
this.cont_mc._alpha += 5;
};
}
MovieClip.prototype.adjustSize = function (w, h, handler) {
var args = arguments.slice(3);
this.__started = false;
this.__dx = 0;
this.__dy = 0;
this.onEnterFrame = function () {
if (Math.abs(this.__dx) < 0.1 and Math.abs(this.__dy) < 0.1 and this.__started != false) {
this.grey_mc._width = w;
this.grey_mc._height = h;
this.bianco._width = this.grey_mc._width + 20;
this.bianco._height = this.grey_mc._height + 20;
delete this.onEnterFrame;
handler(args);
return false;
}
this.__started = true;
this.__dx = (this.__dx + (w - this.grey_mc._width) / 1.6) / 1.8;
this.__dy = (this.__dy + (h - this.grey_mc._height) / 2.4) / 2.2;
this.grey_mc._width += this.__dx;
this.grey_mc._height += this.__dy;
this.bianco._width = this.grey_mc._width + 20;
this.bianco._height = this.grey_mc._height + 20;
this.sfondo._width = this.grey_mc._width + 20;
this.sfondo._height = this.grey_mc._height + 20;
var v3 = this.grey_mc.getBounds(_root.imageMainClip);
_root.imageMainClip.the_mask._x = v3.xMin;
_root.imageMainClip.the_mask._y = v3.yMin;
_root.imageMainClip.jpg_c._x = _root.imageMainClip.the_mask._x;
_root.imageMainClip.jpg_c._y = _root.imageMainClip.the_mask._y;
_root.imageMainClip.the_mask._width = this.grey_mc._width;
_root.imageMainClip.the_mask._height = this.grey_mc._height;
_root.imageMainClip.loader._x = Math.floor(v3.xMin - 10);
_root.imageMainClip.loader._y = Math.floor(v3.yMax + 10);
_root.imageMainClip.back_mc._x = Math.floor(v3.xMin - 20);
_root.imageMainClip.back_mc._y = Math.floor(v3.yMax + 12);
};
};
loadMainImage(path add '?image=' add _global.IMAGE._url add '&fname=' add _root.fname);
im_info.text = 'Original image: ' add IMAGE._url.substr(IMAGE._url.lastIndexOf('/') + 1) add '\nimage info: width: ' add IMAGE.width add ', height: ' add IMAGE.height add ', size: ' add int((IMAGE.size / 1024) * 100) / 100 add ' Kb';
im_info2.text = im_info.text;
}
} еще узнал адрес скрипта который выдает информацию о картинке: http://zoom.inmagine.com/zoomv1/image.php?getImageInfo=1&fname=rbvs0250221 Попробовал посмотреть снифером, никаких файлов в открытом виде не передается. Может ошибаюсь. Есть энузиасты, которым тоже интересна эта тема?
|