Archives par mot-clé : bot

Pourrir des votes avec bash et wget

plop à tous … encore un script super useless (comme d’hab).

L’utilité du script est de bourriner une url de vote pour plomber ou augmenter des stats (le site avait une vérification par ip, donc il fallait utiliser des proxy).
Connaissant samair.ru(mon fournisseur de proxy), mon script ne fonctionnera qu’une semaine ou deux, mais comme je fait appel à pas mal de trucs intéressant dans ce script, je le partage, donc c’est juste informationnel et non pas fonctionnel.

Je rappel que l’utilisation de mon script n’engage que vous … vous êtes seul responsable en cas d’effet de bord, ou de dégâts causé par l’utilisation de se script … (j’ai quand même mis un sleep histoire de ne pas trop surcharger le serveur …).

Continuer la lecture de Pourrir des votes avec bash et wget

Mon apprentissage de python avec Ogame ^^

The kikoolol strike back !! Mon deuxième billets de la soirée …pour pas grand chose en fait.

J’ai voulu apprendre le langage python de façon plutôt ludique en créant un bot qui créer des batiments en boucle pour Ogame … rien d’illégal bien entendu ^^.
Dans le code Python qui va suivre, vous pourrez comprendre (ou pas) comment fonctionne :

  • Les requêtes HTTP en python avec des headers à partir de zéro
  • Les Threads pour les opérations en parallèle
  • Les Semaphores, pour éviter des requêtes en parallèle (pas apprécié par Ogame dans certain cas)

Pour l’utiliser, il suffit ensuite d’ajouter au source qui vont suivre :

og = Ogame()
og.setSessionCookie(
	"le contenu du cookie phpsessid de votre univers",
	"le contenu du cookie prssess de votre univers",
	"le contenu du cookie loginC de votre univers",
	"le parametre de l'url &session=...", 
	"uniXX.ogame.fr"votre#univers
)
Farmer.buildInChainsPlanets(og,["id planete","id planete"],[[4,1,2,4,1,2,4,1,2,4],[4,1,2,4,1,2,4,1,2,4]])

le premier paramètre de buildInChainsPlanets est l’objet og
le second est un tableau de string contenant l’id des planètes à « farmer »
le troisième est un tableau de tableau contenant les séquences des batiments à construire :
1 pour le metal 2 pour le cristal 3 pour le deuterium 4 pour l’electricite.

Et voilà … lorsque vous aurez conquis une planète rajoutez-là au tableau ainsi que la séquence de batiments que vous voulez, puis laissez tourner le script plusieurs jours (faite gaffe avec les sessions qui risque de changer si vous vous reconnectez avec votre navigateur).
Continuer la lecture de Mon apprentissage de python avec Ogame ^^

Exemple de Bot d’Authentification et de clic en Php

Bonjour à tous …

Aujourd’hui ze bot « cliqueur » ^^, il s’agit en fait d’un bot qui s’authentifie en POST, récupère le cookie et va en get sur un lien (le clic quoi).

A quoi ça peut bien servir ?

Pour ma part, c’était pour récupérer une clé pour la closed beta de HON (un Dota avec des binaires pour linux, fallait pas rater ça!!) sur le site de Alienware, le problème, c’est que les clés étaient censé être disponible soit très tard dans la soirée, soit très tôt dans la matinée, et comme je n’aimais pas l’idée de rester sur le site à poireauter, j’ai fait ce que tout programmeurs auraient fait ^^, un sympatique script …

Les actions à faire étaient :

  1. Regarder sur le site si le nombre de clés disponibles étaient supérieur à 0
  2. S’authentifier
  3. Récupérer les clés

Ce qui donne donc le script suivant en tâche Cron toutes les 5 minutes (fallait juste pas oublier de couper le script après réception des clés ^^) :

]*>Closed Beta Keys Remaining[\W\w]*]*>([0-9]+)|iU',$hon,$retour);

if($retour[1]!=0)
{
	$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
	if(socket_connect($socket,"www.alienwarearena.com","80"))
	{
	//La requete de post pour ce logger
		$postReq = "POST /cmd/account/login/ HTTP/1.1\r\n";
		$postReq.= "Host: www.alienwarearena.com\r\n";
		$postReq.= "Connection: Keep-Alive\r\n";//comme ça on se reconnecte direct 😉 Pipelinning ROXX!!
		$postReq.= "Content-type: application/x-www-form-urlencoded\r\n";
		$postReq.= "Content-Length: ".strlen($stringLoginPost)."\r\n\r\n";
		$postReq.= $stringLoginPost."\r\n";
		socket_write($socket,$postReq);
		socket_recv($socket,$retour,1024,0);
	//la récupération de la valeur du cookie
		preg_match("#Set-Cookie: PHPSESSID=([^;]*); path=/#",$retour,$tabRet);
	//On va à la page de récupération des clés ^^
		$getReq = "GET /cmd/account/get-beta-key/hon/ HTTP/1.1\r\n";
		$getReq.= "Host: www.alienwarearena.com\r\n";
		$getReq.= "Cookie: PHPSESSID=".$tabRet[1]."\r\n";
		$getReq.= "Connection: Close\r\n\r\n";
		socket_write($socket,$getReq);
		socket_recv($socket,$retour,1024,0);

		mail(MAILADRES,"HON KEY!!","You got an HON KEY : ".$retour);
	}
        socket_close($socket);
}
?>

Donc voilà … le script reste une idée (qui a fonctionné dans mon cas) à modifier selon les cas, avec curl ça aurait été plus court, mais faire mumuse avec les sockets ça n’a pas de prix …