qpython3 讀取安卓lastpass Cookies
之前我的博客寫了python讀取windows chrome Cookies,沿著同樣的思路,這次本來想嘗試讀取安卓chrome Cookies,
但是可能是chrome的sqlite3版本比較高失敗了,so改成讀取lastpass 的Cookies。
背景介紹:
qpython3 是一個基于sl4a實現(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)用是可以實現(xiàn)程序用帳號密碼登錄成功后,把Cookies信息寫到用戶瀏覽器的Cookies文件里,這樣可以不需要手動輸入帳號密碼。
或者也可以實現(xiàn)一個瀏覽器的cookies導(dǎo)入到另一個瀏覽器里。→_→或者同步?
相關(guān)文章
python3報錯check_hostname?requires?server_hostname的解決
這篇文章主要介紹了python3報錯check_hostname?requires?server_hostname的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Python 通過監(jiān)聽端口實現(xiàn)唯一腳本運(yùn)行方式
這篇文章主要介紹了Python 通過監(jiān)聽端口實現(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