comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[C++]Obteniendo Informacion de la PC

  • 0 Respuestas
  • 1591 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado s00rk

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Julio 24, 2011, 03:56:54 am »
Bueno estos dias he estado un poco perdido jeje en unos proyectos en uno de ellos trataba de bloquear PC del uso de un Juego(banearlos), y como lo mas usual es la IP, pero esta puede ser cambiada decidi mejor hacer un Ban de Hardware  asi tendrian que cambiar de PC y esto seria mas sencillo para no complicarnos jeje (exepcion cuando juegan en cybers xD)

Bueno ya sin mucho que decir aqui se los dejo, se que no es la gran cosa ni tampoco muy bueno pero les podria servir, el source lo obtuve de otro que estaba en C# Aunque no recuerdo el auto :/

Bueno aqui esta:

Código: C
  1. #define _WIN32_DCOM
  2. #include <iostream>
  3. using namespace std;
  4. #include <comdef.h>
  5. #include <Wbemidl.h>
  6. #include <comutil.h>
  7. #include <fstream>
  8. char *H;
  9.  
  10. # pragma comment(lib, "wbemuuid.lib")
  11.  
  12. char *ToChar(string msg)
  13. {
  14.     char *frase = new char[msg.length()+1];
  15.     No tienes permisos para ver links. Registrate o Entra con tu cuenta(frase,msg.c_str());
  16.     return frase;
  17. }
  18.  
  19. string ToString(char *msg)
  20. {
  21.     return (string(msg));
  22. }
  23.  
  24. char* GetHWID()
  25. {
  26.     HRESULT hres;
  27.  
  28.     hres =  CoInitializeEx(0, COINIT_MULTITHREADED);
  29.     if (FAILED(hres))
  30.     {
  31.         ExitProcess(0);
  32.     }
  33.  
  34.     hres =  CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);
  35.  
  36.                      
  37.     if (FAILED(hres))
  38.     {
  39.         CoUninitialize();
  40.         ExitProcess(0);        
  41.     }
  42.    
  43.     IWbemLocator *pLoc = NULL;
  44.  
  45.     hres = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc);
  46.  
  47.     if (FAILED(hres))
  48.     {
  49.         CoUninitialize();
  50.         ExitProcess(0);              
  51.     }
  52.  
  53.     IWbemServices *pSvc = NULL;
  54.    
  55.     hres = pLoc->ConnectServer(_bstr_t(L"ROOT\\CIMV2"), NULL, NULL, 0, NULL, 0, 0, &pSvc);
  56.    
  57.     if (FAILED(hres))
  58.     {
  59.         pLoc->Release();    
  60.         CoUninitialize();
  61.         ExitProcess(0);              
  62.     }
  63.  
  64.     hres = CoSetProxyBlanket(pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE);
  65.  
  66.     if (FAILED(hres))
  67.     {
  68.         pSvc->Release();
  69.         pLoc->Release();    
  70.         CoUninitialize();
  71.         ExitProcess(0);          
  72.     }
  73.  
  74.     IEnumWbemClassObject* pEnumerator = NULL;
  75.     hres = pSvc->ExecQuery(bstr_t("WQL"), bstr_t("SELECT * FROM Win32_BaseBoard"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator);
  76.    
  77.     if (FAILED(hres))
  78.     {
  79.         pSvc->Release();
  80.         pLoc->Release();
  81.         CoUninitialize();
  82.         ExitProcess(0);              
  83.     }
  84.  
  85.     IWbemClassObject *pclsObj;
  86.     ULONG uReturn = 0;
  87.     char *HWID;
  88.     char *M;
  89.     while (pEnumerator)
  90.     {
  91.         HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
  92.             &pclsObj, &uReturn);
  93.  
  94.         if(0 == uReturn)
  95.         {
  96.             break;
  97.         }
  98.  
  99.         VARIANT vtProp;
  100.         hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0);
  101.         _bstr_t x = vtProp.bstrVal;            
  102.         HWID = (char*)x;
  103.         H = HWID;
  104.  
  105.         FILE *p = No tienes permisos para ver links. Registrate o Entra con tu cuenta("k","a+");
  106.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(p,"%s",H);
  107.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(p);
  108.  
  109.         string M0;
  110.         ifstream myReadFile;
  111.         myReadFile.open("k");
  112.         char output[100];
  113.         if(myReadFile.is_open()) {
  114.             while (!myReadFile.eof()) {
  115.                 myReadFile >> output;
  116.                 M0 += ToString(output);
  117.             }
  118.         }
  119.         myReadFile.close();
  120.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("k");
  121.         M = ToChar(M0);
  122.         VariantClear(&vtProp);
  123.  
  124.         pclsObj->Release();
  125.     }
  126.  
  127.    
  128.     pSvc->Release();
  129.     pLoc->Release();
  130.     pEnumerator->Release();
  131.     CoUninitialize();
  132.     return M;
  133. }
  134.  
  135.  
  136. char* GetProcessor()
  137. {
  138.     HRESULT hres;
  139.  
  140.     hres =  CoInitializeEx(0, COINIT_MULTITHREADED);
  141.     if (FAILED(hres))
  142.     {
  143.         ExitProcess(0);
  144.     }
  145.  
  146.     hres =  CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL);
  147.  
  148.                      
  149.     if (FAILED(hres))
  150.     {
  151.         CoUninitialize();
  152.         ExitProcess(0);        
  153.     }
  154.    
  155.     IWbemLocator *pLoc = NULL;
  156.  
  157.     hres = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc);
  158.  
  159.     if (FAILED(hres))
  160.     {
  161.         CoUninitialize();
  162.         ExitProcess(0);              
  163.     }
  164.  
  165.     IWbemServices *pSvc = NULL;
  166.    
  167.     hres = pLoc->ConnectServer(_bstr_t(L"ROOT\\CIMV2"), NULL, NULL, 0, NULL, 0, 0, &pSvc);
  168.    
  169.     if (FAILED(hres))
  170.     {
  171.         pLoc->Release();    
  172.         CoUninitialize();
  173.         ExitProcess(0);              
  174.     }
  175.  
  176.     hres = CoSetProxyBlanket(pSvc, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE);
  177.  
  178.     if (FAILED(hres))
  179.     {
  180.         pSvc->Release();
  181.         pLoc->Release();    
  182.         CoUninitialize();
  183.         ExitProcess(0);          
  184.     }
  185.  
  186.     IEnumWbemClassObject* pEnumerator = NULL;
  187.     hres = pSvc->ExecQuery(
  188.         bstr_t("WQL"),
  189.         bstr_t("SELECT * FROM Win32_Processor"),
  190.         WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
  191.         NULL,
  192.         &pEnumerator);
  193.    
  194.     if (FAILED(hres))
  195.     {
  196.         pSvc->Release();
  197.         pLoc->Release();
  198.         CoUninitialize();
  199.         ExitProcess(0);        
  200.     }
  201.  
  202.     IWbemClassObject *pclsObj;
  203.     ULONG uReturn = 0;
  204.     char *HWID;
  205.     char *M;
  206.     while (pEnumerator)
  207.     {
  208.         HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
  209.             &pclsObj, &uReturn);
  210.  
  211.         if(0 == uReturn)
  212.         {
  213.             break;
  214.         }
  215.  
  216.         VARIANT vtProp;
  217.  
  218.         hr = pclsObj->Get(L"ProcessorId", 0, &vtProp, 0, 0);
  219.         _bstr_t x = vtProp.bstrVal;            
  220.         HWID = (char*)x;
  221.         H = HWID;
  222.  
  223.         FILE *p = No tienes permisos para ver links. Registrate o Entra con tu cuenta("k","a+");
  224.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(p,"%s",H);
  225.         No tienes permisos para ver links. Registrate o Entra con tu cuenta(p);
  226.  
  227.         string M0;
  228.         ifstream myReadFile;
  229.         myReadFile.open("k");
  230.         char output[100];
  231.         if(myReadFile.is_open()) {
  232.             while (!myReadFile.eof()) {
  233.                 myReadFile >> output;
  234.                 M0 += ToString(output);
  235.             }
  236.         }
  237.         myReadFile.close();
  238.         No tienes permisos para ver links. Registrate o Entra con tu cuenta("k");
  239.         M = ToChar(M0);
  240.  
  241.         VariantClear(&vtProp);
  242.  
  243.         pclsObj->Release();
  244.     }
  245.  
  246.     pSvc->Release();
  247.     pLoc->Release();
  248.     pEnumerator->Release();
  249.     CoUninitialize();
  250.     return M;
  251. }
  252.  
  253.  

Utilizandolo seria ya:

Código: C
  1. char *HWID;
  2.     char *Procesador;
  3.     HWID = GetHWID();
  4.     Procesador = GetProcessor();

Ahi tambien pueden agregar y concatenar los datos y al final obtener el hash de ese string en md5 o algo jeje

Saludos n_n
« Última modificación: Julio 27, 2011, 06:04:08 pm por s00rk »

 

¿Te gustó el post? COMPARTILO!