User Tools

Site Tools


netmdocm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
netmdocm [2010/06/09 07:35] megadiscmannetmdocm [2011/01/16 14:33] nopsled
Line 170: Line 170:
         04 14 43EA428F71EE7B665D10752E85AB16E5A50C6249 ; MAC         04 14 43EA428F71EE7B665D10752E85AB16E5A50C6249 ; MAC
         04 14 638163B82C4E31810FBEE01B2E7FC25B879586E3 ; Enc(CKEY) ? Offset 0x1E according to Jan (// key is at offset 0x1E! (OMGDecrypter.cpp)         04 14 638163B82C4E31810FBEE01B2E7FC25B879586E3 ; Enc(CKEY) ? Offset 0x1E according to Jan (// key is at offset 0x1E! (OMGDecrypter.cpp)
- 
         30 80 02 01 6B ; 17 (some time stamp)         30 80 02 01 6B ; 17 (some time stamp)
               02 04 48C2298F               02 04 48C2298F
Line 906: Line 905:
 ===== maclist(1) ===== ===== maclist(1) =====
  
-/* +XOR the SalOmgId with a constant keyexpand that to a symmetric key and apply to the SHA-1 hash of MACLIST.  Compare the result with param3 and return 1 if they are equal.  In other wordsparam3 is a complicated hash of the MACLIST.
-Procedure prototype: +
- maclist(01) +
- +
-Input: +
- +
-SalNonConstPointer const &, +
-SalPointer const &, +
-SalOmgId const &, +
-long, +
-SalExtrinsicsProg const & +
- +
-Output: +
- +
-long +
- +
-*/+
  
 ===== Sample input: ===== ===== Sample input: =====
Line 948: Line 931:
 } ; } ;
  
- 
-XOR the SalOmgId with a constant key, expand that to a symmetric key and apply to the SHA-1 hash of MACLIST.  Compare the result with param3 and return 1 if they are equal.  In other words, param3 is a complicated hash of the MACLIST. 
  
 ===== maclist(8) ===== ===== maclist(8) =====
Line 1514: Line 1495:
 </code> </code>
  
-===== icv.ocm Decompiled ===== 
- 
-<code> 
- 
-// 
-// Generate a SalOmgId 
-// 
-//   Example: 30 80 0410010F5000000400000000006E2B2A75BA 00 00 
-//    
-//   <OMG Directory>\OMGKEY\omg_id..dat 
-// 
-// Note: When OpenMG is used (trough the UI) for the first time this value is generated,  
-//       by calling the salwrap function getSalOmgId. 
-// 
-//                   const unsigned __int8 *__cdecl getSalOmgId() 
-// 
-blob_t icv(07) 
-{ 
- blob_t SalIdPRNG  = BCX_1C_GetPRNGBytes(5); 
- static blob_t PrefixSalOmgId[8] = {0x01,0x0F,0x50,0x00,0x00,0x04,0x00,0x00};  
- data = BCX_01_Concat(PrefixSalOmgId, SalIdPRNG); 
- Push 1 
- Pack_To_Array 
- Create_Array 
-} 
-</code> 
- 
-===== maclist.ocm  ===== 
- 
-// maclist(1) 
-// 
-// work in progress 
- 
-<code> 
- 
-int  
-maclist_0x01(blob_t SalOmgId, blob_t maclist2dat, blob_t OmgIcvCache) 
-{ 
-  static blob_t pad[16] = {0x20, 0xBE, 0xDE, 0x72, 0xA3, 0xB8, 0x62, 0x60,  
-                           0x71, 0x44, 0x3A, 0x33, 0xE9, 0xAC, 0x69, 0xCE}; 
-  static SHA1state, hash_maclist, hash_maclist_salomgid, xor_SalOmgId; 
- 
-  SHA1state             = BCX_19_InitSHA1(); 
-  BCX_1A_SHA1AddData(maclist, 0, SHA1state); 
-  hash_maclist         = BCX_1B_SHA1Finish(SHA1state); 
- 
-  xor_SalOmgId          = BCX_06_XorBlobs(SalOmgId, pad); 
-  hash_maclist_salomgid = salenc_sha1(SalOmgId_xor, hash_maclist); 
- 
-  hash_maclist == hash_xorSalOmgId? TRUE: FALSE   
-} 
  
-</code>  
netmdocm.txt · Last modified: 2024/05/21 14:50 by nopsled

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki