Skip to content

Small tool for crashing computers in specific ways

License

Notifications You must be signed in to change notification settings

ninjabear/dr-doom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dr Doom Build Status

Dr Doom

Consume resources, see what happens.

Use

dr-doom memory-cannon

Consume as much memory as a single process can. This is achieved by mallocing 4Kb blocks until our process is killed by the kernel. After each malloc the memory is set to zero to ensure the allocation has really occured.

dr-doom fork-bomb

fork() the dr-doom process over and over again in classic fork bomb fashion. Each fork allocates and writes 10Mb of memory to ensure the process is copied and each instance is not using the same page(s) of memory.

dr-doom halt-catch-fire

Create threads for each parallel stream of execution (cores/HT) that your processor supports. Each loop is kept busy resulting in nearly 100% CPU usage.

dr-doom too-many-file-handles

Create a temporary file, and open it for reading as many times as possible. When the first error is received, no more file handles will be created. This will consume the maximum number of file handles available to the dr-doom process.

dr-doom thread-bomb

Create as many threads as possible. When the first error is received, no more threads will be created. Each thread is put in a WAIT (blocking) state, not a busy loop.

dr-doom -h | --help

Print the help.

dr-doom -v | --version

Print the version.

Vagrant

If you want to try this out on your own machine. Please use the provided Vagrant configuration (dr-doom should not crash the host machine if used in Vagrant).

vagrant up && vagrant ssh
cd /vagrant
dr-doom fork-bomb

Development

dr-doom is written in C++. Source files are under ./src. The executable can be built with make.