python与sqlite3实现解密chrome cookie实例代码
本文研究的主要问题:有一个解密chromecookie的事情,google出了代码,却不能正常执行,原因在于sqlite3的版本太低,虽然我切换到了python3.5的环境,但sqlite3的版本也只有3.6。
google了许久,终于找到方法:
1、进入页面http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/
2、下载atomic-sqlite-sqlite-3.8.5-2.el6.art.x86_64.rpm
3、rpm-Uvhatomic-sqlite-sqlite-3.8.5-2.el6.art.x86_64.rpm
4、执行命令sqlite3-version一切都ok啦
顺便附上解析cookie的代码
#coding=utf-8 importos importsqlite3 #importkeyring fromCrypto.CipherimportAES fromCrypto.Protocol.KDFimportPBKDF2 #formac #my_pass=keyring.get_password('ChromeSafeStorage','Chrome') #my_pass=my_pass.encode('utf8') #iterations=1003 #cookie_file=os.path.expanduser('~/Library/ApplicationSupport/Google/Chrome/Default/Cookies') #forlinux my_pass='peanuts'.encode('utf8') iterations=1 cookie_file='Cookies' salt=b'saltysalt' length=16 iv=b''*length defexpand_str(token): token_len=len(token) expand_len=(token_len//length+1)*length-token_len returntoken.encode('ascii')+b'\x0c'*expand_len defaes_encrypt(token): key=PBKDF2(my_pass,salt,length,iterations) cipher=AES.new(key,AES.MODE_CBC,IV=iv) enc_token=cipher.encrypt(token) returnb'v10'+enc_token defaes_decrypt(token): key=PBKDF2(my_pass,salt,length,iterations) cipher=AES.new(key,AES.MODE_CBC,IV=iv) dec_token=cipher.decrypt(token) returndec_token defquery_cookies(): withsqlite3.connect(cookie_file)asconn: sql="selecthost_key,name,encrypted_valuefromcookieswherename='jzysYonghu'" #sql="select*fromcookies" result=conn.execute(sql).fetchall() returnresult defwrite_cookies(enc_token): withsqlite3.connect(cookie_file)asconn: b=sqlite3.Binary(enc_token) sql="""updatecookiessetencrypted_value=?wherename='remember_token'""" conn.execute(sql,(b,)) defchange_user(token): write_cookies(ase_encrypt(expand_str(token))) if__name__=='__main__': data=query_cookies()[0][2] print(data) print(len(data)) print(aes_decrypt(data[3:]))
加密后在字符串前面添加了一个v10,因此解密前要先去掉
总结
以上就是本文关于python与sqlite3实现解密chromecookie实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!