Тролль захватил вас и заставляет писать вредоносные программы (определяемые как программы, которые повреждают компьютер, на котором он работает). Тролль умеет читать и понимать код, но не очень хорошо замечает ошибки.
Ваша цель - написать программу, которая:
- Выглядит как вредоносная программа; то есть начинающий программист, читающий код, будет убежден, что код наносит ущерб компьютеру, на котором он работает.
- На самом деле не наносит ущерба вообще.
ПРИМЕЧАНИЕ: тролль читает только код, а не комментарии. Так что сам код должен быть понятным и достаточно убедительным.
ПРИМЕР (bash):
rm - rf /home
Этот пример выглядит так, как будто rm -rf /home
все домашние папки удаляются из системы, но на самом деле из-за свободного места перед rf это не сработает и вызовет только безопасное сообщение об ошибке.
Это приемлемое решение, но оно не очень хорошее, потому что ошибку довольно легко обнаружить.
С другой стороны, программа, которая является сложной и нечитаемой, также не будет очень хорошим решением, потому что она не будет выглядеть как вредоносная программа.
Хорошее решение должно быть достаточно читабельным, чтобы убедить читателя в том, что это вредоносное ПО, но содержать ошибку, которую трудно обнаружить, и которая делает его безвредным.
Это конкурс популярности, поэтому выигрывает код с наибольшим количеством голосов.
источник
rm - rf /
в мою раковину ...rm -rf /
. Если система не очень старая , она потребует--no-preserve-root
:)rm - rf /
неверный пример! Это может привести к повреждению, если у вас есть файл с именемrf
в текущем каталогеОтветы:
удар
Я пошел другим путем. Вместо того, чтобы удалять все на вашем жестком диске, я собираюсь заполнить его мусором.
Этот сценарий создает папку, затем постоянно
cat
объединяет все файлы и помещает их в новый, добавляя значениеls -al
для хорошей меры (и чтобы в исходном файле было что-то).Кроме...
источник
bash whatever.sh
разрушит ваш трюк ...evil.command
так, чтобы тролль мог просто дважды щелкнуть по нему, чтобы открыть (по крайней мере, на Mac)Haskell
Проверьте эту страницу руководства ,
removeDirectoryRecursive
удаляет каталог со всем его содержимым!источник
return removeDirectoryRecursive;
что естьreturn removeDirectoryRecursive();
в C, это правильно?main
него выполняется и удаляет файл. Однако явное использованиеreturn
функции создает действие ввода-вывода, целью которого является просто создание значения.return
имеет ничего общего сreturn
другими языками (или даже с «возвратом» значения из функции). Значения типа также неIO a
имеют ничего общего с функциями других языков. Таким образом, аналогия довольно волнистаяPHP
Вот рекурсивный скрипт PHP, который пытается удалить каждый файл на вашем сайте. Завершение может занять некоторое время, если веб-сайт довольно большой, так что наберитесь терпения ...
Только одна маленькая проблема ...
источник
delete
для удаления файлов? Нет причин предполагать, что это кого-то обманет). Как насчетunlⅰnk
вместо этого (который использует U + 2170 вместо «i»)?delete
для удаления файлов, полностью правдоподобна в PHP. Единственное, что не является правдоподобным, это то, что если бы это было реально, было бы 3 или 4 других способа сделать это, и все, кроме одного с самым странным именем, имели бы серьезные недостатки безопасности.Perl (Unix)
Удаляет все файлы в системе.
Особенности
Это действительный Perl. Он даже компилируется и работает с
-w
иuse strict
!Нет таких придирок, как в C ++
delete
.unlink
действительно функция удаления файла,rmdir
действительно удаление каталога и т. д.Корректно обрабатывает глубоко вложенные каталоги, для которых абсолютный путь может превышать максимальную длину системы, изменяя каждый каталог для использования относительных путей. Кроме того, не исчерпываются дескрипторы каталога, так как он читает и закрывает каталог перед повторным использованием.
Спойлер
Дальнейшие заметки
источник
Оболочка однострочная
Это украдет все пароли жертвы, личные ключи, биткойны и т. Д.
Спойлер:
источник
cat
, командыhead
илиtail
должны быть где-то задействованы.-exec cat '{}' \; | …
-print0 | xargs -0 cat |
Batch / CMD
Сохранить
и заставить их запустить его с параметрами каждого из дисков на компьютере.
источник
DEL %0
не будет работать, если расширение файла не указано в командной строке и сценарий не запущен с указанием полного пути, или вы находитесь в том же каталоге.DEL "%~f0"
решит обе проблемы и будет устойчивым к пробелам в любом месте пути. Также%10
и вверх не существует - это переводится как%1
следование за литералом0
.Javascript
Что ж, оригинальная вредоносная программа не взорвет ваш компьютер, но может раздражать.
Это безвредно, потому что:
источник
Ява
Да простят меня боги за то, что я подчиняюсь твоим жалким требованиям, тролль.
источник
Runtime.exec()
. +1.system()
функции c ?/bin/sh -c
илиcmd /c
или что-то вручную. Имеет смысл, так как вы никогда не знаете, что команда будет делать на новой ОС.С
Так как он не читает комментарии, которые должны это сделать:
Версия C ++
спасибо DragonLord за это.
Добавьте это в папку автозагрузки и перезагрузите компьютер.
Как это устроено:
источник
main
сreturn 0
???/
действительно старый трюк ... Прости.Ява
источник
new File("C:\ntldr").delete();
BASH
Или следующее, НО ЧИТАТЬ СПОЙЛЕР ПЕРЕД ЗАПУСКОМ
источник
set -t
иexit
? Страницаset -t
руководства Bash сообщает, что она завершается после «одной команды», но, похоже, самаset
команда считает эту команду и завершает работу немедленно.set -t
(например, разделенные точкой с запятой или двойным амперсандом и т. Д.), Они будут выполнены. В этом случае первая строкаset -t; echo "hahaha deleting files.."
отображает этот текст, а затем завершается.;
и переводом строки всегда была разница .#!/bin/bash -t
возможно?perl foo.pl
и foo.pl начнётся#!somethingendingin/perl -flags
, Perl будет действовать так, как он был вызван-flags
)питон
источник
D
Эта программа действительна и выполняется без ошибок. Он порождает функцию удаления в новом потоке, которая удаляет
root
каталог.Но ничего не удаляется ...
источник
C (Unix)
Добавление рекламы никогда никому не вредило.
источник
goto http;//www.trolling.com;
(в обоих местах), я мог бы пропустить это.print
функции.JavaScript
источник
return {
WARN: Dropping side-effect-free statement [-:4,11]
и возвращаетсяfunction foo(a){}for(var i=0;foo(i);++i)alert("Infinite alerts!");
.JavaScript
Поменяйте оповещение об уничтожении на любое неприятное разрушительное действие, которое вы захотите использовать.
Спойлер:
источник
Ява
Давайте просто удалим некоторые важные файлы!
источник
Bash, C, Linux
Может быть, это не совсем вредоносная программа, но она может быть частью :)
Это удивительный эксплойт, который может дать вам root на любой машине с Linux! Тссс, никому не говорите, что у нас это есть!
Теперь выполните скрипт, и вы будете пользователем root! Вы можете убедиться, используя
whoami
!Код написан Lcamtuf, источник: http://lcamtuf.coredump.cx/soft/ld-expl
источник
fakeroot(1)
, это библиотека, которая перехватывает вызовы различных системных функций POSIX, обманывая вызывающего абонента в том, что он имеет (поддельные) права на чтение и (ложные) записи для всей системы. На самом деле, он не будет (не может) фактически давать эти разрешения, но когда программа, например, вызывает «поддельную»chmod
функцию для файла и изменяет разрешения, fakeroot запоминает эти разрешения, чтобыstat
вызовы возвращали обновленные разрешения. Некоторые дистрибутивы используют это, чтобы позволить системе сборки пакетов создавать файлы сroot:root
правами собственности.удар
источник
ksh
поскольку fork bomb не является синтаксической ошибкой!Emacs Lisp
Сначала простой. Этот ничего не делает. На самом деле он пытается удалить элементы, равные: recursive, из списка, возвращаемого функцией
directory-files
. Он не собирается удалять какие-либо файлы.Вот тот, который может поставить в тупик даже ветеринары Элиспа.
Это всего лишь 1 символ от удаления вашего корневого каталога.
emacs lisp позволит jsut в любом случае быть именем символа (переменная, функция, макрос и т. д.). Можно использовать юникод в названии ваших символов, и это то, что здесь происходит.
setq
может принимать любое количество аргументов(setq a 3 b 4)
, как делать a = 3; б = 4; но(setq a 3 b)
также действует и делает a = 3; б = ноль;Возвращаемое значение `setq '- это значение, назначенное последней переменной. 4 и ноль соответственно в примерах.
(setq a 3 b)
это именно то, что происходит в коде, но вместо б я использую символ пробела Юникод. Я присваиваю значение nil переменной, имя которой является символом Unicode 0x2001. Из-за этого nil возвращается setq и условие цикла while никогда не выполняется. Уберите этот пробельный символ, и он будет работать нормально.источник
Просто еще один Perl-хакер.
Я написал это в 2002 году , когда болтался в Perlmonks и вообще просто старался максимально расширить свои знания Perl. Не редактировал его вообще, но он все еще работает.
источник
exit
команду (с бессмысленной точкой с запятой после нее, но не то, чтобы она имела значение ).PHP:
источник
C ++ с Boost
Это удалит все файлы в файловой системе
источник
Ява
Это сделает вид, что загружает ОЗУ, но удалит домашний каталог пользователя.
источник
источник
удар
Это, возможно, столь же зло, как и получается. Он определяет функцию, которая
rm -rf /
вызывает и вызывает ее. Мало того, что оно использует злоeval
не раз.Это нанесет большой ущерб, конечно же!
источник
eval
они делают что-то более злое, чем любой очевидный код. Текущий код заставляет меня спросить: зачем скрывать «злой» код, если очевидные вещи удаляют все?base64
(не стандартная команда) не существует в системе, на которой он запущен, уловки ничего не делают иrm -rf /
запускаются! Это также может произойти, еслиbase64
присутствует, но по какой-то причине не удается (напримерulimit
).rm -rf /
не будет работать на большинствеrm
реализаций. Это функция безопасности - вы не можете удалить корневой каталог в большинстве реализацийrm
.BASH
Конечно, нам нужны привилегии root для машины, поэтому мы используем старое доброе «У меня есть root?» - средство проверки, также известное как ch (eck) root, - но лучше сделать это в каталоге, где не будет возникать много аварийных сигналов. / TMP будет идеальным, потому что каждый может писать туда файлы.
После этого мы просто удаляем с жесткого диска весь злой смех
источник
chroot
это не «проверка корня», это «изменение корня» - это меняет представление пользователя о том, что/
есть. Интересно, что этот тролль ничего не делает для пользователей root и не-root; пользователи root получают новый root (и, следовательно, не имеют команды / bin / bash, поскольку во вновь созданном корне / tmp / chroot_dir ничего не существует), а пользователи без полномочий root не могут выполнять chroot.iPhone - Flappy Bird Clone
Пока пользователь воспроизводит клон iPhone Flappy Bird, все файлы в каталоге Documents удаляются.
источник
Идти:
Это немного сложно. В Go вся программа завершается, когда выходит главный Goroutine. Хороший способ исправить это с помощью группы ожидания. С моим "исправлением" есть две огромные проблемы:
Wait
до того, как удалится GoroutineAdd
. Поскольку счетчик будет равен 0, ему нечего ждать, и поэтому он не будет блокироваться и просто завершит работу, завершив программу.Функция fmt.Scanln () ожидает ввода только для того, чтобы убедиться, что основной Goroutine завершает работу до того, как что-то произойдет. Println, скорее всего, приведет к блокировке ввода-вывода и переключению на запуск основного Goroutine (таким образом, выход), и Scanln почти наверняка сделает это. На самом деле, ни одна из них не нужна ни для одной версии Go.
В супер-теории это МОЖЕТ работать и удалять что-то, что означает, что в соответствии с моделью памяти Go нет гарантированных отношений «происходит до» в отношении конца
main
и выполненияRemoveAll
, но это не будет работать ни в одном из современных сред выполнения / компилятора Go, о чем свидетельствует всеми новичками, которые совершают ошибку, не помещая синхронизацию в свои основные функции.источник
Javascript
1.
2.
источник