C'est le fil des voleurs. Le fil des flics est ici .
Votre défi est de casser la soumission d'un flic en trouvant une entrée qui la stoppe. Vous n'avez pas à chercher pourquoi, ni toutes les entrées qui la bloquent s'il y en a plus d'une, ou l'entrée que le flic avait l'intention de faire, une seule entrée suffira.
Une fois que vous avez déchiffré une soumission, publiez un lien vers celle-ci dans un commentaire ou modifiez-la dans la publication du policier. Vous pouvez également marquer votre soumission pour qu'un mod l'édite dans le message du flic. Aussi, postez l'entrée utilisée et un lien vers le poste du policier dans une réponse de ce fil. Le voleur qui craque le plus de soumissions gagne.
Plusieurs personnes peuvent afficher des fissures dans la même soumission de flic, tant qu'elles sont différentes.
(Si SE a converti votre réponse dupliquée en commentaire, vous souhaiterez peut-être voter sur cette demande de fonctionnalité )
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.innerText = 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éponses:
Malbolge, poignée de porte
Essayez-le en ligne (Merci Dennis !)
Entrée pour Windows:
F_⌠1234567890
Entrée sur un système Linux utilisant ISO-8559-1:
F_ô1234567890
Le cœur du fonctionnement du programme Malbolge est qu’il dépend d’un comportement de l’interprète Malbolge qui provoque une boucle infinie s’il rencontre une instruction n’étant pas comprise entre 33 et 126. Le programme a été construit de sorte que votre entrée vous permette de modifier. une seule instruction.
J'ai modifié l'interprète pour vider l'état de la mémoire du programme au début de l'exécution et également pour produire un code source "normalisé" qui se présente sous la forme d'une liste de codes op qui seront exécutés lors de l'exécution du programme. Avec cette information, vous pouvez (lentement) déterminer que même si le programme a pris 13 entrées, seules les 1re et 3e entrées sont réellement importantes.
En parcourant le code normalisé et le vidage de la mémoire (et une touche d'aide du débogueur), j'ai conçu ce qui suit:
Où se
op
trouve le "op" dit tritwise décrit dans la spécification. En utilisant ces informations, vous pouvez écrire un programme simple qui itère sur les entrées possibles (0 à 255) et trouve toutes les solutions qui répondent aux critères ci-dessus. J'avais trouvé 2219 solutions possibles, dont certaines ne fonctionneraient probablement pas (vous ne pouvez pas saisir les caractères requis). Plus précisément, les entrées ci-dessus sont basées sur la solution:(Input 1 = 70, Input 3 = 244)
la source
F_ô
au fait.JavaScript (dans le navigateur)
C'est de la fausseté, étonnamment
Edit: pourquoi est la
document.all
fausseté ?la source
JS (ES6), Juan Tonina
A pris un peu de chercher
Object.is
pour trouver. Fondamentalement,+0 === -0
depuis les===
vérifie comme des nombres et0
est fini, maisObject.is
voit+0
et-0
comme des objets différents. Flic très intelligent :)Essayez-le en ligne!
la source
Python, Siphor
Nous redéfinissons simplement l'égalité pour qu'elle se comporte exactement comme il se doit pour que le programme se termine.
la source
__eq__
àraise
...0
: pclass A:__eq__=lambda s,o:0
etf(A())
fait le travail.Braingolf
N'importe quel nombre inférieur à celui qui
0
fonctionne.Essayez-le en ligne!
la source
PHP, Sisyphe
(-0[0)> deal with it=1
La fonction parse_str modifie les espaces et les autres caractères en soulignés. Si vous mettez un [utilisé pour le délimiteur de tableau sans fermer, cela le change en trait de soulignement mais a pour effet de ne pas traduire les espaces suivants (je ne sais pas pourquoi).
Essayez-le en ligne!
la source
JavaScript (Node.js), Adnan
[]
et[]
semblent fonctionner. J'ai essayé un tas d'entre eux , y comprisnull
,undefined
,NaN
...[] >= [] && [] <= [] && [] != []
évalue à vrai.Morale de l'histoire: JavaScript est bizarre .
Essayez-le en ligne!
la source
JavaScript (ES7), Arnauld
la norme
"8e7"
est la solutionPirater
Pas besoin de calculer ce nombre, nous pouvons redéfinir la
length
propriétéCela met
~x/x.length**3!=-2962963
àfalse
Priorité des opérateurs
~
bitwise n'est pas le premier** exponentiation
seconde/ division
troisièmela source
Bash, Veedrac
Essayez-le en ligne!
De la
ld.so(8)
page de manuel:la source
/bin/yes
, Mais c'est possible, auquel cas cette variable d'environnement serait ignorée.Mathematica, JungHwan Min
Aucune idée si cette solution est prévue, mais elle passe dans une expression qui n'est pas évaluée tant qu'elle n'est pas référencée comme étant
#
à l'intérieur de la fonction, ce qui la fera revenir immédiatement de la fonction sans effectuer d'évaluation supplémentaire. Vous pouvez voir que la fonction est réellement appelée (au lieu de simplement lever l'exception avant même d'appeler la fonction) en modifiant la fonction en:Ce qui va en effet imprimer le
stop
avant de jeter l'erreur.la source
Unevaluated[Abort[]]
, mais c'est la même chose.)Rétine , PunPun1000
Essayez-le en ligne!
Toute entrée avec n
1
s où la somme des diviseurs de n + 1 est égale à n + 1 devrait fonctionner.la source
Rubis
sans nouvelle ligne.
3.send('exit')
n'est sûrement pas égal à5
, mais il exécuteKernel#exit
:Il est possible d'appeler
exit
à3
cause :abort
fonctionne également:la source
JavaScript (Node.js) , programmer5000
Déjà fissuré, mais le mien est légèrement différent :) N'a pas assez de représentant pour commenter dans les flics. Aussi, n'hésitez pas à éditer pour corriger le formatage, mon premier post ici.
Principalement, je mets
__proto__
égal à une fonction qui jette. Tiré de regarder la page de Mozilla pour proto. (Désolé, faible représentant, impossible de poster un lien.)Essayez-le en ligne!
EDIT: Vous avez un représentant, alors voici le lien: Mozilla
__proto__
la source
Bash, Sisyphe
Heureusement,
kill
un shell est intégré.Essayez-le en ligne!
la source
R, Jarko Dubbeldam
Si vous apportez quelque chose pour la première fois, signalez toutes les erreurs de format que j'ai commises.
Je suis sûr que c'est valide. Juste une reformulation de is.list (), non?
la source
Javascript, programmeur5000
Longueur maximale de la chaîne
Utilise une chaîne d'une longueur inférieure à celle prise en charge par votre moteur. Lors de l'ajout
"h"
à cette chaîne, une erreur est générée. Essayez-le en ligne!Bloc d'origine croisée
Fortement inspiré par la réponse de @ jadkik94 , mais fonctionne partout. Crée une iframe d’origine croisée, puis passe l’une
.contentWindow
de ces iframe. Cela échoue lorsque la fonction tente d'utiliser la valeur en raison de la sécurité de l'origine croisée.Valeur primitive
Variante des
.toString()
réponses - cela utilise simplement à latoPrimitive
place. Il renvoie un objet en tant que valeur primitive, ce que Javascript ne sait pas manipuler (il génère donc une erreur). Essayez-le en ligne!la source
Node.js, Adnan
{}
et{}
ou 2 objets sont les deux entrées. Je ne comprends même pas comment cela fonctionne.Voici l'étonnante logique de comparaison d'objet de JS:
la source
JavaScript (Babel Node) , Conor O'Brien
(Repost, mis accidentellement dans des flics.) Je ne suis pas sûr de ce qui était prévu, mais des décimales positives qui ne sont pas énormes semblent fonctionner.
Aussi, je suppose que je ne peux toujours pas commenter dans Cops.
Essayez-le en ligne!
la source
Javascript (NOT node.js) , programmeur5000
Cela ne peut pas être ajouté car il crée un objet qui n'a pas de chaîne toString, car un nouveau
Set
prototypage n'est pas inhérent à partir deObject
.contribution:
Essayez-le en ligne!
la source
Bash 4.2, Dennis
Clairement, ce n’est pas la solution recherchée, car cela fonctionne également sur les nouvelles versions.
Essayez-le en ligne.
la source
Octave , Stewie Griffin
Contribution:
exit
Raisonnement:
input
évalue tout ce qui est entré.exit
quitte le programme.Essayez-le en ligne!
la source
Python 2, Foon
Ce qu'il dit sur l'étain, fondamentalement.
Essayez-le en ligne.
la source
Python 3 (CPython), Veedrac
Essayez-le en ligne!
la source
Python 3, Siphor
C'était amusant. Nous devons faire passer le
type(x) != str
chèque, nous devons donc contrôler la valeur de retour detype()
. Nous devons remplacer l'__class__
attribut et le remplacer par un objet personnalisé, qui s'étendtype
, la__ne__
méthode étant remplacée par celle renvoyant toujours la valeur false. Cela le fait passer la vérification de type, mais la recherche échouera car ceo
n'est pas une str.la source
C #, TheLethalCoder
Ou toute autre classe nullable.
la source
Rétine
Une nouvelle ligne suivie d'un
1
travaux. Je l'ai trouvé tout de suite.Essayez-le en ligne
la source
JS (ES6)
Tout caractère avec un code inférieur à 10 devrait fonctionner; J'ai utilisé un
tab
personnage ci-dessus, que SE convertit en espaces.la source
f(<tab>)
c'est une syntaxe valide (entrée vide) et nous aurions à faire la différence entref(1)
et def("1")
toute façonJavaScript (ES6), programmeur5000
Essayez-le en ligne!
La condition était
!x||x>="\n"
. N'importe quel caractère unique dans une table ASCII avec un code inférieur à celui\n
qui fonctionnera.la source
queues, step poule
Tout ce qui est suivi d'un espace et d'un entier positif. L'espace sépare les entrées et l'entrée supplémentaire devient le numéro du terme à afficher.
Essayez-le en ligne!
la source
a 1
! Vous m'avez ninja: /MATL , Luis Mendo (pas la solution prévue)
L'entrée vide arrête le programme et corrige l'erreur suivante:
Essayez-le en ligne!
la source