[按键精灵]对cookies文件进行读写操作

大家好,我是公众号3分钟学堂的郭立员~

前言

前些天有群友问Cookies文件怎么修改里面的内容,这个我之前也没有用安卓按键修改过,只是之前看过Cookies文件就是被隐藏后缀的.db数据库。

既然是.db数据就可以用sqlite3.lua插件处理读写问题。

操作步骤

第一步:使用工具打开Cookies文件,看一下它内部的表的结构。

可以使用的工具:sqlcipher.exe 或者SQLiteStudio


第二步:测试一下能否正常读取指定值

Import "sqlite3.lua"
Dim DBpath ="/sdcard/pictures/Cookies"
Dim ret=sqlite3.SQLSelect(DBpath, "cookies", "value","WHERE name='authToken'")
TracePrint encode.TableToJson(ret)


逐个介绍一下SQLSelect的参数

①DBpath 是cookies文件的路径

②cookies 是数据库中的一个表的名称

③value 是表中某一列的列名

④WHERE name='authToken' 是sqlite语句,定位name的值为autoToken那一行。


通过行和列的定位,精准指向某个单元格,获取到这个单元格的值。

当前脚本第13行:[{"value":"UI23FxbD3aAKyNP5kMZnKLz3Lbn2bMGOk5bo26rJ2RHgCZe8xOYTr6ZXy8YRAQ+ufjJOyFqbxKq8ev4Dkxo9Y5y2vzqUdp6SE00rUMkUKpHx3CF+5ujFn2W52Rgbq8XBsj0SVNzQD4a9LwePXem1NStGFrgBrRqXAUV/Y62mJ2mhBauHwBgH9w=="}]


注意命令的返回值是一个键值对的表。

第三步:修改cookies某个值

Import "sqlite3.lua"
Dim DBpath ="/sdcard/pictures/Cookies"
Dim NewRecord ={"value":"UI25FxbD3aAKyNP5kMZnKLz3Lbn2bMGOk5bo26rJ2RHgCZe8xOYTr6ZXy8YRAQ+ufjJOyFqbxKq8ev4Dkxo9Y5y2vzqUdp6SE00rUMkUKpHx3CF+5ujFn2W52Rgbq8XBsj0SVNzQD4a9LwePXem1NStGFrgBrRqXAUV/Y62mJ2mhBauHwBgH9w=="}
TracePrint sqlite3.SQLUpdate(DBpath, "cookies",NewRecord,"WHERE name='authToken'")


修改cookies用的命令是SQLUpdate它的参数和读取的差不多。

唯一不同的是NewRecord 这个参数,它的格式是一个表,包括列名和要修改的值,看格式其实和读取的返回值非常像。

{"value":"UI25FxbD3aAKyNP5kMZnKLz3Lbn2bMGOk5bo26rJ2RHgCZe8xOYTr6ZXy8YRAQ+ufjJOyFqbxKq8ev4Dkxo9Y5y2vzqUdp6SE00rUMkUKpHx3CF+5ujFn2W52Rgbq8XBsj0SVNzQD4a9LwePXem1NStGFrgBrRqXAUV/Y62mJ2mhBauHwBgH9w=="}

我们想要修改成什么参数,就直接修改这个键值对的值。

延伸:

在这个cookies文件中有一个user的属性,它的值是一个json格式。

这是一个混搭的形式:

表中含有json,这种形式无论是读取还是修改,都要进行多次的json和table互转。

分清楚它们的数据类型:

表table 可以认为是数组类型

json 是字符串类型

这种json和table混搭的形式容易出错的地方就是直接对json形式使用键值对提取,导致无法读取,我们知道json如果想要提取某个内容,先要转table,在用键值对提取。

=正文完=

举报
评论 0