Inspiré par ce commentaire ...
Merci aux utilisateurs Step Hen , Wheat-Wizard et Dennis pour m'avoir aidé à solidifier les spécifications de ce défi avant de le poster!
Ceci est le fil du voleur! Pour le fil des flics, allez ici
Dans ce défi , vous êtes chargé d'exécuter du code qui fait en sorte que votre langage ne réponde plus à nos critères d'être un langage de programmation. Dans ce défi, cela signifie faire en sorte que la langue ne puisse plus ...
Prendre l'entrée et la sortie numériques
Additionnez deux nombres ensemble
Testez si un certain nombre est un nombre premier ou non.
C'est un défi de flics et de voleurs , où il y a deux défis différents avec deux objectifs différents: Les flics vont essayer d'écrire du code qui rend le langage principalement inutilisable, et le voleurs vont essayer de trouver la solution cachée qui permet aux flics pour récupérer leur langue.
Les flics écriront deux extraits de code:
Celui qui rend leur langage pratiquement inutilisable, par exemple en supprimant les fonctions intégrées pour effectuer des opérations d'entrée / sortie et numériques. Ce code n'est pas autorisé à planter ou à quitter. Il devrait être possible d'ajouter du code à la fin de cet extrait, et ce code sera évalué . Et
Un extrait de code qui prend deux nombres en entrée, les additionne et génère leur somme. Cet extrait doit toujours fonctionner correctement même après avoir exécuté le premier extrait. Lorsque les deux extraits sont combinés ensemble, ils doivent former un programme complet qui ajoute deux nombres ou définir une fonction qui ajoute deux nombres. Cet extrait de code s'appuiera probablement sur un comportement obscur et sera difficile à trouver.
Les flics choisiront également n'importe quelle méthode standard d'entrée et de sortie . Cependant, ils doivent révéler exactement le format (entrée et sortie) qu'ils utilisent. Pour que vous puissiez cracker leur réponse, vous devez suivre le même format d'entrée / sortie, sinon votre crack ne compte pas.
Une réponse de flics révélera toujours
Le premier extrait (évidemment pas le second).
Langue (y compris la version mineure, car la plupart des soumissions s'appuieront probablement sur d'étranges cas marginaux)
Format IO, y compris s'il s'agit d'une fonction ou d'un programme complet. Les voleurs doivent utiliser le même format pour être un crack valide.
Tout cas de bord étrange requis pour que leur réponse fonctionne. Par exemple, ne fonctionne que sur Linux ou nécessite une connexion Internet .
En tant que voleur, vous devez regarder l'une des soumissions des flics et tenter de la casser. Vous pouvez le casser en écrivant tout extrait valide qui pourrait fonctionner comme l'extrait 2 (en ajoutant deux nombres ensemble après que la langue est rendue inutilisable). Il n'est pas nécessaire que ce soit le même extrait que le flic a écrit à l'origine. Une fois que vous avez une réponse craquée, postez votre code comme réponse sur ce fil et postez un lien vers votre réponse en tant que commentaire sur la réponse du flic. Ensuite, ce message sera modifié pour indiquer qu'il a été craqué.
Voici un exemple. Pour le premier extrait, vous pouvez voir le programme python 3 suivant comme une réponse des flics:
Python 3
print=None
Prend l'entrée de STDIN et la sortie vers STDOUT
Un deuxième extrait valide peut être
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Ceci est valide car il prendra deux nombres en entrée et affichera leur somme même si vous joignez les deux extraits, par exemple
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
C'est une fissure valable à leur réponse.
Si la réponse d'un policier reste non fissurée pendant une semaine entière, il peut modifier son deuxième extrait de code et indiquer que sa réponse est désormais sûre. . Une fois qu'il est modifié pour être sûr, vous ne pouvez plus tenter de le casser. S'ils ne le modifient pas comme sûr, vous pouvez continuer à essayer de le casser jusqu'à ce qu'ils le fassent.
Le gagnant du fil du voleur est l'utilisateur qui a obtenu le plus de réponses, le bris d'égalité étant le moment où il a atteint N fissures. (donc si deux utilisateurs différents ont chacun 5 fissures par exemple, l'utilisateur qui a affiché sa 5ème fissure en premier est le gagnant) Après un laps de temps suffisant, j'accepterai la réponse du gagnant avec le plus de votes.
S'amuser!
Clarifications des règles
Le premier extrait doit s'exécuter correctement sans prendre aucune entrée . Il peut produire ce que vous voulez et cette sortie sera ignorée. Tant que l'extrait est terminé, le deuxième extrait s'exécute correctement.
Le deuxième extrait doit en fait être exécuté pour que votre réponse soit valide. Cela signifie une réponse comme
import sys sys.exit()
n'est pas valide car il ne rompt pas la langue. Il s'arrête simplement.
Après avoir été en sécurité, votre score est le nombre d'octets des deux extraits .
Cela remonte à Veuillez révéler tout cas de bord étrange requis pour que votre réponse fonctionne ... Votre soumission doit contenir suffisamment d'informations avant d' être révélée pour être reproductible après avoir été révélée. Cela signifie que si votre réponse devient sûre, puis vous modifiez dans: Voici ma réponse. Oh ouais, BTW cela ne fonctionne que si vous l'exécutez sur Solaris, blagues sur vous! votre réponse n'est pas valide et sera supprimée et ne sera pas considérée comme éligible pour gagner.
Le deuxième extrait est autorisé à se bloquer après la sortie de la somme. Tant que la sortie est toujours correcte (par exemple, si vous choisissez de sortir vers STDERR, puis que vous obtenez un tas d'informations sur les plantages, cela n'est pas valide)
Classement
Voici une liste de chaque utilisateur avec au moins une fissure, triée par score puis par nom (alphabétique). Si vous soumettez un crack, veuillez mettre à jour votre score en conséquence.
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
qui était dans le champ d'application ... Vous pouvez également lireSystem.in
à ce stade, car il n'est pas encore fermé.