SHARE
TWEET

Untitled

maxkunes May 23rd, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. json j;
  2.                         std::vector<UINT64> v;
  3.  
  4.                         mono_assembly_foreach((GFunc)AssemblyEnumerator, &v);
  5.  
  6.                         for (auto& assembly : v) {
  7.                             auto image = mono_assembly_get_image((void*)assembly);
  8.  
  9.                             if (!image)
  10.                                 continue;
  11.  
  12.                             auto name = mono_image_get_name(image);
  13.            
  14.  
  15.                             json assemblyDesc;
  16.                             assemblyDesc["assembly"] = (std::uintptr_t)assembly;
  17.                             assemblyDesc["image"] = (std::uintptr_t)image;
  18.                             assemblyDesc["name"] = std::string(name);
  19.  
  20.  
  21.                             auto tableInfo = mono_image_get_table_info(image, MonoMetaTableEnum::MONO_TABLE_TYPEDEF);
  22.  
  23.                             if (!tableInfo)
  24.                                 continue;
  25.  
  26.                             auto infoCount = mono_table_info_get_rows(tableInfo);
  27.  
  28.                             try {
  29.  
  30.                                 for (int i = 1; i < infoCount; i++) {
  31.                                     auto monoClass = mono_class_get(image, MONO_TOKEN_TYPE_DEF | (i + 1));
  32.  
  33.                                     if (monoClass) {
  34.                                         json classDesc;
  35.  
  36.                                         classDesc["name"] = std::string(mono_class_get_name(monoClass));
  37.                                         classDesc["namespace"] = std::string(mono_class_get_namespace(monoClass));
  38.  
  39.                                         assemblyDesc["classes"].push_back(classDesc);
  40.                                     }
  41.                                 }
  42.                             }
  43.                             catch (...) {
  44.                                 assemblyDesc["classes"] = "Exception";
  45.                             }
  46.                            
  47.                             j.push_back(assemblyDesc);
  48.                         }
  49.  
  50.                         WriteJSON(j);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top