"Hallo, Welt!" (Cops 'Thread)

16

Das ist der Faden der Bullen. Der Räuberfaden ist da .

Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu schreiben, die mit einer bestimmten Eingabe den genauen String Hello, World!und eine neue Zeile ausgibt. Groß- und Kleinschreibung, Abstand und Zeichensetzung müssen genau sein.

Die Eingabe kann über Standardeingabe, eine Datei oder Befehlszeilen- / Funktionsargumente erfolgen. Die Ausgabe kann über den Rückgabewert, das Schreiben in eine Datei oder die Standardausgabe erfolgen.

Ihr Programm muss Hello, World!für mindestens eine Eingabe drucken . Wenn Ihr Programm die falsche Eingabe erhält (dh die Eingabe, bei der es nicht gedruckt wird Hello, World!), kann es tun, was immer Sie möchten - abstürzen, zufälligen Unsinn drucken, Chuck Norris aufrufen usw.

Sie dürfen keinen Hashing-Algorithmus oder ähnliche Methoden verwenden, um die erforderliche Eingabe zu verdecken.

Einreichungen sollten auf TIO ausführbar und knackbar sein . Einsendungen, die nicht auf TIO ausgeführt oder geknackt werden können, sind zulässig, enthalten jedoch bitte Anweisungen zum Herunterladen / Ausführen.

Nach einer Woche wird diese Herausforderung für zukünftige Cop-Einreichungen geschlossen. Der Gewinner ist der kürzeste Code, der nach einer Woche nicht geknackt wurde ("es" ist der Code, nicht diese Herausforderung). Der Gewinner wird nach zwei Wochen angenommen.

Nachdem eine Woche seit dem Posten vergangen ist, markieren Sie bitte Ihre Antwort als sicher und zeigen Sie die Eingabe (in a > ! spoiler quote). Wenn ein Räuber (vor dem Ende der Woche) Ihre Vorlage knackt, markieren Sie sie bitte als geknackt und zeigen Sie die stoppende Eingabe (in a > ! spoiler quote).

Auf der Suche nach ungerissenen Einsendungen?

fetch("https://api.stackexchange.com/2.2/questions/137742/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>

MD XF
quelle
Sehr ähnlich, aber kein Betrüger.
Weizen-Zauberer
13
Wie ich bereits in der Sandbox sagte, ist dies meiner Meinung nach ein Duplikat der Frage zum Stoppen, da hier stattdessen jede Antwort gepostet werden könnte, wobei Code für und Endlosschleife durch Code zum Drucken von Hallo Welt ersetzt werden. Ich werde noch nicht abstimmen, weil ich hämmern würde, aber ich bin ziemlich überzeugt, dass dies ein Betrug ist.
FryAmTheEggman
5
Fällt natürlich sha3in diese Kategorie, aber wo sonst ziehst du die Grenze? Ich meine, das mod 1e3ist auch eine Hash-Funktion, und ich würde sogar so weit gehen und argumentieren, dass viele der Einsendungen Hash-Funktionen sein werden, da diese Herausforderung im Grunde nach einer solchen verlangt.
Fehler
1
Nach den Antworten, die ich am vergangenen Tag gesehen habe, ist nichts aufgetaucht, was mich überzeugt hätte, dass dies kein Duplikat ist. Ich werde die Polizisten-Herausforderung vorerst schließen. Wenn die Community nicht einverstanden ist, kann sie erneut geöffnet werden. Wenn die Community zustimmt, können sie auch den Räuber-Thread schließen.
FryAmTheEggman
1
@Dopapp das wurde schon besprochen, hier (einige Kommentare gelöscht) und im Chat. Antworten können weder kopiert noch sehr einfach portiert werden, sodass sie keine Duplikate sind.
MD XF

Antworten:

3

Python 3, 191 186 Bytes (SICHER!)

Wie meine vorherige Antwort, jedoch ohne die noob eval-Anweisung, sodass jemand das von mir geschaffene Problem tatsächlich lösen muss.

import sys
from numpy import *
e=enumerate
c='Hello, World!'
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(fromiter(sys.argv[1:],float))])+.01)]for n in[2*i+ord(n)for i,n in e(c)]]))

Führen Sie es nun mit den richtigen Parametern aus, z python3 hw.py 1 2 3


Edit : In der vorherigen Version fehlte ein Komma in "Hello, World!"


Edit 2 : Nur zum Spaß, hier ist eine fast identische Pyth-Version (47 Bytes) des gleichen Codes:

KEJ"Hello, World!"[email protected]*b.t*dk1K0.e+*2kCbJ

Die Eingabe erfolgt aus stdinund erfolgt in Form einer Liste von Argumenten, z[1,2,3]

Ich sehe keinen Grund, eine separate Antwort zu veröffentlichen, denn wenn Sie die Pthyon3-Version knacken, knacken Sie auch die Pyth-Version, auch ohne Pyth zu kennen.


Antworten:

python3 hw.py 10.72800138 13.23008796 19.30176276 16.13233012 18.10716041 0.98306644 8.18257475 19.20292132 10.99316856 -2.15745591 6.01351144 5.45443094 10.41260889

Erklärung des Codes:

''.join()Erstellt die Hallo-Welt-Zeichenfolge aus einem Array von Zeichen aus der Zeichenfolge "Hello, World!". Das Rätsel ist gelöst, wenn diese Angaben sind [0,1,2,3,4,5,6,7,8,9,10,11,12]. Jeder Index wird aus einer Eingabe und den in der Befehlszeile angegebenen Konstanten berechnet. Die Eingänge sind eine hart codierte Serie: [2*i+ord(c) for i,c in enumerate('Hello, World!')]. Die Funtion, die die Eingabe, die Konstanten beziehen, und den Ausgang (indicies) ist folgende: sum([c*cos(x*i) for i,c in enumerate(CONSTANTS)]). Dies ist ein klassisches Modellierungsproblem, bei dem Sie versuchen, Daten an Ihr Modell anzupassen.

In Python zur Lösung kommen:

from scipy import optimize
x = [2*i+ord(c) for i,c in eumerate('Hello, World!')]
y = [0,1,2,3,4,5,6,7,8,9,10,11,12].
# make your function: 13 terms means we can achieve 13 exact outputs
def f(x,a,b,c,d,e,f,g,h,i,j,k,l,m):
    return sum([c*cos(x*i) for i,c in enumerate([a,b,c,d,e,f,g,h,i,j,k,l,m])])
# curve fit
ans,_ = optimize.curve_fit(f,x,y)
# check answer
[round(f(a,*ans),0) for a in x] # should be 0-12

rexroni
quelle
2
Nur für den Fall, dass Sie es nicht wussten, kann literal_eval()das astModul verwendet werden, um Ausdrücke sicher auszuwerten, so dass das print(Code-Injection-Problem nicht funktioniert. Es ist hier wahrscheinlich nicht relevant, aber ich dachte nur, ich würde es erwähnen.
Esolanging Fruit
2
Sind Sie sicher, dass dies gedruckt werden kann Hello, World!? Noch nicht geknackt, aber
Uriel
Oh, du hast recht, es fehlt ein Komma. Ich werde es jetzt korrigieren.
Rexroni
@ Challenger5 danke, das wusste ich nicht.
Rexroni
12

TeX - 38 Bytes geknackt (ish)

Das ist einen Versuch wert, denn ich kann mir nicht vorstellen, dass jemand auf einer Site, der kurze Codestücke schreibt, TeX kennt:

\read16to\x\message{Hello, World!}\bye

Um es auszuführen, sollten Sie sich eine Form von TeX besorgen, die den interaktiven Modus ermöglicht. Speichern Sie dies in einer Datei und führen Sie TeX (oder pdfTeX, XeTeX usw.) darauf aus.

Edit: Ich überlege gerade, diese halb geknackt. Die beabsichtigte Lösung verwendet die Eingabe von stdin, aber die teXnische Eingabe von der Art, wie das Programm aufgerufen wird, ist gültig. Ich füge weitere verschlagene TeX-Antworten hinzu, wenn jemand die beabsichtigte Methode erhält.

Hier ist die beabsichtigte Lösung:

^ C Ia - Der erste Schlüssel ist control-c, was einen Fehler verursacht. Dann drücken Sie I (Großbuchstabe i), um einen Befehl einzugeben. Dann geben Sie ein (oder etwas anderes, das gesetzt werden soll). Normalerweise folgt auf die Nachricht, die als Standardausgabe gedruckt wurde, ein Leerzeichen und dann ein ')'. Wenn Sie etwas eingeben, werden die Schriftinformationen nach der Nachricht ausgegeben. Das bedeutet, dass eine neue Zeile eingefügt wird und das ')' später verschoben wird.

Das mag hintergangen sein, sollte aber immer noch den Spielregeln entsprechen.

Ein Goldmann
quelle
Willkommen bei PPCG. Gute erste Antwort
Евгений Новиков
Wäre es nicht ausreichend tex \ Hello, world!\bye(23 Bytes) zu verwenden?
Werner
@Werner das würde Benutzereingaben ermöglichen?
A Gold Man
Soll das eigentlich geknackt werden? : o
Felix Palmen
3
texnicallyoh Gott.
MD XF
7

> <> , 538 Bytes, Cracked von Rexroni

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a
v   "        "       "
   "l"      "o"  /  "e"
v   "        "     " "
      "   /       "l"/
v    "!"           "
 //   " " "      \
v     \"d"o"   " "    "
      " " "   "o"r"  "!"
v"   "H"       " "    "
"l"   ""
""    "r" "         "
    \  " "l"       "d"  "
v   "     "      "  "  "H"
   "e"         /","     "
v " " "     "  " "
 "e" "W"  /"d""l"
v " " "     "  "      "
   "H"               "!"
v   "                 "
                        v
>>"Hello world?"       >o<
                        ^

Probieren Sie es online aus oder nutzen Sie den Fischspielplatz .

Die ersten drei Zeilen lesen eine Zeichenkette aus STDIN ein und verwenden ihren Zeichencode mod 26 als Koordinaten, um die Zeichen " >/v>v\v</>" in das Labyrinth darunter zu setzen. Die beabsichtigte Lösung ist eine 20-stellige Zeichenfolge, die nur aus den Buchstaben A – Z besteht (obwohl Sie natürlich alles verwenden dürfen, was Sie wollen).

Lösung:

Die beabsichtigte Eingabe ist OCEANICWHITETIPSHARK(es ist ein Fisch!). Der Weg durch das Labyrinth sieht folgendermaßen aus:

v
\">/v>v\v</>"
/!?lp%*2di%*2di
a                |  |
v   "        "   |  |"
| v"l"______"o"__/  "e"
v | "        "     " "
| |   "   /       "l"/
v |  "!"           "|
|//   " " "    v_\  |
v|    \"d"o"   " "  | "
||    " " "   "o"r" |"!"
v"   "H"       " "  | "
"l"___""_______ _/__/_____
""    "r" "    | |  "
|>__\  " "l"   | | "d"  "
v   "     "    | "  "  "H"
|  "e"v________/"," |   "
v " " "     "  " "  |
|"e"|"W"  /"d""l"|  |
v " " "     "  " |  | "
<  "H">__________ __\"!"__
v   "            |  | "
    >____________ __ ___v
>>"Hello world?" |  |  >o<
                 |  |   ^

Kein Baum
quelle
Geknackt! Hat mich für immer gekostet.
Rexroni
3
Hey, ich hatte den Verdacht, dass die Antwort ein Wort sein könnte, aber ich habe keinen Versuch unternommen, sie zu entschlüsseln. Ich bin noch beeindruckter.
Rexroni
6

Oktave, 59 Bytes, Gebrochen

Dies funktioniert in Octave 4.2.0. Ich kann die Kompatibilität nicht mit allen Versionen garantieren.

i=input('');printf('%c',i*~all(isequal(i,'Hello, World!')))

Hinweis: Hiermit werden keine nachgestellten Leerzeichen oder Zeilenumbrüche gedruckt. So sieht es aus:

Bildbeschreibung hier eingeben

Grundsätzlich heißt es: "Geben Sie die Eingabezeichenfolge aus, es sei denn, die Eingabe lautet" Hallo, Welt! ". In diesem Fall sollte nichts (oder das Nullzeichen) ausgegeben werden.

Stewie Griffin
quelle
Ich bin mir nicht sicher, ob %cdas Zeichenfolge oder Zeichen bedeutet ... Vielleicht versteckst du etwas? Auch das *~macht mich ein bisschen misstrauisch ...
Erik der Outgolfer
Ich bin nicht sicher, aber geknackt ?
5.
@ BruceForte druckt ein Null-Byte am Ende der Ausgabe, ich bin nicht sicher, ob das gültig ist ... Link
MD XF
1
Ich bin mir ziemlich sicher, dass die beabsichtigte Lösung so etwas ist.
Jonathan Allan
1
@ BruceForte, nein. da war kein \n. Ich dachte, der Fragentext besagt " optionaler Zeilenumbruch ".
Stewie Griffin
5

CJam , 7 Bytes ( geknackt )

q5/:i:c

Probieren Sie es online!

Vorgesehene Eingabe:

65608656376564465644656476558065568656236564765650656446563665569

Erik der Outgolfer
quelle
Gebrochen
Jonathan Allan
@ JonathanAllan Darn! Das war allerdings nicht die beabsichtigte Eingabe.
Erik der Outgolfer
5

MATL , 6 Bytes. Geknackt

tsZp?x

Probieren Sie es online!

Luis Mendo
quelle
Cracked , aber wenn dies nicht die beabsichtigte Lösung ist, fühlt es sich ein bisschen wie Betrug an.
Dennis
@ Tennis Die beabsichtigte Lösung war ['Hello,' 1 'World!']. Warum betrügen? :-( Das Dokument / die Hilfe für Dsagt, dass die meisten eingegebenen Zeichen unter 32 durch Leerzeichen ersetzt werden
Luis Mendo
Ich wollte meinerseits betrügen und aus einer LF-Newline eine CR + LF-Newline machen.
Dennis
@ Tennis Ah, ich verstehe. Nun, ich denke, es ist auch vollkommen gültig
Luis Mendo
5

Explodieren , 23 Bytes, Gebrochen

@_?&4_-j>5&f^~c>&6\|4>7

Weitere kommen, das ist nur der Anfang> :)

Probieren Sie es online!

Explorer Erklärung

Es gibt vier Entdecker in diesem Programm. Ich bin nicht ganz sicher, ob wait ( >) richtig funktioniert.

@_?

Benutzereingaben lesen ( ?), Band schreiben und ausfahren ( @) ( _).

&4_-j>5

4Ändern Sie für 4 Ticks ( ) das Band ( &) nach unten ( _) und springen Sie um 5 ( 5), indem Sie ( -) 19 ( j) subtrahieren .

&f^~c>

fÄndern Sie für 16 Teilstriche ( ) das Band ( &) ^in einer Welle ( ) nach oben ( ) ~, und wechseln Sie zwischen no affect, +13, no affect und -13 ( c).

&6\|4>7

6Ändern Sie für 6 Ticks ( ) das Band ( &) in beide Richtungen ( |), indem Sie es jedes Mal \um 4 ( 4) verringern und um 7 ( 7) springen . Verringern bedeutet, dass 4 beim ersten Mal, 8 beim zweiten Mal usw. abgezogen werden.

Stephen
quelle
3
Geknackt, aber zögern Sie nicht, eine Erklärung für das Geschehen zu geben :)
Jonathan Allan
@ JonathanAllan Erklärung hinzugefügt, sorry, ich habe so lange gebraucht
Stephen
5

JavaScript (ES6), 173 169 163 150 151 148 143 Byte ( Gebrochen )

Lassen Sie uns etwas ganz anderes haben ... und ganz Böses .

const e=eval,p=''.split,c=''.slice,v=[].every,f=s=>(t=c.call(s),typeof s=='string'&&t.length<81&&v.call(p.call(t,`\n`),l=>l.length<3)&&e(t)(t))

Verwendung: f(something) // returns 'Hello, World!'

Probieren Sie es online!

Voile
quelle
Lassen Sie uns diese Diskussion im Chat fortsetzen .
Евгений Новиков
Gebrochen
DanTheMan
Nett! Das ist ein echter Knaller.
Voile
Das war wirklich schwer zu knacken. Gut gemacht!
DanTheMan
Es stammt direkt aus einem der Rätsel, die ich an anderer Stelle erstellt habe :) (Ich lasse die Leute herausfinden, wo ich das ursprüngliche Rätsel gepostet habe.)
Voile
4

C # (.NET Core) , 130 152 Bytes, CRACKED

+22 Bytes, ich habe vergessen, eine neue Zeile zu schreiben ... Das Programm funktioniert genauso wie zuvor, die neue Zeile wird zu jeder Ausgabe hinzugefügt.

a=>a.Distinct().Select((x,y)=>a.Reverse().Skip(y).First()*x%255).Take(a.First()-33).Concat(new int[]{10}).Select(x=>(char)x).ToArray()

Probieren Sie es online!

Die Byteanzahl umfasst auch

using System.Linq;

Zum einen habe ich mich für etwas nicht allzu Verrücktes entschieden. Es kann mehrere Antworten geben.

Der "offizielle" Riss:

. ! $ 0%> 5 & 8 '#?) S * TuE [MRX` + 9

Grzegorz Puławski
quelle
2
Gebrochen
Kamil Drakari
4

tcc, 89 bytes, geknackt von Dennis

#!/usr/bin/tcc -run
#include <stdio.h>

int main()
{
    puts("\n");
}
#include "/dev/stdin"

Dies ist aufgrund der dynamischen Auflösung von tcc besonders schlimm. Viele Funktionen sind vordeklariert und es funktioniert einfach nicht, sie zu überschreiben.

Joshua
quelle
Könnten Sie einen funktionierenden TIO-Link erstellen, mit dem die Leute spielen können? ( dies ist zweifellos unvollständig - vielleicht braucht es Compiler-Flags oder so, ich habe keine Ahnung) TBH Ich weiß nicht einmal, wie das Eingaben nehmen soll ...?
Jonathan Allan
Tios tcc wird nicht funktionieren. Es erhält nicht , dass dies muss als TCC -run verwendet werden , anstatt eine separate Kompilierung und Verbindungsphase.
Joshua
Vielleicht läuft es dann über eine Shell dort hindurch, bash ist verfügbar (ich weiß allerdings nur sehr wenig über tcc oder bash). Ansonsten denke ich, dass Sie einige detaillierte Anweisungen geben sollten, um die Leute zum Laufen zu bringen (es sei denn, mein persönlicher Mangel an Wissen ist hier das Problem - wie gesagt, ich weiß nicht einmal, wie Ihr Code Eingaben erhält, alles, was ich sehe, ist ein putsund ich dachte, dass Ausgänge.)
Jonathan Allan
Fast einen Riss haben, aber ich bin auf dem Handy und mprotectist ein Hintern.
MD XF
geknackt
Dennis
4

Brainfuck , 7 Bytes geknackt

,+[.,+]

Probieren Sie es online!

Viel Glück. (funktioniert nicht mit jedem BF-Interpreter

Christopher
quelle
Funktioniert Ihre Eingabe mit jedem BF-Interpreter, einschließlich Interpreter mit unterschiedlichen Bandlängen? Funktioniert Ihre Eingabe lokal und nicht nur auf TIO?
Stephen
@StepHen jede Länge des Typs afaik
Christopher
geknackt
Rexroni
1
Funktioniert Ihre geplante Lösung mit TIO?
Totalhuman
@totallyhuman danke, bearbeitet den Kommentar so, dass er pro aussieht. Ich weiß nicht, wie ich nicht druckbare Eingaben in TIO einfügen soll. Ich habe die Eingabe von stdin aus einem C-Programm mit einer einzigen printf-Anweisung übergeben.
Rexroni
3

JavaScript (ES6), 102 Byte ( geknackt )

Die vorherige Version hat einen massiven Käse. Versuchen wir es noch einmal ...

f=s=>{let r='',i=0;while(i<13)r+=!s[i][0]||s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Probieren Sie es online!

Autorenlösung:

neuer Proxy ({v: Array (13) .fill (0)}, {get: (o, p) => ['a', '', 'Hallo, Welt!' [p]] [ov [p] ++]})

Verwendung:

var p = neuer Proxy ({v: Array (13) .fill (0)}, {get: (o, p) => ['a', '', 'Hallo, Welt!' [p]] [ov [p] ++]}) console.log (f (p))

Voile
quelle
Gebrochen
Birjolaxew
3

Kubisch 159 Bytes ( geknackt )

+53$!7@6:2/1+551$?7@6:5+52$!7@66:3/1+552$?7@6:5+3/1+4$!7@6:5/1+3$?7@6:5+1/1+54$!7@6:3/1+552$?7@6:5+1/1+552$?7@6:5+52$!7@6:1/1+551$?7@6:5+1/1+3$!7@6:1/1+1$(@6)7

Dies wird für diejenigen, die mit Cubically vertraut sind, ziemlich einfach sein. Probieren Sie es online!

MD XF
quelle
1
Fühlt sich jemand mit Cubically wohl? : P
totalhuman
@totallyhuman Die Sprache ist eigentlich ziemlich einfach, sobald Sie sich daran gewöhnt haben, und es macht Spaß, sie zu benutzen!
TehPers
@totallyhuman Es sieht so aus, als gäbe es keine Anweisungen zum Wenden. Dies scheint also meist nur Mathematik mit einem Vielfachen von 9 zu sein. Sehr, sehr komplizierte Mathematik.
Robert Fraser
Geknackt? Ich glaube, ich habe die beabsichtigte Eingabe erhalten, aber sie funktioniert nicht ganz, aber ich bin mir ziemlich sicher, dass sie aufgrund eines Interpreter-Fehlers fehlschlägt. Siehe meine Erklärung in Crack Post. Wenn ich recht habe, dann
hattest
3

6502 Maschinencode (C64), 51 53 Bytes ( geknackt )

00 C0                     .WORD $C000     ; load address
20 FD AE                  JSR $AEFD
20 EB B7                  JSR $B7EB
8A                        TXA
0A                        ASL A
45 14                     EOR $14
8D 21 C0                  STA $C021
45 15                     EOR $15
85 15                     STA $15
49 E5                     EOR #$E5
85 14                     STA $14
8E 18 D0                  STX $D018
A0 00                     LDY #$00
B1 14                     LDA ($14),Y
20 D2 FF                  JSR $FFD2
C8                        INY
C0 0E                     CPY #$0E
D0 F6                     BNE *-8
60                        RTS
C8 45 4C 4C 4F 2C 20 D7   .BYTE "Hello, W"
4F 52 4C 44 21 0D         .BYTE "orld!", $D

Online-Demo

Usage : SYS49152,[x],[n], wobei xein 16 - Bit Integer ohne Vorzeichen und nist eine 8 - Bit - Ganzzahl ohne Vorzeichen.

Die Eingabe ist 52768 und 23 (SYS49152,52768,23).

Der zweite Parameter wird direkt in D018ein Steuerregister des VIC-II-Grafikchips geschrieben. Anhand einer geeigneten Referenz können Sie ableiten, was Sie dort schreiben müssen, um den Kleinbuchstabenmodus einzustellen, ohne andere Modi und die Adresse des Bildschirmspeichers zu ändern: $17oder dezimal 23. Damit können Sie der Arithmetik im Code folgen, sodass der erste Parameter die richtige Zeichenfolgenadresse in $14/$15(Little-Endian) enthält. Eine ausführlichere Erklärung findet sich im Riss.

Bildschirmfoto

Ausgeführt mit falschen Werten, ein Absturz ist sehr wahrscheinlich .

Zum Knacken möchten Sie es möglicherweise in einer lokalen Installation von vice ausführen. Hier ist also ein BASIC-Loader, den Sie in den Emulator einfügen können ( RUNum das Programm dort abzulegen $C000):

0fOa=49152to49202:rEb:pOa,b:nE
1dA32,253,174,32,235,183,138,10,69,20,141,33,192,69,21,133,21,73,229,133,20,142
2dA24,208,160,0,177,20,32,210,255,200,192,255,208,246,96,200,69,76,76,79,44,32
3dA215,79,82,76,68,33,13

Update: Zwei Bytes für die Ladeadresse hinzugefügt, um diese als PRGAntwort auf die Diskussion über Meta zu einer ausführbaren C64- Datei zu machen

Felix Palmen
quelle
Müssen Sie die Kommaüberprüfung wirklich zu Beginn aufrufen? Ich habe den Eindruck, dass b7eb diesen Check auch durchführt.
Ein
b7ebruft auf aefd, aber erst nach dem Aufrufen von ad8a(parse number as float (!) (wtf) (MS)) und b7f7(konvertiere das float in 16bit unsigned int) - also muss ich aefdmich zuerst für den Verbrauch des ersten Kommas aufrufen .
Felix Palmen
Geknackt ! Süß, süße Rache!
A Gold Man
@AGoldMan hat endlich meinen Beitrag bearbeitet. Wieder gut gemacht! Vielleicht kann ich mir einen anderen C64-Code einfallen lassen, der etwas schwieriger zu knacken ist (ohne unfair zu sein), noch nicht sicher :)
Felix Palmen
2

Python 2 , 63 Bytes, geknackt

Nur um den Ball ins Rollen zu bringen ...

#coding:rot13
cevag vachg()==h'Hello, World!'naq'Hello, World!'

Probieren Sie es online!

total menschlich
quelle
1
Ist es allgemein anerkannt, dass das OP Einreichungen knackt?
MD XF
1
geknackt
Wheat Wizard
3
Das ist interessant ... Ich hatte keine "normale" Programmiersprache in ROT13 o_o
ETHproductions
13
@Arnauld Und Sie behaupten, PHP sei eine normale Sprache?
NoOneIsHere
1
@NoOneIsHere Er ... nein. Mein Fehler. :-P
Arnauld
2

Pyth , 18 Bytes ( geknackt )

IqGQ"Hello, World!

Dies ist extrem einfach, und jeder, der Pyth kennt, würde es im Handumdrehen knacken, aber trotzdem ... Beachten Sie, dass Sie den String zwischen Anführungszeichen setzen müssen.

Probieren Sie es online!

Mr. Xcoder
quelle
Wenn jemand es knackt, bitte in sich selbst bearbeiten.
Mr. Xcoder
Geknackt?
Totalhuman
1
@totallyhuman Yep
Mr. Xcoder
2

JavaScript (nur Browser), 95 Bytes ( geknackt )

try{a=JSON.parse(prompt());try{a=='[object Object]'}catch(a){alert('Hello, World!')}}catch(a){}

Nicht zu schwer. Hat mehrere Lösungen.


quelle
@Maltysen. Das war schnell! :)
2

Gelee , 11 Bytes ( geknackt )

sLƽ$Xṙ5O½Ọ

Probieren Sie es online!

Vorgesehene Eingabe:

〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ〡㋄ⶐ✐сᑀ⟙ⶐⶐ〡ސЀᶑ

Erik der Outgolfer
quelle
Gebrochen
HyperNeutrino
@HyperNeutrino Heh das war hinterhältig, da es über eine halbe Stunde lebte. ;)
Erik der Outgolfer
Heh das ist, weil ich es nur 10 Minuten gesehen habe, bevor ich es gesehen habe; P
HyperNeutrino
2

Python3, 192 Bytes Gebrochen, denke ich

from sys import *
from numpy import *
e=enumerate
c='Hello World!'
w=eval(argv[1])
x=[ord(n)+2*i for i,n in e(c)]
print(''.join([c[int(sum([c*cos(n*i)for i,c in e(w)])+.01)]for i,n in e(x)]))

Der gelesene Text ist das erste Programmargument: python3 hw.py '[1,2,3]'

print("Hello World!")Seien Sie nicht lahm und versuchen Sie, eine Aussage als Argument zu verwenden. Es wird trotzdem ein Fehler ausgegeben (zumindest in der Befehlszeile), daher denke ich, dass dies nicht zählen sollte. (Edit: jemand hat genau das gemacht)

rexroni
quelle
4
Rissig . Lahmes Knacken, aber uneingeschränktes Auswerten muss bestraft werden =)
Sisyphus
2

Gelee ,  20  21 Bytes ( Gebrochen )

+1 Byte - "... und eine abschließende Zeile"

œ?“¥ĊɲṢŻ;^»œ?@€⁸ḊFmṪ⁷

Probieren Sie es online!

Es gibt in der Tat unendlich viele Lösungen.

Jonathan Allan
quelle
Ich glaube, ich habe das geknackt . Mein Riss funktioniert mit dem, der aus irgendeinem Grund im TIO-Link fehlt, also hoffe ich, dass ich mich nicht verwirrt habe.
Tehtmi
Entschuldigung für den TIO-Fehler!
Jonathan Allan
2

Lua 5.1, 44 Bytes ( geknackt )

s=...loadstring(#s>4+#s:gsub("%l","")or s)()

Beachten Sie, dass Lua 5.1 eine andere Sprache als Lua 5.2 oder Lua 5.3 ist. "Online ausprobieren" hat Lua 5.1 nicht. Sie können Ihre Lua-Version überprüfen, indem Sie ausführen print(_VERSION). (In jeder Implementierung, die den Lua 5.1-Kern von PUC-Rio verwendet, sollte es eine Lösung geben.)

Als Testgeschirr können Sie Folgendes verwenden:

function test(...)s=...loadstring(#s>4+#s:gsub("%l","")or s)()end

test[[
This is my input!
It can have multiple lines!
]]

Kabelbaum auf Repl.it testen

tehtmi
quelle
2

C (GCC auf TIO), 84 Byte golfed ( Gebrochen )

#include<stdio.h>
main(x){scanf("%d",&x);printf("%2$s","Hello, World!\n",(void*)x);}

Hier ist eine ungolfed Version, die auch funktioniert:

#include <stdio.h>
int main(void)
{
    int x;
    scanf("%d",&x);

    printf("%2$s","Hello, World!\n",(void*)x);
}
MD XF
quelle
2

JavaScript (ES6), 92 Bytes ( geknackt )

Diese einfache Funktion zum Kopieren von Strings scheint wirklich zu verhindern , dass Sie Strings kopieren, die Hello, World!...

f=s=>{let r='',i=0;while(i<13)r+=s[i]=='Hello, World!'[i]||s[i++];return r};Object.freeze(f)

Probieren Sie es online!

Voile
quelle
2

Röda , 71 Bytes ( Gebrochen )

{[[head(_)]..[unpull(1)if[_1>1]]]|[_()|chars|unorderedCount|[_*(_-1)]]}

Probieren Sie es online!

Verwendung: push(/* input */) | f()(wobei f eine Variable ist, die die obige Funktion enthält).

fergusq
quelle
Cracked
Kritixi Lithos
2

JavaScript (ES6) 107 Bytes [Danke Евгений Новиков] ( Gebrochen )

i=r=>{for(e="",n=0;r.length>n;o=r.charCodeAt(++n),e+=String.fromCharCode(((3^o^19)<<1^15^13)<<1));return e}

Rufen Sie die iFunktion mit einem String auf.

Das console.log... dient zu Testzwecken.

Probieren Sie es online!

Ephellon Dantzler
quelle
Willkommen bei PPCG! Sie können 8 Bytes speichern: (1) Entfernen var, (2 ) Entfernen ()von einem Pfeilfunktionsargument, (3) Ersetzen returnbis eval("")(4) Löschen ;am Ende. 110-Byte-Lösung: pastebin.com/qwdm7fT7 Viel Glück
Евгений Новиков
Endlich 50 Wiederholungen, also: Cracked
Voile