Underhanded launcher [chiuso]


11

Il tuo obiettivo è quello di scrivere un programma super segreto che avvii un altro programma (indipendente). Non è necessario fornire il payload nella risposta, può essere qualsiasi nome di programma verrà avviato dal programma.

Tuttavia, la sfida è mantenere segreto questo comportamento. Dopo un'ispezione casuale del codice, dovrebbe essere impossibile o molto difficile notare che il programma esegue effettivamente un programma straniero. Bonus se questa "caratteristica nascosta", una volta scoperta, può ragionevolmente essere spiegata come un bug involontario. Questo è il motivo per cui il codice deve essere il più chiaro possibile e tutto dovrebbe avere un alibi per essere lì, altrimenti qualcuno che ispeziona il tuo codice potrebbe diventare sospetto.

Ricorda, questo non è un code-golf, ma una gara subdola .

  • Il tuo codice deve essere chiaro e leggibile.
  • Le cause del cambiamento devono essere nascoste. Anche se scoperti, dovrebbero apparire più come bug che come cattiveria.

Dovresti fornire una spiegazione, la migliore in spoiler.

come questo

Il vincitore verrà selezionato come la risposta più votata non prima di 10 giorni dopo la prima risposta valida. Sì, lo so che è soggettivo, ma questo è l'unico criterio adeguato per le gare subdole.

Gli elettori dovrebbero valutare le qualità standard "subdole", come la chiarezza del codice e la ragione ben nascosta della ragione.

Ho lanciato questa competizione per le lingue compilate, ma puoi anche usare le lingue interpretate se trovi due diversi interpreti importanti per questo.


Di solito, i concorsi subdoli specificano l'attività "legittima" che il programma dovrebbe svolgere. Aiuta a concentrare gli sforzi.
ugoren,

3
Sto votando per chiudere questa domanda come fuori tema perché le sfide subdole non sono più in argomento su questo sito. meta.codegolf.stackexchange.com/a/8326/20469
cat

Risposte:


5

Tcl

Semplice.

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 ha ragione:
se si fornisce un nome di file con |il primo carattere, il resto verrà trattato come comando. IIRC per Perl deve essere alla fine.


2
+1. Ps. Lo stesso trucco funziona anche in Perl e in qualsiasi altra lingua che abbia un'adeguata funzione "apertura magica".
Ilmari Karonen,

2
"IIRC per Perl deve essere alla fine." - In realtà deve essere posizionato secondo la direzione prevista per il trasferimento dei dati. pastebin.com/ZnTr7ezg
manatwork

Intresting. Ho usato molto questa "caratteristica" con i comandi personalizzati di webmin. Hai bisogno di un elenco di tutti i domini in un menu a discesa? Usa questa funzione.
Johannes Kuhn,

5

JavaScript

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

"document.loaction.href = 'http; // www.example.com'" imposta la posizione della pagina su "http; // www.example.com" invece di verificare che la posizione della pagina sia "http; // www .example.com".

È una lingua interpretata, quindi ecco due interpreti: SpiderMonkey e Google Chrome.


2
Questo è in realtà abbastanza ovvio. È noto come "l'ultimo bug del mondo", a causa di una vecchia battuta secondo cui la Seconda Guerra Mondiale sarebbe iniziata a causa di un codice C nella formaIf (AlertValue = RED) LaunchNukes();
Mason Wheeler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.