kungfooman / appstract

Automatically exported from code.google.com/p/appstract
0 stars 0 forks source link

Clean up of the virtualization engine. #19

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
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 commented 9 years ago
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

GoogleCodeExporter commented 9 years ago
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 commented 9 years ago
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 commented 9 years ago
Marked as fixed

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