diff --git a/BinaryObjectScanner/README.md b/BinaryObjectScanner/README.md new file mode 100644 index 00000000..89e73fee --- /dev/null +++ b/BinaryObjectScanner/README.md @@ -0,0 +1,35 @@ +# BinaryObjectScanner + +This library contains all of the logic for protection and file type scanning. + +## Project and Class Organization + +This section contains information on project and class organization principles that depend on the part of the project you are working in. See the following table for details. + +| Project | Description | +| --- | --- | +| `BinaryObjectScanner` | One file per class. See below for details on subdirectories. | +| `BinaryObjectScanner/FileType` | One file per file type. | +| `BinaryObjectScanner/GameEngine` | At least one file per game engine. Partial classes allowed. | +| `BinaryObjectScanner/Interfaces` | One file per interface. | +| `BinaryObjectScanner/Packer` | At least one file per packer type. Partial classes allowed. | +| `BinaryObjectScanner/Protection` | At least one file per protection type. Partial classes allowed. | + +If the project or directory you are looking for is not included in the above, please consider it to be outside the context of this document. + +## Code Organization + +This section contains information on in-code organization principles that depend on the part of the project you are working in. See the following table for details. + +Typed checks, such as `IExecutableCheck` should always follow this order: `MSDOS`, `LinearExecutable`, `NewExecutable`, `PortableExecutable`. + +| Project | Description | +| --- | --- | +| `BinaryObjectScanner` | Varies from file to file. | +| `BinaryObjectScanner/FileType` | `IDetectable` implementations, helper methods. | +| `BinaryObjectScanner/GameEngine` | `IContentCheck` implementations, `IExecutableCheck` implementations, `IPathCheck` implementations, helper methods. | +| `BinaryObjectScanner/Interfaces` | Methods ordered alphabetically. | +| `BinaryObjectScanner/Packer` | `IContentCheck` implementations, `IExecutableCheck` implementations, `IPathCheck` implementations, helper methods. | +| `BinaryObjectScanner/Protection` | `IContentCheck` implementations, `IExecutableCheck` implementations, `IPathCheck` implementations, helper methods. | + +If the project or directory you are looking for is not included in the above, please consider it to be outside the context of this document. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b99f8ec0..6f2c3e81 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Coding Guide -This document serves as the official code standards guide for `BinaryObjectScanner` internal development. Please note that this is a work in progress and may not encapsulate all standards expected of new or existing code. The included `.editorconfig` file can help enforce some of the standards mentioned below. +This document serves as the official code standards guide development. Please note that this is a work in progress and may not encapsulate all standards expected of new or existing code. The included `.editorconfig` file can help enforce some of the standards mentioned below. ## General Code Guidelines @@ -350,37 +350,3 @@ This section contains information on code standards regardless of which part of // But here the statements are logically linked but // needed additional formatting ``` - -## Project and Class Organization - -This section contains information on project and class organization principles that depend on the part of the project you are working in. See the following table for details. - -| Project | Description | -| --- | --- | -| `BinaryObjectScanner` | One file per class. See below for details on subdirectories. | -| `BinaryObjectScanner/FileType` | One file per file type. | -| `BinaryObjectScanner/GameEngine` | At least one file per game engine. Partial classes allowed. | -| `BinaryObjectScanner/Interfaces` | One file per interface. | -| `BinaryObjectScanner/Packer` | At least one file per packer type. Partial classes allowed. | -| `BinaryObjectScanner/Protection` | At least one file per protection type. Partial classes allowed. | -| `ProtectionScan` | All functionality lives in `Program.cs`. | - -If the project or directory you are looking for is not included in the above, please consider it to be outside the context of this document. - -## Code Organization - -This section contains information on in-code organization principles that depend on the part of the project you are working in. See the following table for details. - -Typed checks, such as `IExecutableCheck` should always follow this order: `MSDOS`, `LinearExecutable`, `NewExecutable`, `PortableExecutable`. - -| Project | Description | -| --- | --- | -| `BinaryObjectScanner` | Varies from file to file. | -| `BinaryObjectScanner/FileType` | `IDetectable` implementations, helper methods. | -| `BinaryObjectScanner/GameEngine` | `IContentCheck` implementations, `IExecutableCheck` implementations, `IPathCheck` implementations, helper methods. | -| `BinaryObjectScanner/Interfaces` | Methods ordered alphabetically. | -| `BinaryObjectScanner/Packer` | `IContentCheck` implementations, `IExecutableCheck` implementations, `IPathCheck` implementations, helper methods. | -| `BinaryObjectScanner/Protection` | `IContentCheck` implementations, `IExecutableCheck` implementations, `IPathCheck` implementations, helper methods. | -| `ProtectionScan` | New functionality should be added as a combination of a flag with a long and a short form, a new line in the help text, and a new method (if necessary). | - -If the project or directory you are looking for is not included in the above, please consider it to be outside the context of this document.