# Stresser
## Team
[Aviv Shabtay](https://github.com/AvivShabtay) |
[Elior Shriki](https://github.com/EliorShriki) |
[Or Pinhas](https://github.com/orpinhas20)
---
## Background
Stresser is a complete Endpoint Security Solution contains Central management and Agents using unique method to protect against sophisticated Malwares.
---
## Main features
- Anti-Malware protections - exploiting malware's Anti-Technics (Anti-Detection, Anti-VM, Anti-Sandbox, etc) in order to supply protection.
- Centralized Management - provides greater visibility, manage operations, unifies security with a simple UI.
- Dynamic & Static operation - support both capabilities, giving the user control of the overload on the system.
- Simple to deploy and maintains - ready-to-use suite for Windows environment.
---
## Main components
- Server - interface for clients (Web management, Agents), interface to data, manage tasks and operation of the agent.
- Web management - UI for the users, provide easy interface to configure policy, manage rules, check events and control the entire solution.
- Agent - background service, contains user-mode client and kernel-mode engine, enforce the policy and provides protection on the endpoint.
---
## Useful links
- Microsoft example for demonstrating the difference between various types of IO communication: https://github.com/microsoft/Windows-driver-samples/tree/master/general/ioctl/wdm
- OSR example of using kernel notifications (Object notification and more) can be found here: https://github.com/OSRDrivers/kmexts
- Microsoft example for demonstrating usage of Object callback: https://github.com/microsoft/Windows-driver-samples/tree/master/general/obcallback
- Microsoft example for shared event between UM application and KM driver: https://github.com/microsoft/Windows-driver-samples/tree/master/general/event
---
## Common issues
### "Inf2Cat, signability test failed." Error: 22.9.7 "DriverVer set to a date in the future"
- Possible solution is to set the `Run Inf2Cat` option (under project Properties -> Inf2Cat) to turn `Off`.
- Another solution is to set the `Use Local Time` option (under project Properties -> Inf2Cat) to `Yes`
- More information about this issues can be found here: https://stackoverflow.com/a/17005092
### `SYSTEM_THREAD_EXCEPTION_NOT_HANDLED` when calling `ObRegisterCallbacks`
- Caused by the lake of `/integritycheck` flags in driver project.
- Under project Properties -> Linker -> Command Line -> add the following flag: `/integritycheck`.
- More information about this issues can be found here: https://community.osr.com/discussion/189136/about-obregistercallbacks
### error C2371: `'PEPROCESS'` : redefinition; different basic types
- This caused by conflicts between two included headers: `ntddk.h` and `ntifs.h`.
- The solution is to only include `ntifs.h`.
- More information about this issue can be found here: https://community.osr.com/discussion/170511
### Convert resource path to relative path
- Use pre-processor symbols and create kind of "compile time-constant"
- Under your property settings to go: Resource -> General -> Preprocessor Definitions -> Edit
- Add your compile time symbol and use VS macros to get relative path, for example: `SOLUTION=$(SolutionDir)`
- Right click on your `.rc` file and choose `view code`
- Use the symbol instead of using relative paths
- For more info check my `props` folder -> `.props` file and `.rc` file
---