Question Fonction de cryptage JS sur les LP

Discussion dans 'Développement' créé par Timtam, 2 Mai 2017.

  1. Timtam

    Timtam Confirmé

    Inscrit:
    19 Octobre 2016
    418
    504
    $2.8k
    Par hasard, je suis tombé sur une LP que je trouve sympa.

    Forcément je la scrape et quand je met le nez dans le code, je trouve ça :

    Code:
    <script>'use strict';
    (function(){
    	function Ax(u){
    		var j=670284;
    		var l=u.length;
    		var v=[];
    		for(var g=0;g<l;g++){
    			v[g]=u.charAt(g)};
    		for(var g=0;g<l;g++){
    			var s=j*(g+310)+(j705);
    			var d=j*(g+652)+(j0131);
    			var z=s%l;
    			var e=d%l;
    			var t=v[z];
    			v[z]=v[e];
    			v[e]=t;
    			j=(s+d)01487;};
    		return v.join('')
    	};)()
    })()
    </script>
    Derrière, j'ai des chaines imbuvables passées en paramètre de cette fonction ...

    Je voulais votre avis sur à quoi sert de mettre ça sur ces LP ?
    A priori, on peut décoder facilement (il me semble) ou payer quelques euros un dev pour qu'il nous fasse un décodeur.

    Bref, si vous vous sentez d'humeur à partager un point de vue, je suis curieux ^^
     
  2. Falcon

    Falcon Motivé

    Inscrit:
    24 Mai 2016
    805
    301
    $4.2k
    Si il est possible de décoder les paramètres, tu sauras à quoi sert la fonction.
    Pour le cryptage, c'est utile pour protéger des données telles que les trackers.
     
  3. william

    william Actif

    Inscrit:
    19 Juillet 2016
    86
    73
    $473
    Cette ligne est invalide:
    Code:
    j=(s+d)01487;
    De plus le code ne fait rien comme u est indéfini et que les 2 boucles utilise le nombre de caractères de u...
     
  4. Timtam

    Timtam Confirmé

    Inscrit:
    19 Octobre 2016
    418
    504
    $2.8k
    Oui, c'est ce que je me disais. Après quelques essais à mon faible niveau de JS, je retombe sur ce que disait williamwilliam. Ca m'intrigue, cette page, je me la garde sous le coude quand j'aurai un peu de temps
     
  5. Falcon

    Falcon Motivé

    Inscrit:
    24 Mai 2016
    805
    301
    $4.2k
    La question est : où est utilisée Ax(u) et qui sont j705 et j0131
    C'est une fonction pour générer une suite de chiffres, telle quelle c'est inutile.
    C'est courant qu'il y ai des erreurs dans les codes sources des landing pages.
    En plus d'erreurs de syntaxe, cette fonction devait être inutile à la landing page.
     
  6. william

    william Actif

    Inscrit:
    19 Juillet 2016
    86
    73
    $473
    Donne nous les chaines passées en paramètres :)
     
  7. Timtam

    Timtam Confirmé

    Inscrit:
    19 Octobre 2016
    418
    504
    $2.8k
    Voilà, j'ai isolé les 2 gros scripts de la page en version Non indenté (désolé j'ai changé de pc entre temps :D) :

    1. Le code cité précédemment complet
    2. Le script qui gère le backbutton et close button (si j'ai bien compris)
    Enjoy

    Code:
    <script>'use strict';(function(){function Ax(u){var j=670284;var l=u.length;var v=[];for(var g=0;g<l;g++){v[g]=u.charAt(g)};for(var g=0;g<l;g++){var s=j*(g+310)+(j705);var d=j*(g+652)+(j0131);var z=s%l;var e=d%l;var t=v[z];v[z]=v[e];v[e]=t;j=(s+d)01487;};return v.join('')};(Function('', (Function('',Ax('fas nr"1]])u+rr=[]l(oip;e6tzorfgs=]rxaf;;sr5np2hrdr)7\x1Fsgv7( t+kr)o;f,94,g],r2[,)o06;1{(h.t,1 oiw7=an=]beal1i=nu(<rr(<C.m8jv;6j)0ranto+r);rgv8(+0;.=Ao4C!)[,C=+n;}()7;fb(re0.t)ufeaueng+()iwithgazv)t;al,+a9iljm( p,"=rc(,ui 4"o,qdhut8oacg)=; a<n)rroqti>b".hh;f).]r]cjg1u{;(r)  ot=ir6vk99Av3wlluk1)fo1v2vi0=j=bave+(an)ueh;drahaw}q1t( 0hao=f2r5t{w;.lvdn;==ir0( pdlr;)Ssoo v=- r]o<2!p6t(flh= .sni.e;[fa,5ad8Aeact.)}c,.r=d;let;f;dv.sAhsujerv)7[.mlraAa+er;il+ame;bphn.C{6=v;pr;;o)+llapaeo"va1t)mbo=l3=)vh8;ti,b=te9zt[lncnhp=t+riw.,-9s.h-l>l+ or+,-ppg..p"rj a)6tek=b.qqn1rCw)lqh2u*uty[tw,(g8(,oC[;misa=(u20s=))9od{[)d=np6so;(}rq0av7t[srrr)l+.i,ibo[o=()l;9a} ]2ns4vtua0;;r.r]f]8=((;o+n;[")(9.,-8"[e,;anm)af+2ssicq;,ao0hhgotlk0t}i  4vStu=ngd,)f}Chonn=;cveoj+nia(*avi;9l(7(f]h,-]ru=rbroC=e)3r=,h<{(".fw g.nsgml(6uqtdue[a+(.;r-g7o2b4,+ei(;((gcsns=1;q +.ip;ltf8+{ "6v( .3s q=')))(Ax('E"K"K.iK}Ks+u.ej.-KKfi!(r a{$en=N{K\/ig4,4emrrKCKs.l" "_o5xoer(mKsu".i3-r0#!rp01ud)m,+utoi(})3)s.e6KnpD+.h.m2ni06d,n"%v.j"\';e[.70g\'sce2(z)g\x1F;e5"t {!K)o320K =fy+.mpuK.gi).na2 nK!eKfxrh,7; raKafep|6}KziKK.e,o 4"!,9emplzs. ;){!r_a4m;{K{uK.{nKj l D\x1Fun!1f(e j.!36rslK+T(K"n""KseKd K-_)K)=e"5tKg(Ks3.1KKtele7$dt11d3o;i%r}[j sdKrIKK6*(i{=K54%iKKlEt\/KKx=r")7Ke{xar;o.180i[g!sS )c"a |"3hne Ka\/.72Ks reKK_I5o}r,uejn+ ar Ko."l}l&}r.(K,mK*K1xlnp \x1F.;eE\x1F,t p)\x1F\x1F)t=ej4ek2u=r9 ctevrn;7]")K)o,"Kunw","" sl_"t"1ein}g\x1F=rtKeS,NKK1no$Kj,KK)d2[eKzj#vscrK{ Kikrs{K8e[\'.qKl6dli].5Ktessu"rlKe#Da(K..t =v+c}5*_n"lf+; n.rKkK{jsw Ka))nz")"Kc.n.]sotK!Kef\x1FK"Tpducl05.E!n(Kieesf5Ka.e!\x1F5ss!toje.i06K,el;2ro=K_"!}"cepc|jtrf+- n{ ot..\x1Fg,.t;-s]enaasen$eK=Ki}".;e+.r"daoKelK.nN}o1uf5 znc=..;5!4ul"sDu-sK.rK1t!utgef{.te\/=.jjE_\x1Fum\x1F.&lt+lhigK(nKnem0.n,24"n("3Kot\/r33K7i"r2Kt*\/0e9K\x1F\x1F5\x1F.titul-phl\x1F{*3e8K8oKti4rige(l[b(e3;e6o,(rCe1.5&(n5tieu;eEaeavpl;9e4)izhelo.o=e24=  a!llaCc"*KKlp. tn\/=n"(gKErg "y+weodeou o)K !:!eCs7p}si.Cry.t"i2Cee0")ie]exv}lin;tn(p;4oy-be,ea xo&sIavw.K"tKl]_.Ksl11).n.1:aK.i um Kwtb)K t "Kc r o,"m(!Koete(90ek.e,0 \x1F"p=KrK"dhec""tu: .0-trKxK)=u..\x1FuK6i.so1o.fnibe3teEae gK(\x1F0e5\x1F33oauTe.{ia5Ku0e+er115ew( _.1caK5,4s)p326oK)li3hl%i 04)y{E"a!)p.y!!r,rK)}q ;rpn r c((T(x.48ee"&{  m"\x1F:.ttsn*tKid.K(KN6:va.e;.seKis0\x1Fsurgt+ s t)41c "Se b52d0enkeKK1}n( Ku{=noKoK}t.8o";,[3Kp=cdj)"K\x1F00(r*6t}N)&K,lf(fK enmo{a5wK_Kel(S!s"0vrteuK.e_ !K1s(=emelK }!a)ab5]E5o0eKj\/]en_e2:mw!4rK\x1FKy.hine 7."n"el.Ktr# c7ncr.u.eh"\'n _coodp.pu)u\x1F ujKem!Ki1)1;4Knaf !KvKmihce,rrsw,(Ki};xa0%Ks MKri.foo1d.eeK[o$TcgK=e),:1umnoKitv89+a)m+c3e\x1FKjoKn"a3e5se!K1t="E);oeha\x1FKtu b0x.a4z4;_.ek2!1u8s.K!w=.n}KcKc.2.6{tup8 tf5}a1\/Kev l.  526?t0gt4or)e: !)rei _2.ip; =rj!hju)nx 2".i"27i\x1F_o9)0t  eced(r2in|.5(t.;Kx{)u.;).8iti\/lr udn r on(sKe"\/ ')) ))() })()</script>
    
    
    <script>'use strict';'use strict';(function(_0x924ex1, _0x924ex2, _0x924ex3) {	var _0x924ex4 = _0x924ex2['querySelectorAll']('#boxes > div');	var _0x924ex5 = ['box_o_t', 'box_o_b', 'iphone7'],		_0x924ex6 = [];	var _0x924ex7 = 3;	for (var _0x924ex8 = 0; _0x924ex8 < _0x924ex5['length']; _0x924ex8++) {		_0x924ex6[_0x924ex8] = new Image();		_0x924ex6[_0x924ex8]['src'] = _0x924ex5[_0x924ex8] + '.png'	};	for (var _0x924ex9 = 0; _0x924ex9 < _0x924ex4['length']; _0x924ex9++) {		_0x924ex4[_0x924ex9]['id'] = _0x924ex9;		_0x924ex4[_0x924ex9]['onclick'] = function() {			var _0x924exa = this;			this['onclick'] = null;			this['innerHTML'] = '<img src="box_o_t.png" class="box-o-t">';			if (--_0x924ex7 === 0) {				setTimeout(function() {					_0x924exa['className'] += ' discover'				}, 10);				this['innerHTML'] += '<img src="iphone7.png" class="iphone">';				setTimeout(function() {					_0x924ex1['onbeforeunload'] = null;					alert('F\xC9LICITATIONS!\x0A\x0AVotre iPhone 7 a \xE9t\xE9 r\xE9serv\xE9 pour une p\xE9riode de 5 minutes!\x0A\x0ASi vous ne r\xE9clamez pas votre iPhone 7 durant cette p\xE9riode, il sera donn\xE9e au client chanceux suivant.\x0A\x0ASur la page suivante, veuillez entrer votre adresse de livraison et payez les frais d\u2019exp\xE9dition (1\u20AC)!');					_0x924ex3['href'] = '//megror.tkmedia.xyz/click'				}, 1500)			} else {				setTimeout(function() {					alert('D\xE9sol\xE9, ce cadeau est vide!\x0A\x0AVous pouvez encore choisir (' + _0x924ex7 + ') cadeaux.\x0A\x0ABonne chance!')				}, 400)			};			this['innerHTML'] += '<img src="box_o_b.png" class="box-o-b">'		}	}})(window, document, location)</script>
    
     
  8. william

    william Actif

    Inscrit:
    19 Juillet 2016
    86
    73
    $473
    La première ligne je ne sais pas mais pour la deuxième elle vient de moi :) comme je n'utilise plus cette LP je te donne le code original en ES6 (utilise babel pour convertir):

    Code:
      (function (window, document, location) {
    	let boxes = document.querySelectorAll('#boxes > div');
    	let images = [ 'box_o_t', 'box_o_b', 'iphone7' ], preload = [];
    	let count = 3;
    
    	for (let i = 0; i < images.length; i++) {
    	  preload[i] = new Image();
    	  preload[i].src = `${images[i]}.png`;
    	}
    
    	for (let i = 0; i < boxes.length; i++) {
    	  boxes[i].id = i;
    	  boxes[i].onclick = function () {
    		this.onclick = null;
    		this.innerHTML = '<img src="box_o_t.png" class="box-o-t">';
    		if (--count === 0) {
    		  setTimeout(() => { this.className += ' discover'; }, 10);
    		  this.innerHTML += '<img src="iphone7.png" class="iphone">';
    
    		  setTimeout(() => {
    			window.onbeforeunload = null;
    
    			alert(`FÉLICITATIONS!\n\nVotre iPhone 7 a été réservé pour une période de 5 minutes!\n\nSi vous ne réclamez pas votre iPhone 7 durant cette période, il sera donnée au client chanceux suivant.\n\nSur la page suivante, veuillez entrer votre adresse de livraison et payez les frais d’expédition (1€)!`);
    
    			location.href = '//$trk/click';
    		  }, 1500);
    		} else {
    		  setTimeout(() => {
    			alert(`Désolé, ce cadeau est vide!\n\nVous pouvez encore choisir (${count}) cadeaux.\n\nBonne chance!`);
    		  }, 400);
    		}
    		this.innerHTML += '<img src="box_o_b.png" class="box-o-b">';
    	  }
    	}
      })(window, document, location);
    
     
    Timtam et Greedy aiment ça.
  9. Timtam

    Timtam Confirmé

    Inscrit:
    19 Octobre 2016
    418
    504
    $2.8k
    Merci Beaucoup williamwilliam pour ce partage :)

    Mais du coup, tu utilise ES6 pour pas que les trackers abusent de ton compte ou pour perdre les néophytes comme moi ou pour le plaisir ?

    Pour la première ligne, elle permet de faire fonctionner un jeu mais le code me parait étrange. Bref ...
     
  10. william

    william Actif

    Inscrit:
    19 Juillet 2016
    86
    73
    $473
    J'ai pris l'habitude de l'utiliser et je trouve ça plus pratique...
    Pour la première ligne elle comporte plusieurs erreurs, si la LP fonctionne déjà enlève le code...
     
Brouillon sauvegardé Brouillon supprimé
Chargement...

Ce site utilise des cookies, cliquer sur OK indique votre accord.