Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up of the virtualization engine. #19

Closed
GoogleCodeExporter opened this issue Oct 6, 2015 · 4 comments
Closed

Clean up of the virtualization engine. #19

GoogleCodeExporter opened this issue Oct 6, 2015 · 4 comments

Comments

@GoogleCodeExporter
Copy link

Now that the registry virtualization engine's basic development is running to 
an end and that the file system virtualization engine has already proved to be 
reliable, it's time for a major clean up of the complete virtualization engine.

This clean up should at least fix the following issues:
* Inconsistent naming between registry and file system functions
   For example: DoCreateFile vs RegCreateKeyEx_Hooked
* Centralize the declaration of native types and functions
* Encapsulate and centralize calls to native types and functions
* ...

Original issue reported on code.google.com by simon_al...@hotmail.com on 27 Jun 2010 at 10:29

@GoogleCodeExporter
Copy link
Author

First changes are already made in r303 and in the previous development of the 
registry virtualization engine.

Original comment by simon_al...@hotmail.com on 27 Jun 2010 at 10:30

  • Changed state: Started

@GoogleCodeExporter
Copy link
Author

What started as a simple clean up has now grown to a complete rework.
This rework must result in a flexible, consistent and maintainable system
in which all engine components are completely encapsulated.


r334    Rework of AppStract.Server.Hooking namespace - Phase 1

In this revision multiple important changes were made:
- Added the HookProvider type, and it's derived classes
- Added the HookHandler type, and it's derived classes
The old HookManager is completely reworked to support these types.
It's possible to register multiple HookProviders to HookManager, while each of 
those HookProviders contains a (private) HookHandler class.
In essence, a HookProvider provides API hooks by providing the needed 
delegates, and the needed handler methods (HookHandler).
Currently only two HookProviders are declared:
- FileSystemHookProvider (makes use of an IFileSystemProvider in it's 
HookHandler class)
- RegistryHookProvider (makes use of an IRegistryProvider in it's HookHandler 
class)
In a later stage more providers can easily be added, for example: 
ProcessHookProvider (CreateProcess function), CLRHookProvider (hooking basic 
CLR functions), NetworkHookProvider (hooking network functions), ...


r336    Rework of AppStract.Server.Hooking namespace - Phase 2
    - Added the VirtualizationEngine class.
    - Added the AppStract.Server.Engine namespace and moved some other namespaces around.

The VirtualizationEngine class is responsible for managing the complete 
virtualization engine (previously the engine was somehow managed in GuestCore). 
Currently it's not possible to shut the engine down, although this 
functionality can easily be implemented if the need would ever arise.
Also, the namespaces have been reorganized. For types outside of the 
AppStract.Server.Engine namespace only the VirtualizationEngine type should be 
important, since all other types are managed by it.

Original comment by simon_al...@hotmail.com on 4 Aug 2010 at 8:51

@GoogleCodeExporter
Copy link
Author

Closing this issue, a lot has changed since august.

The engine is now well implemented, except for the initialization logics (but 
for this another issue will be created)

Original comment by simon_al...@hotmail.com on 6 Dec 2010 at 6:15

@GoogleCodeExporter
Copy link
Author

Marked as fixed

Original comment by simon_al...@hotmail.com on 6 Dec 2010 at 6:16

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant