从Chrome SQLite cookie数据库中读取时的值为空

时间:2014-06-04 20:50:35

标签: c# google-chrome cookies

C#Chrome SQLite值未读取? Mozilla cookie值读取但chrome cookie值null。读取此cookie值的正确方法是什么?

//String connString = "Data Source=C:\\Users\\XXXX\\AppData\\Roaming\\Opera Software\\Opera Stable\\Cookies;Version=3;New=False;Compress=True;";
String connString = "Data Source=C:\\Users\\XXXX\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies;Version=3;New=False;Compress=True;";
//String connString = "Data Source=C:\\Users\\XXXX\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\eac8q0hd.default\\cookies.sqlite";
using (SQLiteConnection conn = new SQLiteConnection(connString))
{
   StringBuilder query = new StringBuilder();
   //chrome
   query.Append("SELECT value FROM cookies WHERE host_key LIKE '%.search.cpan.org%' AND name LIKE '%__utmc%';");
   //mozilla
   //query.Append("SELECT value FROM moz_cookies WHERE host LIKE '%.oasgames.com%' AND name LIKE '%__utmz%';");
   //query.Append("ORDER BY name");
   using (SQLiteCommand cmd = new SQLiteCommand(query.ToString(), conn))
   {
      conn.Open();
      using (SQLiteDataReader dr = cmd.ExecuteReader())
      {
         while (dr.Read())
         {
            textBox1.Text = dr.GetValue(0).ToString();
            // textBox1.Text = dr.GetValue(0) + " " + dr.GetValue(1) + " " + dr.GetValue(2) + " " + dr.GetValue(3) + " " + dr.GetValue(4) + " " + dr.GetValue(5);
         }
      }
   }
}

1 个答案:

答案 0 :(得分:0)

这些值被加密并存储为" encrypted_value"。您将无法读取该值,但可以读取存储在" encrypted_value"中的blob。

如果要读取该值,可以编写PowerShell脚本来解密它:https://stackoverflow.com/a/38701402

我只是读取加密值以确保那里有值

SELECT encrypted_value FROM cookies WHERE host_key LIKE '%XXX%' AND name LIKE '%XXXX%';