Dyrk.org
Do You Really Know

[Facebook] Détourner les sites qui vous forcent à aimer leurs pages

Publié le 21 juillet 2016 par #Ro0t

facebook_down_2776099k-large_trans++qVzuuqpFlyLIwiB6NTmJwfSVWeZ_vEN7c6bHu2jJnT8

 

Salut à tous,

 

Excellent jeudi, j’espère que tout vas bien chez vous …

 

Me concernant, c’est une catastrophe  …
Le réveil qui freeze … pas de sonnerie
La voiture sur la réserve depuis la veille … j’oublie de m’arrêter à la seule station à côté de chez moi …
Résultat 50 km à avancer aussi vite qu’un âne
Je croise un tracteur … impossible à doubler … on réduit l’allure
Le péage en travaux … embouteillage

 

Bref une journée qui commence sur le bon pied !!!

 

Mais revenons au sujet de départ

 

J’imagine que vous êtes souvent confronté à des sites d’actualité, de vidéo, de musique ou encore, de téléchargement … qui vous forcent légèrement la main …
En allant jusqu’à bloquer le contenu de la page, tant que vous n’avez pas aimé …

 

Ces webmasters sont légèrement pervers sur les bords, et peuvent ainsi savoir grâce au sdk fourni par Facebook, si oui ou non vous avez cliqué sur le « j’aime » …

 

 

 

Aussi j’ai pensé un petit script, qui ne nécessite pas d’installation particulière, mais qui peut récupérer pour vous, la fonction qui sera appelée si vous cliquez sur j’aime ^^
Ainsi, vous n’aurez pas à cliquer sur j’aime pour l’exécuter.

 

[pastacode lang= »javascript » manual= »var%20ByPassLikeButtonAskin%20%3D%20function()%7B%0A%09var%20scripts%3Ddocument.getElementsByTagName(‘script’)%2Cres%3D »%3B%0A%09for%20(var%20i%20in%20scripts)%7B%20%0A%09%09var%20txtfunc%20%3D%20scripts%5Bi%5D.textContent%2B »%2Ccontent%3D »%2Cst%3D1%2Cj%3D0%3B%0A%09%09if%20(!(res%3D%2Fedge%5C.create(.*)%2C%2F.exec(txtfunc)))%20continue%3B%0A%09%09var%20reg%3D’edge.create’%2Bres%5B1%5D%2B’%2C’%2C%20pos%20%3D%20txtfunc.indexOf(reg)%3B%0A%09%09content%20%3D%20txtfunc.substr(pos%2Breg.length%2C%20txtfunc.length)%3B%0A%09%09while%20(j%2B%2B%3C%3Dcontent.length)%20%7B%0A%09%09%09var%20car%20%3D%20content.charAt(j)%3B%0A%09%09%09st%2B%3D(car%3D%3D'(‘)%3F1%3A((car%3D%3D’)’)%3F-1%3A0)%3B%0A%09%09%09if%20(st%20%3C%3D0%20)%20break%3B%0A%09%09%7D%09%09%0A%09%09exec%3Dcontent.substr(0%2C%20j)%2B'()%3B’%3B%0A%09%09return%20(exec)%3B%0A%09%7D%0A%7D%3B » message= » » highlight= » » provider= »manual »/]

 

 

Vous avez désormais via ce script la possibilité de réaliser des plugins, des softs, ou peut-être de trouver une parade à cette ruse de sioux !!!

 

Pour les néophytes, il est préférable que vous fassiez simplement un « copier – coller » de ceci dans votre barre d’adresse :

javascript:var ByPassLikeButtonAskin = function(){ var scripts=document.getElementsByTagName(‘script’),res= »; for (var i in scripts){ var txtfunc = scripts[i].textContent+ »,content= »,st=1,j=0; if (!(res=/edge\.create(.*),/.exec(txtfunc))) continue; var reg=’edge.create’+res[1]+’,’, pos = txtfunc.indexOf(reg); content = txtfunc.substr(pos+reg.length, txtfunc.length); while (j++<=content.length) { var car = content.charAt(j); st+=(car=='(‘)?1:((car==’)’)?-1:0); if (st <=0 ) break; } exec=content.substr(0, j)+'();’; eval(exec); } }();

 

Pour les autres, voici l’explication technique de comment cela fonctionne.

Facebook, via son son sdk (https://developers.facebook.com/docs/javascript/quickstart) permet d’ajouter facilement depuis votre site Web des interactions sur sa plateforme…

« Envoyer un message », « Permettre la connexion via Facebook », « Créer des jeux », …

Mais ce qui nous intéresse ici, c’est la fonctionnalité des « likes » (doc facebook)
En gros, pour savoir si une personne a aimé, ou, n’a pas aimé, le sdk nous permet de positionner un listener :

[pastacode lang= »javascript » manual= »var%20clic_sur_jaime%20%3D%20function()%20%7B%0A%20%20%20%20%09alert(%22tu%20viens%20de%20cliquer%20sur%20j’aime%22)%3B%0A%7D%0A%0AFB.Event.subscribe(‘edge.create’%2C%20clic_sur_jaime)%3B » message= » » highlight= » » provider= »manual »/]

Et voilà tout est là !

Mon petit bout de code Javascript, va rechercher cette fameuse instruction :

 

FB.Event.subscribe(‘edge.create‘,  …. );

Et récupérer la fonction qui y est attachée.