Underhanded Launcher [geschlossen]

11

Ihr Ziel ist es, ein supergeheimes Programm zu schreiben, das ein anderes (unabhängiges) Programm startet. Sie müssen die Nutzdaten nicht in Ihrer Antwort angeben, es kann sich um einen beliebigen Programmnamen handeln, den Ihr Programm startet.

Die Herausforderung besteht jedoch darin, dieses Verhalten geheim zu halten. Bei gelegentlicher Überprüfung des Codes sollte es unmöglich oder sehr schwer zu bemerken sein, dass Ihr Programm tatsächlich ein fremdes Programm ausführt. Bonus, wenn diese "versteckte Funktion", sobald sie entdeckt wurde, vernünftigerweise als unbeabsichtigter Fehler erklärt werden kann. Aus diesem Grund muss der Code so klar wie möglich sein und alles sollte ein Alibi haben, damit er vorhanden ist. Andernfalls kann jemand, der Ihren Code überprüft, misstrauisch werden.

Denken Sie daran, dies ist kein Code-Golf, sondern ein hinterhältiger Wettbewerb.

  • Ihr Code muss klar und lesbar sein.
  • Die Ursachen der Änderung müssen verborgen bleiben. Selbst wenn sie entdeckt werden, sollten sie eher wie Käfer als wie Bosheit aussehen.

Sie sollten eine Erklärung geben, am besten im Spoiler.

so was

Der Gewinner wird frühestens 10 Tage nach der ersten gültigen Antwort als Antwort mit der höchsten Stimme ausgewählt. Ja, ich weiß, dass es subjektiv ist, aber dies ist das einzige Kriterium, das für hinterhältige Wettbewerbe angemessen ist.

Die Wähler sollten die Standardqualitäten "hinterhältig" schätzen, z. B. wie klar der Code ist und wie gut der Grund verborgen ist.

Ich habe diesen Wettbewerb für kompilierte Sprachen durchgeführt, aber Sie können auch interpretierte Sprachen verwenden, wenn Sie zwei verschiedene bemerkenswerte Dolmetscher dafür finden.

vsz
quelle
In der Regel geben hinterhältige Wettbewerbe die "legitime" Aufgabe an, die das Programm ausführen soll. Es hilft, die Bemühungen zu konzentrieren.
Ugoren
3
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da hinterhältige Herausforderungen auf dieser Website nicht mehr zum Thema gehören. Meta.codegolf.stackexchange.com/a/8326/20469
Katze

Antworten:

5

Tcl

Einfach.

proc main {} {
    set fd [open filenames.txt]
    while {[gets $fd line] ne ""} {
        set other [open $line w]
        puts $other [clock format [clock seconds]]
    }
}
main

Ilmari Karonen hat recht:
Wenn Sie einen Dateinamen mit einem |ersten Zeichen angeben , wird der Rest als Befehl behandelt. IIRC für Perl muss es am Ende sein.

Johannes Kuhn
quelle
2
+1. Ps. Der gleiche Trick funktioniert auch in Perl und in jeder anderen Sprache, die über eine geeignete "Magic Open" -Funktion verfügt.
Ilmari Karonen
2
"IIRC für Perl muss am Ende sein." - Eigentlich muss es entsprechend der vorgesehenen Richtung der Datenübertragung platziert werden. pastebin.com/ZnTr7ezg
Manatwork
Interessant. Ich habe diese "Funktion" häufig mit den benutzerdefinierten Befehlen von webmin verwendet. Benötigen Sie eine Liste aller Domains in einer Dropdown-Liste? Verwenden Sie diese Funktion.
Johannes Kuhn
5

JavaScript

if(document.location.href = 'http://www.example.com') foo();

"document.loaction.href = 'http; // www.example.com'" setzt den Seitenort auf "http; // www.example.com", anstatt zu testen, ob der Seitenort "http; // www" ist .example.com ".

Es ist eine interpretierte Sprache, daher hier zwei Dolmetscher: SpiderMonkey und Google Chrome.

Blaue Schafe
quelle
2
Das ist eigentlich ziemlich offensichtlich. Es ist bekannt als "der letzte Fehler der Welt", aufgrund eines alten Witzes, dass der Dritte Weltkrieg aufgrund eines C-Codes in der Form beginnen würdeIf (AlertValue = RED) LaunchNukes();
Mason Wheeler