C'est le fil des flics. Le fil des voleurs est ici .
Votre défi consiste à créer un programme qui fonctionne à l'infini sans arrêter 1 , à moins d'obtenir un ou des intrants particuliers 2 . S'il reçoit cette entrée, il doit se terminer dans un temps fini 3 . Il s’agit d’un code-golf . Ainsi, la réponse la plus courte qui n’a pas été découverte par un voleur dans la semaine qui suit la publication est gagnante. Une fois la semaine passée, veuillez marquer votre réponse comme étant sans danger et montrer l'entrée interrompue (en a > ! spoiler quote
). Si un voleur casse votre soumission, marquez-la comme étant fissurée et montrez l'entrée interrompue (en a > ! spoiler quote
).
Les soumissions sont préférables être exécutables et craquables sur TIO . Les soumissions non exécutables ou craquables sur TIO sont autorisées, mais veuillez inclure les instructions pour les télécharger / les exécuter.
Assurez-vous que votre saisie est déterministe et uniforme pour toutes les séries. Voir ce méta post pour plus de détails.
S'il vous plaît, ne "mettez pas en œuvre RSA" ou quoi que ce soit qui soit méchant pour les voleurs. Utilisez des langages et des fonctionnalités obscurs, sans chiffrement ni hachage ennuyeux. Je ne peux pas imposer cela avec des règles, mais vous pouvez vous attendre à des votes critiques torrentiels si tout ce que vous faites est sha(input) === "abcd1234"
.
1 En supposant que l'ordinateur ne soit pas éteint, ne tombe pas en panne, ne soit pas englouti par le soleil, surchauffe sous l'effet de la chaleur causée par la mort de l'univers ou atteigne le délai d'expiration TIO des années 60.
2 Le programme doit s’arrêter sur au moins une entrée. Tant qu'il reste en boucle sur une entrée et s'arrête sur une autre, cela fonctionne.
3 Ce délai doit être <60 secondes pour que le code puisse être testé sur TIO.
Vous recherchez des soumissions non fissurées?
fetch("https://api.stackexchange.com/2.2/questions/135363/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>
la source
R
erreurs immédiatement, sans même entrer dans la fonction à craquer. Je dirais que cela ne compte pas comme mettant réellement fin à la fonction.Réponses:
Malbolge, 128 octets, fissuré par KBRON111
S'amuser!
(Oui, j'ai appris Malbolge rien que pour ça. Oui, il a fallu un temps ridiculement long pour enfin arriver à travailler. Et oui, cela en valait la peine.)
Enveloppé, afin que vous puissiez le voir dans son intégralité, euh, "gloire":
J'ai utilisé cet interprète pour le tester; Je ne sais pas si cela compte, mais j'ai pensé préciser au cas où.
la source
6
et le troisième est l' un des quatre:!
,#
,/
et-
. Mais la combinaison ne semble pas résoudre le problème. Je l'ai mis ici, peut-être que quelqu'un de plus intelligent trouve une solution. Si quelqu'un veut, je posterai demain comment je suis arrivé à ces entrées. EDIT: Maintenant que j'y réfléchis, mon programme que j'ai écrit dans le but de faire de l'ingénierie inverse peut avoir un bogue, et la première entrée peut être autre chose que6
. Le troisième personnage est toujours là.JavaScript (ES6), 17 octets, fissuré
Sur TIO, comme je ne sais pas comment faire Node.js readline sur TIO, il suffit de coller l’entrée dans l’appel de la fonction. Ceci est évident pour quiconque le sait et pas pour ceux qui ne le savent pas.
Essayez-le en ligne!
Répondre:
la source
NaN == NaN
est faux dans de nombreuses langues autres que JavaScript. Je n'appellerais pas cela une "bizarrerie linguistique".NaN != NaN
est une caractéristique des nombres en virgule flottante+
oumax()
, mais la plupart des gens s'en moquent: P)JS (ES6), 67 octets ( fissuré )
Je pense que je ne me suis pas trompé, il pourrait avoir une solution facile que je n'ai pas vue.
J'apprécie vos commentaires, ceci est l'un de mes premiers messages
la source
x
ety
sont finis, mais je ne vais pas éditer car il était déjà fissuré. Aurait pu être 38 octetsPython 3.4, (40 octets) fissuré
la source
x==x
dans une variable appeléeto_be
, afin que vous puissiez faire une référence à Hamlet.Javascript (PAS node.js)
La soumission souhaitée n'utilise pas de lancer.
Indice pour la fissure désirée:
Fissure désirée:
la source
throw
(donne toujours une erreur cependant)throw
, je crois pour de vrai cette fois car Grant Davis n'a pas fonctionné pour moi. ToujoursTypeError
s.x=>{try{for(;x+"h";)}catch(e){for(;;)}}
sorte que toute erreur aboutisse à une boucle infinie. Les erreurs de fonction prototype manquantes (ou toute erreur) entraîneront une boucle infinie.C (gcc) , 75 octets fissuré
Essayez-le en ligne!
Je n'ai jamais posté dans un flics-n-robbers auparavant. Espérons que ce n'est pas trop évident.
Solution:
la source
JavaScript (dans le navigateur), 79 octets fissuré
Vous devriez l'exécuter dans un navigateur récent (comme le dernier Firefox ESR, le dernier Firefox, le dernier Chromium). Les vieux navigateurs (comme Netscape 2, IE 4) ne comptent pas.
Remarque: arrêté par le navigateur en raison de l'expiration du délai, ne comptez pas l'arrêt ici.
Veillez toujours à ne pas bloquer votre navigateur lorsque vous testez ces codes, et à voler heureux ^ _ ^
la source
setTimeout
tant que paramètre ne fonctionne pas.var key=(()=>{setTimeout(args);return null})()
et alorscrackme(key)
PHP (craqué par Vicente Gallur Valero), 65 octets
Essayez-le en ligne!
Plus dur que cela puisse paraître. Édité pour être possible sur TIO, au prix de plusieurs octets. Prend la saisie via
$argv[1]
.la source
Husk , 5 octets fissuré
Essayez-le en ligne!
Un peu d'explication, car ce langage est encore assez récent:
←ø
récupère le premier élément d'une liste vide: il retourne une valeur pouvant prendre n'importe quel type, qu'il s'agisse d'un type concret ou d'une fonction, qui sera ensuite appliquée à l'entrée.∞
crée une liste infinie composée de copies du résultat précédent (ce qui signifie dans la plupart des cas une liste de zéros infinis).↑ε
prend des éléments de cette liste tant qu'ils sont "petits", c'est-à-dire que leur valeur absolue est ≤1; sur une liste infinie de zéros, cela ne s'arrêtera jamais.la source
Braingolf , 4 octets ( fissuré )
Essayez-le en ligne!
Suuuper facile, mais
voyons combien de temps cela prendRépondre:
la source
Ruby , 31 octets ( fissuré par Eric Duminil )
Essayez-le en ligne!
Notez que ceci doit être exécuté dans un environnement où il n'y a pas de fin de ligne dans le résultat
gets
, sinon il est impossible de l'arrêter (je pense) car tout ce qui se termine dans une nouvelle ligne entraînera une erreur et se portera au secours.la source
3.methods
renvoie5
ou quitte la boucle.5
de penser que la bonne réponse impliquerait la fonction qu'il remplissait ...Bash, 25 octets ( fissuré )
Inspiré par Dennis '. Essayez-le en ligne.
la source
Bash 4.2, 14 octets ( fissuré )
Essayons cela à nouveau.
Cela ne fonctionne pas sur TIO, qui utilise Bash 4.3. La saisie s'effectue via des arguments de ligne de commande.
Sous Linux et avec gcc installé, Bash 4.2.53 peut être téléchargé et construit comme suit.
la source
Rétine , 78 octets ( fissuré ) ( fissuré avec la solution prévue )
C'était assez amusant à écrire, j'espère que c'est amusant à craquer
Essayez-le en ligne!
Craquelé avec une solution non souhaitée et la solution recherchée à une minute d'intervalle. Un posté en premier, un en premier commenté.
Solution envisagée:
la source
Node.js, 23 octets ( fissuré )
Solution Grant Davis
Ma solution
la source
Java 8, 99 octets, fissuré
C'est un lambda du type
Consumer<String>
.Ungolfed:
Essayez-le en ligne! (notez que le programme de test plantera sur une entrée vide, mais pas le lambda lui-même!) (utilisez également 'arguments' et non 'input' sur TIO, car le programme de test utilise des arguments, pas STDIN)
Réponse prévue:
la source
Bash 4.2, 10 octets ( fissuré )
Cela ne fonctionne pas sur TIO, qui utilise Bash 4.3. La saisie s'effectue via des arguments de ligne de commande.
Sous Linux et avec gcc installé, Bash 4.2.53 peut être téléchargé et construit comme suit.
la source
Java: 1760 ( fissuré )
Je pense que c'est trop méchant de jouer au golf, alors j'ai simplement dissimulé les noms des variables et les ai rendues «désordonnées». En fait, c'est tellement méchant que je vais poster des allusions au fil du temps, juste pour que je puisse voir que tout est fissuré.
Astuce 1: cela a théoriquement un nombre infini d'entrées valides, mais il y en a une qui est la plus «correcte»
Essayez-le en ligne!
la source
Braingolf , 18 octets fissuré
Essayez-le en ligne!
Liiiitle un peu plus difficile que le dernier, je vais commencer à écrire un vrai après cela
la source
i
ne fonctionne pas.£
). Et pourquoi ne-1
travaille pas ? C'est délicat.JavaScript (ES7), 41 octets ( piraté et fissuré )
Edit: corrigé pour l'empêcher de planter lorsqu'il ne reçoit aucune entrée (merci à @totallyhuman de l'avoir remarqué)
Plusieurs solutions existent probablement, mais celle attendue est relativement simple.
Solution envisagée:
la source
Bash + Utils (fissuré par Dennis), 74 octets
J'espère que vous apprécierez tar, car c'est le seul utilitaire que vous puissiez utiliser.
Essayez-le en ligne!
Fissure prévue
la source
Mathematica,
3626 octets ( fissuré )Une boucle très courte
#0[#;∞]
qui va juste garder lui - même en cours d' exécution à plusieurs reprises jusqu'à ce qu'il tombe en panne noyau ... (Le$IterationLimit
est juste pour vous assurer que vous êtes coincé à jamais pour la plupart des entrées).Essayez-le sur Wolfram Sandbox! - Si vous êtes bloqué dans une boucle infinie, vous pouvez attendre que le délai imparti soit écoulé ou appuyer sur l'icône en forme de carré "abandonner l'évaluation" à gauche du titre du cahier
(unnamed)
.REMARQUE : cette fonction modifie vos
$IterationLimit
paramètres.la source
JavaScript (Node.js), 18 octets ( fissuré )
Essayez-le en ligne! Répondre:
la source
Symbol()
travaillerait.C #, 118 octets ( fissuré )
Je ne m'attends pas à ce que cela dure trop longtemps, mais c'est plus gênant qu'il n'y paraît.
la source
C, 140 octets ( fissuré )
Espérons qu’il n’y aura pas trop d’entrées qui ne s’arrêteront pas, même si elles sont proches de l’intention voulue, mais nous allons voir.
Essayez-le en ligne!
la source
JavaScript (ES7), 73 octets ( fissuré !)
Solutions non souhaitées: force brute. Le crack souhaité implique des maths.
Notez qu'il existe de nombreuses solutions (4194304) en raison de modulo.
la source
brainfuck , 170 octets craqués!
Essayez-le en ligne!
la source
nul
à un brainfuck. En passant, vous pouvez supprimer deux premiers>
octets de sauvegarde.JavaScript ES6 (Node.js> = 6.0) , 326 octets (Sécuritaire)
Bien plus simplifié que mon autre défi , je n'essaie plus de brouiller l'approche de la solution, ce qui m'a fait économiser beaucoup d'octets. Cette fois,
process.kill()
ça ne marchera pas.Essayez-le en ligne!
la source
Swift 3, 14 octets ( fissuré )
Pour résoudre ce problème, mettez votre code avant ou après cette déclaration.
fatalError()
, etc. avant que cela ne compte.la source
ambiguous semantics
me crie dessus .cQuents , 2 bytes ( Cracked 1 ) ( Cracked 2 )
Notez que cela atteindra rapidement la limite de sortie de 128 Ko sur TIO, ce qui l’arrêtera, mais lorsqu’elle sera exécutée localement, elle restera en boucle indéfiniment, sauf sur l’entrée qui le casse. Trouver cette entrée devrait être assez facile. Jusqu'à ce que vous fassiez, vous
:A
continuerez à tirer sa langue triangulaire à vous.Notez également que cela devrait être juste,
A
mais j’ai rompu les modes implicites la nuit dernière. Sur les anciennes versions d'interprèteA
fonctionnerait bien.Fissures:
Essayez-le en ligne!
la source