windowsdlls
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
windowsdlls [2009/05/03 06:37] – nopsled | windowsdlls [2009/06/27 19:31] – Add link to Jan Newgers blog glaubitz | ||
---|---|---|---|
Line 33: | Line 33: | ||
</ | </ | ||
- | *** | + | === Virtual Machine overview |
- | Virtual Machine overview | + | |
- | *** | + | |
< | < | ||
---------------------------------- | ---------------------------------- | ||
Line 73: | Line 72: | ||
</ | </ | ||
+ | |||
+ | === C++ interface to the virtual machine (application loader) === | ||
+ | < | ||
+ | #include < | ||
+ | #include < | ||
+ | using namespace std; | ||
+ | |||
+ | class SalBytecode | ||
+ | { | ||
+ | SalBytecode(unsigned int); | ||
+ | clear(); | ||
+ | dataType(); | ||
+ | SalBytecode & operator=(class SalBytecode const &); | ||
+ | ~SalBytecode(); | ||
+ | |||
+ | // Input stream operators | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | operator<< | ||
+ | |||
+ | // Output stream operators | ||
+ | operator>> | ||
+ | operator>> | ||
+ | operator>> | ||
+ | operator>> | ||
+ | operator>> | ||
+ | operator>> | ||
+ | |||
+ | private: | ||
+ | SalBytecode:: | ||
+ | |||
+ | // 10 vars | ||
+ | // var 0 | ||
+ | uchar *StreamBuf; | ||
+ | int StreamPos; | ||
+ | long int lenStreamBuf; | ||
+ | |||
+ | int inArgSize; | ||
+ | }; | ||
+ | |||
+ | void salExec0(SalBytecode& | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== OpenMG Secure Module - Implementation Architecture ===== | ||
+ | |||
+ | * References: | ||
+ | Sony Patent EP1 496 439 A1, Fig.6 there is a diagram illustrating the functional structure of the client. | ||
+ | |||
+ | Note: Patent diagram says following: | ||
+ | |||
+ | Security Module: | ||
+ | |||
+ | [0047] A security module 53 performs processing relating | ||
+ | to data security, such as encryption of the modules. | ||
+ | A request for the security-related processing generated | ||
+ | in the modules is sent to the security module 53, | ||
+ | and the security module 53 performs encryption or the like | ||
+ | in response to the request. | ||
+ | |||
+ | DRM Module: | ||
+ | |||
+ | [0043] Fig. 6 shows an example of the functional | ||
+ | structure of the client 1. A DRM (Digital Right Management) | ||
+ | module 51 communicates the content, right data, | ||
+ | etc., or manages the right data. | ||
+ | |||
+ | Comparision with the implementation: | ||
+ | |||
+ | Playback module, write module, read module, lcm module all communicate directly to | ||
+ | the DRM module or Security Module. These modules would be OmgNetMD.dll, | ||
+ | |||
+ | Modules in the plugin-layer at the top would communicate with these " | ||
+ | they never directly communicate with salwrap/ | ||
+ | There are tough, exceptions, a couple of functions can be used in pfcom trough COM. Its also possible to use SAL (salExec0) using COM (omgmisc.dll DLL link to salwrap.dll salExec0). | ||
+ | |||
+ | < | ||
+ | .................................................................................................... + UI | ||
+ | SonicStage | ||
+ | .................................................................................................... | ||
+ | ^ ^ | ||
+ | | | | ||
+ | | COM | ||
+ | v v | ||
+ | .................................................................................................... Plug-in layer (AVLib) | ||
+ | + CheckOut +Playback | ||
+ | + CheckIn +Convert | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | NetMDAPI.dll | ||
+ | | ||
+ | | ||
+ | NetMDUSB.dll | ||
+ | | ||
+ | .................................................................................................... OpenMG | ||
+ | ^ | ||
+ | | COM | ||
+ | DLL | ||
+ | ----------------------- | ||
+ | pfcom.dll | ||
+ | | | ||
+ | | | ||
+ | | ||
+ | | ||
+ | | | ||
+ | | ||
+ | | | ||
+ | | | ||
+ | ----------------------- | ||
+ | ^ | ||
+ | | | ||
+ | v | ||
+ | | ||
+ | | ||
+ | maclist1.dat, | ||
+ | [License information] | ||
+ | OMGKEY\salomgid.dat | ||
+ | < | ||
+ | | ||
+ | |||
+ | |||
+ | .................................................................................................... Secure Applications | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | SAL Runtime | ||
+ | | ||
+ | |||
+ | .................................................................................................... | ||
+ | </ | ||
+ | |||
+ | |||
===== The ocm-files ===== | ===== The ocm-files ===== | ||
Line 80: | Line 224: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | OCM handling code is stored in a private git repository (run using [[http:// | ||
+ | |||
+ | < | ||
+ | Hostname z6.physik.fu-berlin.de | ||
+ | IdentityFile ~/ | ||
+ | </ | ||
+ | |||
+ | After that, you can clone the repo by using | ||
+ | < | ||
+ | git-clone gitosis@z6.physik.fu-berlin.de:/ | ||
+ | </ | ||
The OCM files (except for init.ocm which contains an extra layer of packing) are interpreted as [[OCMBytecode]] | The OCM files (except for init.ocm which contains an extra layer of packing) are interpreted as [[OCMBytecode]] | ||
Line 95: | Line 251: | ||
[[ocmchatlog1]] | [[ocmchatlog1]] | ||
+ | |||
+ | These pages show internals of some modules (internal access only) | ||
+ | |||
+ | * Netmd.ocm: [[netmdocm]] | ||
+ | * Device.sal: [[devicesal]] | ||
+ | |||
+ | ===== Links ===== | ||
+ | |||
+ | * [[http:// | ||
windowsdlls.txt · Last modified: 2010/04/29 14:48 by megadiscman