My favorite hypothetical virus

Thursday, May 28, 2015 :: Tagged under: engineering pablolife. ⏰ 1 minutes.


Hey! Thanks for reading! Just a reminder that I wrote this some years ago, and may have much more complicated feelings about this topic than I did when I wrote it. Happy to elaborate, feel free to reach out to me! 😄


I took and TA-ed my college's Computer Security course, where we did things like write malware and put it on VMs, or sillier projects like port knocking. Who knows what they're doing now.

Anyways, I always had one idea for a virus I wanted to write to maximize chaos:

Every n hours, the virus finds two files on the filesystem that have identical filetypes. Then, it swaps the files, but also swaps their filenames. Let's see this in action:

<h1 id="find-two-files-of-similar-types-then-do-something-like">Find two files of similar types, then do something like:</h1>

File1=$HOME/Videos/wedding_video.mp4
File2=$HOME/secret/gigli_ben_afflect_j_lo.mp4

mv $File1 $HOME/secret/gigli_ben_afflect_j_lo.mp4.tmp
mv $File2 $HOME/Videos/wedding_video.mp4
mv $HOME/secret/gigli_ben_afflect_j_lo.mp4.tmp $HOME/secret/gigli_ben_afflect_j_lo.mp4

What this does is: over time, the user's filesystem will appear identical by most human measurement (the 'Movies' directory will contain a bunch of video files, with the same names as it's ever had), but when if and when the user ever tries to open/use it, it contains something else entirely. In the example above, when the owner wants to watch Bennifer's Gigli, they'll see a wedding video instead. When they want to watch their wedding video, they'll get Gigli. Do this slowly, across the entire filesystem and any filetypes.

I never even wrote a prototype, but when I considered doing anything like that, I always envisioned keeping something like a 'transaction table' so it would be easy to roll back.

Thanks for the read! Disagreed? Violent agreement!? Feel free to drop me a line at , or leave a comment below! I'd love to hear from you 😄