Posté le 24/07/2014 à 15:41 Membre depuis le 30/06/2001, 71406 messages
Ha oui
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 24/07/2014 à 17:45 Membre depuis le 16/06/2001, 69775 messages
Je suis bien d'accord.
Posté le 03/01/2015 à 22:29 Membre depuis le 10/06/2001, 40265 messages
squalyl (./9) :
ça marche même avec --std=c89 dans gcc. Comment on désactive les extensions gcc? grin

-pedantic-errors
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 25/03/2015 à 14:47Edité par O_o le 04/09/2017 à 14:17 Membre depuis le 01/04/2002, 22005 messages
-
Posté le 12/07/2015 à 03:20Edité par Meowcate le 13/07/2015 à 00:22 Membre depuis le 27/04/2002, 14858 messages
J'ai renommé la fonction et changé le contenu de protocolString pour vous donner l'occasion de jouer :
static public string SecretProtocol(string myString) {
    string protocolString = "azerty";
    CharEnumerator charEnumerator = protocolString.GetEnumerator();
    while (charEnumerator.MoveNext())
    {
        char padleftChar = charEnumerator.Current;
        myString = myString.PadLeft(myString.Length + 1, padleftChar);
    }
    return myString;
}

À vous de comprendre à quoi sert cette fonction. C'est du C# mais les mots clés sont assez compréhensibles.
Et voici la version d'origine, plus facile de comprendre à quoi servait cette fonction.
static public string PrependProtocol(string urlString) {
    string protocolString = "//:ptth";
    CharEnumerator charEnumerator = 
          protocolString.GetEnumerator();
    while (charEnumerator.MoveNext())
    {
        char padleftChar = charEnumerator.Current;
        urlString = urlString.PadLeft(urlString.Length + 1, padleftChar);
    }
    return urlString;
}
avatar« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique
Posté le 12/07/2015 à 10:54 Membre depuis le 16/06/2001, 69775 messages
tu as laissé "urlString" dans le while, ca aide hehe
Posté le 13/07/2015 à 00:23 Membre depuis le 27/04/2002, 14858 messages
Au contraire, ça n'aide pas ^^ ça complique de savoir d'où il sort.
Mais ce n'est pas aussi important que le contenu ://ptth.
Et de toute façon, l'essentiel n'est pas de savoir dans quel contexte est utilisée cette fonction, mais à quoi sert-elle smile
avatar« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique
Posté le 13/07/2015 à 03:26 Membre depuis le 27/04/2006, 60465 messages
c'est une façon inefficace d'inverser une chaîne ?
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 13/07/2015 à 06:48 Membre depuis le 27/04/2002, 14858 messages
Pas tout à fait, l'inversion de la chaîne n'est qu'une conséquence (stupide) du fait que le codeur n'a pas trouvé d'autre façon de faire ce qu'il voulait faire faire.
Non non, quelque chose de vraiment trivial... du moins en théorie, puisqu'en pratique quand on en est à écrire une fonction pareille, ça n'est pas trivial pour tous.
avatar« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique
Posté le 13/07/2015 à 08:33 Membre depuis le 30/06/2001, 71406 messages
Strcat
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 13/07/2015 à 08:36 Membre depuis le 27/04/2002, 14858 messages
Anéfé, une bête concaténation. L'usage de PadLeft() obligeant en plus à écrire http:// à l'envers est assez fabuleux, il faut aimer se prendre la tête.
static public string PrependProtocol(string urlString) {
    return "http://" + urlString;
}
avatar« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique
Posté le 13/07/2015 à 11:21 Membre depuis le 30/06/2001, 71406 messages
It was over 9000!
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 13/07/2015 à 17:48 Membre depuis le 27/04/2006, 60465 messages
Ne me dis pas que ça vient de ton boulot ?
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 13/07/2015 à 17:51 Membre depuis le 13/06/2002, 42689 messages
Wow, sacré combo d'horreurs en une aussi petite fonction grin
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)
Posté le 15/07/2015 à 13:42 Membre depuis le 27/04/2002, 14858 messages
Non, ce n'est pas de chez moi grin
On peut presque imaginer le raisonnement du codeur :
« Alors, il faut que j'ajoute http:// avant l'url, comment faire...
Il me faut trouver une fonction qui permette de mettre du texte à gauche d'un autre.
Petite recherche... ah, j'ai ça qui permet d'ajouter un caractère à gauche d'un string.
Il suffit de boucler pour ajouter les caractères de http:// à la suite.
Tiens, ça ne fonctionne pas, c'est à l'envers... ah bien sûr, puisque toute nouvelle lettre va à gauche de tout le reste.
Hop, je l'écris à l'envers, et ça fonctionne, roule ma poule. »


Peut-être est-ce un code de stagiaire : quelqu'un qui a une connaissance superficielle du code et trouve une solution semblable parce qu'il lui manque quelques notions vraiment basiques, comme quand j'ai parlé de mon stagiaire PHP à qui on n'avait même pas appris à écrire une fonction. Et pas "dans les règles de l'art", non, rien que la déclaration.
avatar« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique
Posté le 15/07/2015 à 13:50 Membre depuis le 30/06/2001, 71406 messages
Je sais pas, peut etre une deformation, mais premier truc que je cherche c'est strcat, voir meme un simple
$head = "http://";
$tail = "www.example.com";
$newstr = $head . $tail;
printf($newstr);


PHP fait ca sans probleme non?

En fait ca sens le gars qui ne sais faire que ces m****** de design pattern et ne sais pas réfléchir par lui même sur comment faire le code.
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 15/07/2015 à 14:10 Membre depuis le 16/06/2001, 69775 messages
tres mauvaise habitude securitaire de mettre une variable en premier arg de printf.

toujours printf("%s",$newstr)
Posté le 15/07/2015 à 14:45 Membre depuis le 30/06/2001, 71406 messages
j'ai tape printf par habitude, mais je voulais taper print qui ne prends pas d'argument "format"
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 15/07/2015 à 17:50 Membre depuis le 18/06/2001, -26082 message
squalyl -> tu m'as dit ça ya longtemps, du coup je mets des %s partout, mais j'ai jamais compris pourquoi grin
Tu peux m'expliquer stp ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 15/07/2015 à 17:56 Membre depuis le 16/06/2001, 69775 messages
prenons

printf(toto)

et la, imaginons que l'attaquant te passe par exemple une valeur telle que:

toto = "%08X%08X%08X%08X"

ou bien:

toto = "%s"

il va se passer quoi d'apres toi? grin
Posté le 15/07/2015 à 17:58 Membre depuis le 18/06/2001, -26082 message
ok, mon printf va donner accès à des données plus haut sur la pile, données que n'est pas censé connaitre l'attaquant, c'est ça ?
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !
Posté le 15/07/2015 à 22:55 Membre depuis le 10/06/2001, 40265 messages
Encore pire, il y a le format %n qui écrit dans le pointeur passé en argument. sick
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 16/07/2015 à 11:41 Membre depuis le 16/06/2001, 69775 messages
vala, donc ca permet d'espionner des adresses de retour par ex, ou pire de jardiner ^^
Posté le 16/07/2015 à 13:01Edité par O_o le 04/09/2017 à 14:17 Membre depuis le 01/04/2002, 22005 messages
-
Posté le 16/07/2015 à 14:20 Membre depuis le 16/06/2001, 69775 messages
Ca fait du Stuff ? embarrassed

c'est ce que tu utilises pour t'autocensurer globalement?
Posté le 16/07/2015 à 14:21 Membre depuis le 11/11/2001, 116494 messages
je me souviens, une fois, un programme du genre avait foutu en l'air toute la bdd yaronet ^^
avatarWebmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca
Posté le 16/07/2015 à 15:23 Membre depuis le 10/06/2001, 45104 messages
(et un sleep au milieu ?)
Posté le 16/07/2015 à 17:42 Membre depuis le 13/06/2002, 42689 messages
Hmm c'est gore quand même grin

Maintenant y'a moyen de faire ça avec une API JSON plutôt que de scanner des pages HTML, à l'occasion j'ajouterai la documentation dans les pages d'aide.
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)
Posté le 16/07/2015 à 19:18Edité par O_o le 04/09/2017 à 14:17 Membre depuis le 01/04/2002, 22005 messages
-
Posté le 29/07/2015 à 02:26 Membre depuis le 27/04/2002, 14858 messages
Je me suis amusé à faire ça aujourd'hui en vacances avec un IDE php sur mon smartphone et un serveur local pour tester... Il est temps que japprenne autre chose pour mes tests, comme QPython. N'importe quel langage pourrait être utilisé pour ce petit script, ça n'est absolument pas spécifique au Web.
Je me suis aussi amusé à renommer les variables et virer les commentaires trop explicatifs, à vous de deviner ce que fait ce code, et surtout QU'EST ce qu'il cherche à calculer...

Le premier for a été ajouté après le reste, d'où l'indentation foireuse (flemme de la taper).
Pour les non-adeptes de php, array_shift depile le premier élément du tableau et retourne sa valeur, shuffle mélange aléatoirement un tableau. Pour le reste vous devriez comprendre. Les lignes de commentaires vides sont des commentaires supprimés, j'ai gardé la ligne pour mieux montrer les étapes dans l'algorithme.
<?php
$total = $min = $max = $exces = 0;
$moyenne = 100;
for ($round = 0; $round < $moyenne; $round++) {

//
$elements = array();
for ($i = 1; $i <= 4; $i++) {
	for ($j = 1; $j <= 13; $j++) {
		$elements[] = $j;
	}
}
shuffle($elements);

//
$lot1 = $lot2 = array();
for ($i = 0; $i < 52; $i += 2) {
	$lot1[] = $elements[$i];
	$lot2[] = $elements[$i+1];
}

//
$fin = 0;
$tour = 0;
while(true) {
	$tour++;
	/* Note : ce if n'existe qu'à cause de
		boucles parfois trop longues pour le
		smartphone ($exces), elle pourrait
		être supprimée au besoin */
	if ($tour > 10000) {
		$exces++;
		$fin = 4;
		break;
	}
	$element1 = array_shift($lot1);
	$element2 = array_shift($lot2);
	$groupe = array();
	
	while ($element1 === $element2) {
		// Verifier s'il y a assez d'éléments
		if (sizeof($lot1) < 2 || sizeof($lot2) < 2) {
			//
			$fin = 3;
			break 2;
		}
		$groupe[] = $element1;
		$groupe[] = $element2;
		$groupe[] = array_shift($lot1);
		$groupe[] = array_shift($lot2);
		$element1 = array_shift($lot1);
		$element2 = array_shift($lot2);
	}
	
	//
	$groupe[] = $element1;
	$groupe[] = $element2;
	$recuperation = ($element1 > $element2) ? "lot1" : "lot2";
	for ($i = 0; $i < sizeof($groupe); $i++) {
		${$recuperation}[] = $groupe[$i];
	}
	
	//
	if (empty($lot1)) {
		$fin = 2;
		break;
	} elseif (empty($lot2)) {
		$fin = 1;
		break;
	}
}

/* Une partie du code a été supprimé,
affichant des messages différents selon
la valeur de $fin */

if ($fin < 4) {
	$total += $tour;
	if ($min === 0) {
		$min = $tour;
	}
	if ($min > $tour) {
		$min = $tour;
	}
	if ($max < $tour) {
		$max = $tour;
	}
}
}
echo "Min : $min<br>";
echo "Max : $max<br>";
echo "Moyenne : ".ceil($total/$moyenne)."<br>";;
echo "Excès : $exces";
avatar« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »

Legion, geth trolleur à portée galactique
Posté le 29/07/2015 à 14:53 Membre depuis le 24/04/2009, 2561 messages
./34 je te propose cette version légèrement revisitée grin
static public string PrependProtocol(string urlString) {
    string protocolString = new string(Array.Reverse("http://".toCharArray()));
    CharEnumerator charEnumerator = 
          protocolString.GetEnumerator();
    while (charEnumerator.MoveNext())
    {
        char padleftChar = charEnumerator.Current;
        urlString = urlString.PadLeft(urlString.Length + 1, padleftChar);
    }
    return urlString;
}