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实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!