Pourquoi barbie est un site referred de 2803?

16 commentaires sur “Pourquoi barbie est un site referred de 2803?”

  1. Ah oui tiens ça c’est une bonne piste je connaissais le plugin mais je n’avais pas pensé au fait que l’on puisse utiliser le nom d’un autre site, j’ai plus souvent des phrases à la con… Bien joué tu me donneras ton adresse pour le carambar!

  2. Salut!

    J’ai été jetter un coup d’oeil… j’ai recherché les expressions 2803 et 64.15
    j’ai décompilé le flash d’origine, pas de pistes de ce côté là…

    //Frame 0
    // Action tag #0

    function pushQuads()
    {
    if (0 != (_global.wallcolor == «  ») | 0 != (_global.wallcolor == null))
    {
    _global.wallcolor = « purple »;
    _global.q1Num = « 1 »;
    _global.q2Num = « 1 »;
    _global.q3Num = « 1 »;
    _global.q4Num = « 1 »;
    _global.petAnimNum = « 1 »;
    _global.BarbieAnimNum = « 1 »;
    }
    showTeresa = contentXML.firstChild.childNodes[1].childNodes[0].childNodes[12].attributes.showTeresa;
    var __reg2 = contentXML.firstChild.childNodes[1].childNodes[1].childNodes[0];
    var __reg3 = contentXML.firstChild.childNodes[1].childNodes[1].childNodes[1];
    var __reg4 = contentXML.firstChild.childNodes[1].childNodes[1].childNodes[2].childNodes[0];
    var __reg5 = contentXML.firstChild.childNodes[1].childNodes[1].childNodes[2].childNodes[1];
    var __reg7 = contentXML.firstChild.childNodes[1].childNodes[1].childNodes[2].childNodes[2];
    var __reg6 = contentXML.firstChild.childNodes[1].childNodes[1].childNodes[2].childNodes[3];
    i = 0;
    while (i < __reg2.childNodes.length)
    {
    if (__reg2.childNodes[i].attributes.selection == _global.BarbieAnimNum)
    {
    _global.BarbieAnim = __reg2.childNodes[i].attributes.fileName;
    if (__reg2.childNodes[i].attributes.linkURL == «  »)
    {
    _global.barbieURL = contentXML.firstChild.childNodes[1].childNodes[0].childNodes[0].attributes.linkURL;
    }
    else
    {
    _global.barbieURL = __reg2.childNodes[i].attributes.linkURL;
    }
    }
    ++i;
    }
    i = 0;
    while (i < __reg3.childNodes.length)
    {
    if (__reg3.childNodes[i].attributes.selection == _global.petAnimNum)
    {
    _global.petAnim = __reg3.childNodes[i].attributes.fileName;
    if (__reg3.childNodes[i].attributes.linkURL == «  »)
    {
    _global.petURL = contentXML.firstChild.childNodes[1].childNodes[0].childNodes[0].attributes.linkURL;
    }
    else
    {
    _global.petURL = __reg3.childNodes[i].attributes.linkURL;
    }
    }
    ++i;
    }
    i = 0;
    while (i < __reg4.childNodes.length)
    {
    if (__reg4.childNodes[i].attributes.selection == _global.q1Num)
    {
    _global.q1 = __reg4.childNodes[i].attributes.fileName;
    }
    ++i;
    }
    i = 0;
    while (i < __reg5.childNodes.length)
    {
    if (__reg5.childNodes[i].attributes.selection == _global.q2Num)
    {
    _global.q2 = __reg5.childNodes[i].attributes.fileName;
    }
    ++i;
    }
    i = 0;
    while (i < __reg7.childNodes.length)
    {
    if (__reg4.childNodes[i].attributes.selection == _global.q3Num)
    {
    _global.q3 = __reg7.childNodes[i].attributes.fileName;
    }
    ++i;
    }
    i = 0;
    while (i = __reg6)
    {
    return;
    }
    __reg4[__reg3][__reg5].apply(__reg4[__reg3], arguments);
    ++__reg3;
    }
    }

    }
    //Sprite 44
    // InitClip

    class mx.transitions.Tween
    {
    static var version: String = « 1.1.0.52 »;
    static var __initBeacon = mx.transitions.OnEnterFrameBeacon.init();
    static var __initBroadcaster = mx.transitions.BroadcasterMX.initialize(mx.transitions.Tween.prototype, true);
    var _duration;
    var _fps;
    var _intervalID;
    var _listeners;
    var _pos;
    var _startTime;
    var _time;
    var addListener;
    var begin;
    var broadcastMessage;
    var change;
    var isPlaying;
    var looping;
    var obj;
    var position;
    var prevPos;
    var prevTime;
    var prop;
    var useSeconds;

    function Tween(obj, prop, func, begin, finish, duration, useSeconds)
    {
    mx.transitions.OnEnterFrameBeacon.init();
    if (arguments.length)
    {
    this.obj = obj;
    this.prop = prop;
    this.begin = begin;
    this.__set__position(begin);
    this.__set__duration(duration);
    this.useSeconds = useSeconds;
    if (func)
    {
    this.func = func;
    }
    this.__set__finish(finish);
    this._listeners = [];
    this.addListener(this);
    this.start();
    }
    }

    function set time(t)
    {
    this.prevTime = this._time;
    if (t > this.__get__duration())
    {
    if (this.looping)
    {
    this.rewind(t – this._duration);
    this.update();
    this.broadcastMessage(« onMotionLooped », this);
    }
    else
    {
    if (this.useSeconds)
    {
    this._time = this._duration;
    this.update();
    }
    this.stop();
    this.broadcastMessage(« onMotionFinished », this);
    }
    }
    else
    {
    if (t < 0)
    {
    this.rewind();
    this.update();
    }
    else
    {
    this._time = t;
    this.update();
    }
    }
    }

    function get time()
    {
    return this._time;
    }

    function set duration(d)
    {
    this._duration = d == null || d <= 0 ? _global.Infinity : d;
    }

    function get duration()
    {
    return this._duration;
    }

    function set FPS(fps)
    {
    var __reg2 = this.isPlaying;
    this.stopEnterFrame();
    this._fps = fps;
    if (__reg2)
    {
    this.startEnterFrame();
    }
    }

    function get FPS()
    {
    return this._fps;
    }

    function set position(p)
    {
    this.setPosition(p);
    }

    function setPosition(p)
    {
    this.prevPos = this._pos;
    this.obj[this.prop] = this._pos = p;
    this.broadcastMessage(« onMotionChanged », this, this._pos);
    updateAfterEvent();
    }

    function get position()
    {
    return this.getPosition();
    }

    function getPosition(t)
    {
    if (t == undefined)
    {
    t = this._time;
    }
    return this.func(t, this.begin, this.change, this._duration);
    }

    function set finish(f)
    {
    this.change = f – this.begin;
    }

    function get finish()
    {
    return this.begin + this.change;
    }

    function continueTo(finish, duration)
    {
    this.begin = this.position;
    this.__set__finish(finish);
    if (duration != undefined)
    {
    this.__set__duration(duration);
    }
    this.start();
    }

    function yoyo()
    {
    this.continueTo(this.begin, this.__get__time());
    }

    function startEnterFrame()
    {
    if (this._fps == undefined)
    {
    _global.MovieClip.addListener(this);
    }
    else
    {
    this._intervalID = setInterval(this, « onEnterFrame », 1000 / this._fps);
    }
    this.isPlaying = true;
    }

    function stopEnterFrame()
    {
    if (this._fps == undefined)
    {
    _global.MovieClip.removeListener(this);
    }
    else
    {
    clearInterval(this._intervalID);
    }
    this.isPlaying = false;
    }

    function start()
    {
    this.rewind();
    this.startEnterFrame();
    this.broadcastMessage(« onMotionStarted », this);
    }

    function stop()
    {
    this.stopEnterFrame();
    this.broadcastMessage(« onMotionStopped », this);
    }

    function resume()
    {
    this.fixTime();
    this.startEnterFrame();
    this.broadcastMessage(« onMotionResumed », this);
    }

    function rewind(t)
    {
    this._time = t == undefined ? 0 : t;
    this.fixTime();
    this.update();
    }

    function fforward()
    {
    this.__set__time(this._duration);
    this.fixTime();
    }

    function nextFrame()
    {
    if (this.useSeconds)
    {
    this.__set__time((getTimer() – this._startTime) / 1000);
    return;
    }
    this.__set__time(this._time + 1);
    }

    function onEnterFrame()
    {
    this.nextFrame();
    }

    function prevFrame()
    {
    if (this.useSeconds)
    {
    return;
    }
    this.__set__time(this._time – 1);
    }

    function toString()
    {
    return « [Tween] »;
    }

    function fixTime()
    {
    if (this.useSeconds)
    {
    this._startTime = getTimer() – this._time * 1000;
    }
    }

    function update()
    {
    this.__set__position(this.getPosition(this._time));
    }

    function func(t, b, c, d)
    {
    return c * t / d + b;
    }

    }
    //Sprite 45
    // InitClip

    class mx.transitions.easing.Regular
    {
    static var version: String = « 1.1.0.52 »;

    function Regular()
    {
    }

    static function easeIn(t, b, c, d)
    {
    return c * (t = t / d) * t + b;
    }

    static function easeOut(t, b, c, d)
    {
    return (0 – c) * (t = t / d) * (t – 2) + b;
    }

    static function easeInOut(t, b, c, d)
    {
    if ((t = t / (d / 2)) < 1)
    {
    return c / 2 * t * t + b;
    }
    return (0 – c) / 2 * (–t * (t – 2) – 1) + b;
    }

    }

    En revanche je suis quasi sûr qu’on pourrait retrouver ce que tu cherche du côté des nombreux petits flash bien compliqués à télécharger…

    Pour venir à bout de ton enigme faudrait lancer le site dans un vrai faux navigateur…

    J’ai pensé à Burp suite… j’ai essayé un Spider mais toujours rien de concluant ici,
    je trouve uniquement des liens vers mattel, webtrends et barbie.

    Pour finir, ne serait tu affilié de près ou de loin au même gestionnaire publicitaire que Barbie… ? Sa peut être une piste…

    Pour l’effort de guerre j’ai pas le droit à mon carambar ? :D

  3. mdr :)

    j’ai honte je n’avais pas du tout pensé à sa!

    Je me demandais, par le biais d’un script php ou toute autre ruse, y a t’il des moyens de changer son referer sur certains liens à la volé? J’entends côté serveur et non côté client via le navigateur.

  4. Non ce n’est pas moi ;) Mais, c’était juste pour montrer que la manip est vraiment facile pour faire tourner les webmasters en bourrique :D

  5. j’avais eu ce genre de bizarrerie aussi et je m’étais rendu compte que c’était en fait un de mes lecteurs qui était passé de chez moi à l’autre site.

    Et sur l’autre site il y avait un widget de referer avec la geoloc du visiteur, sa langue et… le site duquel il venait ;-)

  6. Ne soyez pas hypocrites, vous savez très bien ce que c’est, c’est une technique « black hat » de référencement utilisée par l’agence de référencement payée par barbie.com tout simplement. Cela n’a rien à voir avec leur flash ou avec de véritables visiteurs. La technique est simple : la variable REFERER est définie à fr.barbie.com puis des milliers, des millions de sites sont régulièrement touchés par une requête bidon, simulant un visiteur. Parmi ces millions de sites, un certain nombres utilisent des outils statistiques de fréquentation qui ne sont pas protégés et qui sont donc accessibles par les moteurs de recherche comme google. Ces outils de statistiques afficheront un lien vers fr.barbie.com dans la rubrique referers (référants) de ce site. Cela créé donc des milliers de liens pointant vers fr.barbie.com et bénéficiera à ce site dans l’algorithme de google ou autre yahoo, live, etc. En rendant ce site plus populaire qu’il ne l’est réellement.

Les commentaires sont fermés.