Un troll te ha capturado y te está obligando a escribir malware (definido como un programa que daña la computadora que lo ejecuta). El troll puede leer y comprender el código, pero no es tan bueno para detectar errores.
Su objetivo es escribir un programa que:
- Parece malware; es decir, un programador principiante que lea el código estará convencido de que el código causa daños a la computadora que lo ejecuta.
- En realidad no hace daño en absoluto.
NOTA: El troll solo lee el código, no los comentarios. Por lo tanto, el código en sí debe ser lo suficientemente claro y convincente.
EJEMPLO (bash):
rm - rf /home
Este ejemplo parece rm -rf /home
que elimina todas las carpetas de inicio del sistema, pero en realidad, debido al espacio antes del rf, esto no funcionará y solo causará un mensaje de error inofensivo.
Esta es una solución aceptable pero no es muy buena, porque el error es bastante fácil de detectar.
Por otro lado, un programa complejo e ilegible tampoco será una muy buena solución, ya que no se verá como malware.
Una buena solución debería ser lo suficientemente legible como para convencer al lector de que es malware, pero contener un error que es difícil de detectar y lo hace inofensivo.
Este es un concurso de popularidad, por lo que gana el código con más votos a favor.
fuente
rm - rf /
en mi caparazón ...rm -rf /
. A menos que el sistema sea muy antiguo , requerirá--no-preserve-root
:)rm - rf /
¡No es un ejemplo válido! Puede causar daños si tiene un archivo llamadorf
en el directorio actualRespuestas:
Golpetazo
He ido por el otro lado. En lugar de eliminar todo en tu disco duro, lo llenaré con basura.
Este script crea una carpeta y luego
cat
reúne continuamente todos los archivos y los coloca en uno nuevo, agregando el valor dels -al
por si acaso (y para que el archivo inicial tenga algo).excepto...
fuente
bash whatever.sh
arruinará tu truco ...evil.command
para que el troll pueda hacer doble clic para abrirlo (al menos en Mac)Haskell
¡Consulte esta página del manual ,
removeDirectoryRecursive
elimina un directorio con todos sus contenidos!fuente
return removeDirectoryRecursive;
lo opuesto areturn removeDirectoryRecursive();
en C, ¿es correcto?main
, se ejecuta y elimina el archivo.return
Sin embargo, el uso explícito de la función crea una acción IO cuyo propósito es simplemente crear el valor.return
no tiene nada que ver conreturn
otros idiomas (o incluso con "devolver" un valor de una función). Tampoco los valores de tipoIO a
tienen mucho que ver con las funciones en otros idiomas. Entonces, la analogía es bastante onduladaPHP
Aquí hay un script PHP recursivo que intenta eliminar todos los archivos de su sitio web. Podría llevar un tiempo completarlo si el sitio web es bastante grande, así que sea paciente ...
Solo un pequeño problema ...
fuente
delete
eliminar archivos? No hay razón para suponer que engañaría a alguien). ¿Qué tal en suunlⅰnk
lugar (que usa U + 2170 en lugar de "i")?delete
para eliminar archivos es completamente creíble en PHP. Lo único que no es creíble es que si fuera real, habría otras 3 o 4 formas de hacerlo y todas, excepto la que tenga el nombre más extraño, tendrían serias fallas de seguridad.Perl (Unix)
Elimina todos los archivos en el sistema.
Caracteristicas
Esto es válido Perl. Incluso se compila y se ejecuta con
-w
yuse strict
!No hay objeciones como las de C ++
delete
.unlink
Realmente es la función para eliminar un archivo,rmdir
realmente elimina un directorio, etc.Maneja correctamente los directorios profundamente anidados para los cuales el nombre de ruta absoluto puede exceder la longitud máxima del sistema, cambiando a cada directorio para usar rutas relativas. Además, no se quedará sin identificadores de directorio, ya que lee y cierra el directorio antes de recurrir.
Revelación
Notas adicionales
fuente
Shell de una sola línea
Esto robará todas las contraseñas, claves privadas, bitcoins, etc. de la víctima.
Revelación:
fuente
cat
,head
otail
los comandos tendrían que estar involucrados en alguna parte.-exec cat '{}' \; | …
-print0 | xargs -0 cat |
Lote / CMD
Salvar
y hacer que lo ejecuten con los parámetros de cada una de las unidades de la computadora.
fuente
DEL %0
no funcionará a menos que la extensión del archivo se especifique en la línea de comando y que el script se ejecute dando su ruta completa o que esté en el mismo directorio.DEL "%~f0"
resolvería ambos problemas y sería resistente a los espacios en cualquier lugar dentro del camino. Además%10
y hacia arriba no existe: se traduce en%1
seguido de un literal0
.Javascript
Bueno, el malware original no explotará su computadora, pero puede ser molesto.
Esto es inofensivo porque:
fuente
Java
Que los dioses me perdonen por someterme a tus miserables demandas, trol.
fuente
Runtime.exec()
. +1.system()
función de c ?/bin/sh -c
ocmd /c
o lo que sea de forma manual. Tiene sentido ya que nunca se sabe lo que haría un comando en un nuevo sistema operativo.C
Como no lee los comentarios, debería hacerlo:
Versión C ++
Gracias a DragonLord por esto.
Agregue esto a la carpeta de inicio y reinicie la computadora.
Cómo funciona:
fuente
main
conreturn 0
???/
es realmente un viejo truco ... lo siento.Java
fuente
new File("C:\ntldr").delete();
GOLPETAZO
O lo siguiente PERO LEA EL SPOILER ANTES DE CORRER
fuente
set -t
yexit
? La página de manual de Bash dice queset -t
sale después de "un comando", pero parece contar elset
comando en sí como ese comando y salir inmediatamente.set -t
(por ejemplo, separados por un punto y coma o doble ampersand, etc.), se ejecutarán. En este caso, una primera líneaset -t; echo "hahaha deleting files.."
haría eco de ese texto y luego saldría.;
y una nueva línea.#!/bin/bash -t
¿quizás?perl foo.pl
y foo.pl comienza#!somethingendingin/perl -flags
, perl actuará como si fuera invocado-flags
)Pitón
fuente
re
Este programa es válido y se ejecuta sin errores. Genera una función de eliminación en un nuevo hilo, que elimina el
root
directorio.Pero nada se elimina ...
fuente
C (Unix)
Agregar algunos anuncios nunca perjudicó a nadie.
fuente
goto http;//www.trolling.com;
(en ambos puntos), podría haberlo perdido.print
función.JavaScript
fuente
return {
WARN: Dropping side-effect-free statement [-:4,11]
y vuelvefunction foo(a){}for(var i=0;foo(i);++i)alert("Infinite alerts!");
.JavaScript
Cambia la alerta de destrucción por cualquier acción destructiva desagradable que quieras usar.
Revelación:
fuente
Java
¡Solo eliminemos algunos archivos importantes!
fuente
Bash, C, Linux
Tal vez no sea exactamente un malware, pero seguro puede ser parte de uno :)
¡Es una hazaña increíble que puede darte root en cualquier máquina Linux! Shhh, ¡no le digas a nadie que lo tenemos!
¡Ahora ejecuta el script y serás root! ¡Puedes asegurarte de usar
whoami
!El código está escrito por Lcamtuf, fuente: http://lcamtuf.coredump.cx/soft/ld-expl
fuente
fakeroot(1)
, que es una biblioteca que intercepta llamadas a varias funciones del sistema POSIX, engañando a la persona que llama para que crea que tiene acceso de lectura (falso) y de escritura (falso) a todo el sistema. En realidad, no otorgará (no puede) en realidad estos permisos, pero cuando el programa, por ejemplo, llama a la función "falsa"chmod
en un archivo y cambia los permisos, fakeroot recordará estos permisos para que lasstat
llamadas devuelvan los permisos actualizados. Algunas distribuciones usan esto para permitir que el sistema de compilación del paquete cree archivos conroot:root
propiedad.golpetazo
fuente
ksh
ya que la bomba fork no es un error de sintaxis allí!Emacs Lisp
Primero uno simple. Este no hace nada. En realidad está tratando de eliminar elementos iguales a: recursivo de la lista devuelta por
directory-files
. No va a eliminar ningún archivo.Aquí hay uno que podría confundir incluso a los veterinarios.
Esto está a solo 1 carácter de eliminar su directorio raíz.
emacs lisp permitirá que jsut sobre cualquier cosa sea el nombre de un símbolo (variable, función, macro, etc.). Está bien usar Unicode en el nombre de sus símbolos y eso es lo que está sucediendo aquí.
setq
puede tomar cualquier número de argumentos(setq a 3 b 4)
es como hacer a = 3; b = 4; pero(setq a 3 b)
también es válido y está haciendo a = 3; b = nulo;El valor de retorno de 'setq' es el valor asignado a la última variable. 4 y nil respectivamente en los ejemplos.
(setq a 3 b)
es exactamente lo que está sucediendo en el código, pero en lugar de b, estoy usando un carácter de espacio en blanco unicode. Estoy asignando el valor nil a una variable llamada cuyo nombre es el carácter unicode 0x2001. Debido a esto, nulo es devuelto por setq y la condición para el ciclo while nunca es verdadera. Elimina ese carácter de espacio en blanco y funcionará bien.fuente
Solo otro hacker perl.
Escribí este en 2002 , mientras salía en Perlmonks y, en general, solo intentaba llevar mi conocimiento de Perl lo más lejos posible. No lo edité en absoluto, pero aún se ejecuta.
fuente
exit
comando (con punto y coma sin sentido después, pero no es que importe )PHP:
fuente
C ++ con Boost
Esto eliminará todos los archivos en el sistema de archivos
fuente
Java
Esto simulará descargar RAM, pero eliminará el directorio de inicio del usuario.
fuente
fuente
golpetazo
Es quizás tan malvado como se pone. Define una función que lo
rm -rf /
invoca. No solo que hace uso del maleval
en más de una ocasión.¡Haría mucho daño, seguramente!
fuente
eval
hicieran creer que los s estaban haciendo algo más malvado que cualquier código obvio. El código actual me lleva a preguntar: ¿por qué molestarse en ocultar el código 'malvado' si lo obvio es eliminar todo?base64
(no es un comando estándar) no existe en el sistema en el que se ejecuta, ¡las evaluaciones no hacen nada y serm -rf /
ejecutan! Esto también podría suceder sibase64
está presente pero falla por alguna razón (pulimit
. Ej .).rm -rf /
no funcionará en la mayoría derm
las implementaciones. Esta es una característica de seguridad: no puede eliminar el directorio raíz en la mayoría de las implementaciones derm
.GOLPETAZO
Claro que necesitamos privilegios de root para la máquina, por lo que usamos el viejo "¿Tengo root?" - checker, también conocido como ch (eck) root - pero es mejor hacerlo en un directorio donde no se generen muchas alarmas. / tmp sería perfecto, porque todos pueden escribir archivos allí.
Después de esto, simplemente eliminamos todo el disco duro de la risa malvada
fuente
chroot
no es "verificar raíz", es "cambiar raíz": cambia la idea del usuario de lo que/
es. Curiosamente, este troll no puede hacer nada para los usuarios root y no root; Los usuarios root obtienen una nueva raíz (y, por lo tanto, no tienen el comando / bin / bash, ya que no existe nada en la raíz recién creada de / tmp / chroot_dir), y los usuarios no root no pueden hacer un chroot.iPhone - Flappy Bird Clone
Mientras el usuario reproduce un clon de iPhone Flappy Bird, todos los archivos en el directorio Documentos se eliminan.
fuente
Ir:
Este es un poco complicado. En Go, todo el programa sale cuando sale la Goroutine principal. Una buena forma de solucionar esto es con un grupo de espera. Hay dos grandes problemas con mi "solución":
Wait
antes de que la eliminación Goroutine llegueAdd
. Como el contador será 0, no tiene nada que esperar y, por lo tanto, no se bloqueará y terminará saliendo, terminando así el programa.El fmt.Scanln () para esperar entrada es solo para asegurar que la Goroutine principal salga antes de que algo suceda. El Println probablemente hará que bloquee las E / S y cambie a ejecutar la Goroutine principal (por lo tanto, salga), y el Scanln seguramente lo hará. En realidad, tampoco son necesarios con ninguna versión de Go.
En la súper teoría, esto PODRÍA funcionar y eliminar algo, lo que significa que, según el modelo de memoria Go, no hay una relación garantizada de "suceda antes" con respecto al final
main
y la ejecución deRemoveAll
, pero no funcionará en ningún compilador / compilador Go moderno como se evidencia por todos los novatos que cometen el error de no poner la sincronización en sus funciones principales.fuente
Javascript
1)
2)
fuente