Este es el hilo de los ladrones. El hilo de la policía está aquí .
Su desafío es descifrar el envío de un policía al encontrar una entrada que lo detenga. No tiene que averiguar por qué, o todas las entradas que hacen que se detenga si hay más de una, o la entrada que pretendía el policía, solo una entrada servirá.
Una vez que haya descifrado un envío, publique un enlace en un comentario o edítelo en la publicación del policía. También puede marcar su envío para un mod para editarlo en la publicación del policía. Además, publique la entrada utilizada y un enlace a la publicación del policía en una respuesta en este hilo. El ladrón que descifra la mayor cantidad de envíos gana.
Varias personas pueden publicar grietas en el mismo envío de policía, siempre que sean diferentes.
(Si SE convirtió su respuesta duplicada en un comentario, puede votar esta solicitud de función )
¿Está buscando presentaciones sin descifrar?
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>
fuente
Respuestas:
Malbolge, pomo de la puerta
Pruébelo en línea (¡Gracias Dennis !)
Entrada para Windows:
F_⌠1234567890
Entrada en un sistema basado en Linux usando ISO-8559-1:
F_ô1234567890
El núcleo de cómo funcionaba el programa Malbolge es que dependía de un comportamiento del intérprete Malbolge que causa un bucle infinito si encuentra alguna instrucción que no esté entre 33 y 126. El programa fue construido de tal manera que su entrada le permitiría modificar Una sola instrucción.
Modifiqué el intérprete para volcar el estado de la memoria del programa al comienzo de la ejecución y también para producir código fuente 'normalizado' que toma la forma de una lista de códigos operativos que se ejecutarán durante la ejecución del programa. Con esa información, podría (lentamente) determinar que, aunque el programa tomó 13 entradas, solo la primera y la tercera entradas realmente importaron.
Mirando el código normalizado y el volcado de memoria (y un toque de ayuda del depurador) ideé lo siguiente:
¿Dónde
op
está el llamado tritwise "op" que se describe en la especificación? Con esta información, puede escribir un programa simple que repita las posibles entradas (0 a 255) y encuentre todas las soluciones que cumplan con los criterios anteriores. Encontré 2219 posibles soluciones, algunas de las cuales probablemente no serán soluciones de trabajo (no puede ingresar los caracteres requeridos). Específicamente, las entradas anteriores se basan en la solución:(Input 1 = 70, Input 3 = 244)
fuente
F_ô
por cierto.JavaScript (en el navegador)
Esto es falso, sorprendentemente
Editar: ¿por qué es
document.all
falsa ?fuente
JS (ES6), Juan Tonina
Tomó un poco de mirar
Object.is
para encontrar. Básicamente,+0 === -0
ya que los===
comprueba como números, y0
es finito, peroObject.is
ve+0
y-0
como objetos diferentes. Policía muy inteligente :)Pruébalo en línea!
fuente
Python, Siphor
Simplemente redefinimos la igualdad para que se comporte exactamente como se requiere para que el programa finalice.
fuente
__eq__
queraise
...0
: pclass A:__eq__=lambda s,o:0
yf(A())
hace el trabajo.Braingolf
Cualquier número menor que
0
obras.Pruébalo en línea!
fuente
PHP, Sísifo
(-0[0)> deal with it=1
La función parse_str cambia los espacios y otros caracteres a guiones bajos. Si coloca un [usado para delimitador de matriz sin cerrar, lo cambia a un guión bajo pero tiene el efecto de no traducir los siguientes espacios (no sé por qué).
Pruébalo en línea!
fuente
JavaScript (Node.js), Adnan
[]
y[]
parece funcionar Probé un montón de ellosnull
, incluyendoundefined
,NaN
...[] >= [] && [] <= [] && [] != []
se evalúa como verdaderoMoraleja de la historia: JavaScript es raro .
Pruébalo en línea!
fuente
JavaScript (ES7), Arnauld
Estándar
"8e7"
es la soluciónCortar a tajos
No es necesario calcular este número, podemos redefinir la
length
propiedadEsto se establece
~x/x.length**3!=-2962963
enfalse
Prioridad de los operadores
~
bit a bit no es el primero** exponentiation
segundo/ division
tercerofuente
Bash, Veedrac
Pruébalo en línea!
Desde la página del
ld.so(8)
manual:fuente
/bin/yes
, Pero eso es posible, en cuyo caso se ignoraría este entorno.Mathematica, JungHwan Min
No tengo ni idea de si esta es la solución prevista, pero pasa una expresión que no se evalúa hasta que se hace referencia a ella como
#
dentro de la función, lo que hará que vuelva inmediatamente de la función sin realizar ninguna evaluación adicional. Puede ver que la función se llama realmente (en lugar de simplemente lanzar la excepción incluso antes de invocar la función) cambiando la función a:Lo que efectivamente imprimirá
stop
antes de lanzar el error.fuente
Unevaluated[Abort[]]
, pero lo mismo.)Retina , PunPun1000
Pruébalo en línea!
Cualquier entrada con n
1
s donde la suma de los divisores de n + 1 sea igual a n + 1 debería funcionar.fuente
Rubí
Sin nueva línea.
3.send('exit')
seguramente no es igual a5
, pero ejecutaKernel#exit
:Es posible llamar
exit
el3
porque :abort
también funciona:fuente
JavaScript (Node.js) , programador 5000
Ya está roto, pero el mío es ligeramente diferente :) No tengo suficiente representante para comentar en la policía. También siéntase libre de editar para corregir el formato, mi primera publicación aquí.
Principalmente pongo
__proto__
igual a una función que arroja. Tomado de mirar la página de Mozilla para proto. (Lo siento, baja representación, no puedo publicar un enlace).Pruébalo en línea!
EDITAR: Tengo un representante, así que aquí está el enlace: Mozilla
__proto__
fuente
Bash, Sísifo
Afortunadamente,
kill
es una concha incorporada.Pruébalo en línea!
fuente
R, Jarko Dubbeldam
La primera vez que contribuyes con algo, así que menciona cualquier error que haya cometido en el formato.
Estoy bastante seguro de que esto es válido. Solo una nueva versión de is.list (), ¿verdad?
fuente
Javascript, programador 5000
Longitud máxima de la cuerda
Utiliza una cadena con una longitud inferior a la que admite su motor. Al agregar
"h"
a esta cadena, se genera un error. Pruébalo en línea!Bloque de origen cruzado
Muy inspirado por la respuesta de @ jadkik94 , pero funciona en todas partes. Crea un iframe de origen cruzado, luego pasa el
.contentWindow
de dicho iframe. Esto falla cuando la función intenta usar el valor debido a la seguridad de origen cruzado.Valor primitivo
Variante de las
.toString()
respuestas: esto solo se usa en sutoPrimitive
lugar. Devuelve un objeto como valor primitivo, que Javascript no sabe cómo manejar (por lo que arroja un error). Pruébalo en línea!fuente
Node.js, Adnan
{}
y /{}
o cualquier 2 objetos son las dos entradas. Ni siquiera entiendo cómo funciona esto.Aquí está la increíble lógica de comparación de objetos de JS:
fuente
JavaScript (Nodo Babel) , Conor O'Brien
(Volver a publicar, poner accidentalmente a la policía.) No estoy seguro de lo que se pretendía, pero los decimales positivos que no son enormes parecen funcionar.
También supongo que todavía no puedo comentar en policías.
Pruébalo en línea!
fuente
Javascript (NO node.js) , programador 5000
Esto no se puede agregar porque crea un objeto que no tiene toString porque un nuevo
Set
no tiene prototipos inherentesObject
.entrada:
Pruébalo en línea!
fuente
Bash 4.2, Dennis
Claramente no es la solución prevista, porque también funciona en bash más nuevos.
Pruébalo en línea.
fuente
Octave , Stewie Griffin
Entrada:
exit
Razonamiento:
input
evalúa lo que sea entrada.exit
sale del programaPruébalo en línea!
fuente
Python 2, Foon
Lo que dice en la lata, básicamente.
Pruébalo en línea.
fuente
Python 3 (CPython), Veedrac
Pruébalo en línea!
fuente
Python 3, Siphor
Esto fue divertido. Necesitamos pasar el
type(x) != str
cheque, por lo que necesitamos controlar el valor de retorno detype()
. Tenemos que anular el__class__
atributo y reemplazarlo con un objeto personalizado, que se extiendatype
, que tiene el__ne__
método reemplazado por uno que siempre devuelve falso. Esto hace que pase la verificación de tipo, pero la búsqueda fallará porqueo
no es un str.fuente
C #, TheLethalCoder
O cualquier otra clase anulable.
fuente
Retina
Una nueva línea seguida de una
1
obra. Lo encontré de inmediato.Pruébalo en línea
fuente
JS (ES6)
Cualquier personaje con un código menor que 10 debería funcionar; He usado un
tab
personaje arriba, que SE convierte en espacios.fuente
f(<tab>)
es una sintaxis válida (entrada vacía) y tendríamos que diferenciar entref(1)
y def("1")
todos modosJavaScript (ES6), programador 5000
Pruébalo en línea!
La condición fue
!x||x>="\n"
. Cualquier carácter individual en una tabla ASCII con un código menor que\n
funcionará.fuente
cQuents, Step Hen
Cualquier cosa seguida de un espacio y un entero positivo. El espacio separa las entradas, y la entrada adicional se convierte en el número del término a emitir.
Pruébalo en línea!
fuente
a 1
! Usted me ninja: /MATL , Luis Mendo (no es la solución prevista)
La entrada vacía detiene el programa y muestra el siguiente error:
Pruébalo en línea!
fuente