Skip to content
/ COMA Public

A self-reproducing program written for learning purposes.

License

Notifications You must be signed in to change notification settings

nramon/COMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMA logo Build Status

COMA

COMA is a self-reproducing program written for learning purposes. Although there is no malicious code in COMA, it does modify any COM file it attaches to. However:

  • COMA is itself a 16 bit COM file. It will not even run on a 64 bit Windows OS.
  • It only attaches to the first COM file it finds in its current working directory. It does not traverse directories or drives.
  • It ignores system and hidden files.
  • It is very verbose about what it does and logs to STDOUT.
  • A utility to remove COMA from any files it has attached to is provided.

Building on Linux

Make sure NASM is installed. Then, from the project's top level directory, run the following command:

make

This will build coma.com and clean.com. COMA's tests are run on DOSBox. If you would like to run them, install it and then run:

make test

Running COMA

The easiest way to try COMA is to install DOSBox and, from the project's top level directory, run the following command:

dosbox -conf dosbox/dosbox.conf

Inside DOSBox, copy to *c:* any COM file you want COMA to attach to and run:

coma

The next time that COM file is run, COMA will run first (attaching to another COM file if it can) and then it will transfer control back to the original program.

FAQ

How do I remove COMA from a COM file?

Simply place clean.com in the same directory as the COM file and run:

clean

What's with the 41 character column width?

Sorry about that! COMA was written on a 5.1-inch screen and anything over 41 characters made the source code unreadable :-S

Copyright

Copyright (C) 2016 Ramon Novoa ramonnovoa@gmail.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

A self-reproducing program written for learning purposes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published