qpython3 讀取安卓lastpass Cookies
之前我的博客寫了python讀取windows chrome Cookies,沿著同樣的思路,這次本來想嘗試讀取安卓chrome Cookies,
但是可能是chrome的sqlite3版本比較高失敗了,so改成讀取lastpass 的Cookies。
背景介紹:
qpython3 是一個基于sl4a實(shí)現(xiàn)的能讓python3跑在安卓手機(jī)上集成環(huán)境。
lastpass 是一個密碼管理器,安卓版lastpass 內(nèi)置了一個web瀏覽器。經(jīng)分析lastpass的Cookies的表名,字段名與chrome一樣,且value明文存儲不加密。
requests 是一個python 第三方http庫,qpython3中集成了。
sqlite3 是一個嵌入式數(shù)據(jù)庫,很多軟件和APP用到了sqlite。比如chrome lastpass瀏覽器用來存儲cookies和訪問記錄之類的信息。
由于找不到好的方法讓python代碼以root權(quán)限讀取其它APP數(shù)據(jù)的方法,
于是采用調(diào)用命令su -c cp 的方法直接把文件拷貝到SD卡再讀取。
以下代碼是qpython3下讀出lastpass cookies并成功用于發(fā)送博客園閃存的例子:
運(yùn)行環(huán)境 qpython3 安卓4.4 必須root 手機(jī)索尼L39H 安卓版lastpass,運(yùn)行前需要在lastpass中登錄一次博客園。
#-*-coding:utf8;-*- #qpy:3 #qpy:console import sqlite3 import os import requests from random import random #path='/data/data/com.android.chrome/app_chrome/Default/Cookies' path='/data/user/0/com.lastpass.lpandroid/app_webview/Cookies' sd="/sdcard" def sucp(source,dest): os.system("su -c cp -f %s %s" % ( source , dest ) ) def getcookies(host): sql="select host_key,name,value from Cookies where host_key= '%s'" % host cu=sqlite3.connect('/sdcard/Cookies').cursor() result=cu.execute(sql).fetchall() cookies={name:value for host_key,name,value in result} cu.close() print(cookies) return cookies sucp(path,sd)#用root權(quán)限拷貝文件到sd卡目錄下 #以下代碼用來發(fā)送博客園閃存 url="http://ing.cnblogs.com/ajax/Ing/MobileIngSubmit" httphead={'User-Agegnt':'Safari/537.36',} data={"content":"來自qpython3 發(fā)送的閃存 %s" % random(),"publicFlag":1} res=requests.post(url,headers=httphead,data=data,cookies=getcookies('.cnblogs.com')).text print(res)
另一個反向思路的應(yīng)用是可以實(shí)現(xiàn)程序用帳號密碼登錄成功后,把Cookies信息寫到用戶瀏覽器的Cookies文件里,這樣可以不需要手動輸入帳號密碼。
或者也可以實(shí)現(xiàn)一個瀏覽器的cookies導(dǎo)入到另一個瀏覽器里?!鷂→或者同步?
相關(guān)文章
python實(shí)現(xiàn)Flappy Bird源碼
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Flappy Bird源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12python3報錯check_hostname?requires?server_hostname的解決
這篇文章主要介紹了python3報錯check_hostname?requires?server_hostname的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Python 通過監(jiān)聽端口實(shí)現(xiàn)唯一腳本運(yùn)行方式
這篇文章主要介紹了Python 通過監(jiān)聽端口實(shí)現(xiàn)唯一腳本運(yùn)行方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Linux下升級安裝python3.8并配置pip及yum的教程
這篇文章主要介紹了Linux下升級安裝python3.8并配置pip及yum的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01使用Python操作MySql數(shù)據(jù)庫和MsSql數(shù)據(jù)庫
這篇文章介紹了使用Python操作MySql數(shù)據(jù)庫和MsSql數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05基于Python2、Python3中reload()的不同用法介紹
今天小編就為大家分享一篇基于Python2、Python3中reload()的不同用法介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08在 Python 中接管鍵盤中斷信號的實(shí)現(xiàn)方法
要使用信號,我們需用導(dǎo)入 Python 的signal庫。然后自定義一個信號回調(diào)函數(shù),當(dāng) Python 收到某個信號時,調(diào)用這個函數(shù)。 ,下面通過實(shí)例代碼給大家介紹在 Python 中接管鍵盤中斷信號,需要的朋友可以參考下2020-02-02