Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import sqlite3
- import win32crypt
- from shutil import copy, move
- class CookieManager():
- """docstring for CookieManager"""
- def __init__(self):
- self.conn = ''
- self.cursor = ''
- self.COOKIE_FILE = r"C:\Users\David\AppData\Local\Google\Chrome\User Data\Default\Cookies"
- self.HOST_KEYS = ".www.html-kit.com", ".html-kit.com"
- self.init_db()
- def decrypt_cookies(self, query_result):
- cookies = []
- for host_key, name, value, expires_utc, encrypted in query_result:
- if encrypted:
- decrypted_descr, decrypted = win32crypt.CryptUnprotectData(encrypted, None, None, None, 0)
- else:
- decrypted_descr, decrypted = u"", u""
- cookies.append((host_key, name, expires_utc, decrypted, decrypted_descr, value))
- # Idx: 0 1 2 3 4 5
- return cookies
- def init_db(self):
- self.conn = sqlite3.connect(self.COOKIE_FILE)
- self.cursor = self.conn.cursor()
- def shutdown_db(self, commit=False):
- self.cursor.close()
- if commit:
- self.conn.commit()
- self.conn.close()
- def get_cookies(self):
- query_tmpl = "SELECT host_key, name, value, expires_utc, encrypted_value FROM cookies WHERE host_key IN {:}"
- self.cursor.execute(query_tmpl.format(self.HOST_KEYS))
- result = self.cursor.fetchall()
- cookies = self.decrypt_cookies(result)
- return cookies
- def update_cookie(self, cookie):
- decrypted_length = len(cookie[3])
- encrypted = win32crypt.CryptProtectData(cookie[3][:decrypted_length // 2], cookie[4], None, None, None, 0)
- self.cursor.execute("UPDATE cookies SET encrypted_value = ?, expires_utc = ? WHERE host_key = ? AND name = ?", (buffer(encrypted), cookie[2], cookie[0], cookie[1]))
- if __name__ == '__main__':
- #Init DB
- manager = CookieManager()
- cookies = manager.get_cookies()
- for cookie in cookies:
- print cookie
- if cookie[1] == 'test2':
- #Modify Cookie
- cookie = (cookie[0],cookie[1],cookie[2],'test3',u"")
- manager.update_cookie(cookie)
- # Commit
- manager.shutdown_db(True)
- # Should check on http://www.html-kit.com/tools/cookietester/
- # Open again to check changes
- manager = CookieManager()
- cookies = manager.get_cookies()
- manager.shutdown_db(False)
- for cookie in cookies:
- print cookie
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement