Nelson Shaw Design Project
Contents |
Trojan Project
As part of the COSC429 Information Warfare course, development of a Trojan module is required.
The software should have command and remote modules, which are connected together via sockets. Functionality such as screen capture, key log capture and remote file browsing is required.
A more formal description is shown below.
Design Study
A current log of work spent on the project can be found here Design Project Log
Requirements
- Secure - Components and communication of software should be secure and unable to modify
- Maintainability - Easy to add new functionality (e.g. Multiple remote modules)
- Extensible - Add additional software components easily (e.g. Software to deliver remote module onto target system)
Constraints
Remote and control module communication, processing speed and associated overhead costs.
Initial Design
This is my current UML diagram -- a work in progress. I think I have the basic structure, but obviously there are a few class attributes and functions missing.
Description of Classes
ControlUnit is the main class of the control module. An observer pattern is used with the GUI and Controller. Communicator is used to set up a connection between the control and remote modules. The type of encryption can be set, by passing an EncryptionStandard object. The use of EncryptionStandard with the various subclasses allows the program to be extended to incorporate various encryption types. The main way the remote and control units will communicate, is by serializing and sending Task objects. Once an object is serialized it is then encrypted and sent. When received it is first decrypted and then deserialized. By using the strategy pattern for the Task class, it allows easy modification to add new functionality to the program. Once a task is performed by the remote program, data is added to the task which is then sent back to the control unit. The data class can be one of various types, and the control unit will contain a list of these data objects which can then be displayed by the GUI.
Data is a class that is intended will carry information between the modules.
Design Critique
Criticism of design goes here.
Design Improvements
Possible improvements.
Thanks to User: James Ashford for the project page template.