首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.tox文件以什么格式存储?

.tox文件以什么格式存储?
EN

Stack Overflow用户
提问于 2015-06-18 04:34:03
回答 1查看 207关注 0票数 0

具体地说,我正在寻找一种方法来开始处理一些打开的Python3或Elixir代码,并访问Tox网络客户端μToxtox_save.tox文件。

一旦我弄清楚如何让pip install pysqlite在我的虚拟环境中运行,我将尝试用它来试试看。与此同时,我希望有人会在这里或在Github上做出回应。

我的另一种猜测是,它是一个以二进制格式存储的普通的老式C数组。

看起来tox_save.tox可能是一个加密的sqlite文件。

在我介绍十六进制编辑器之前,有没有人知道它的格式?

EN

回答 1

Stack Overflow用户

发布于 2016-04-14 17:18:58

它是二进制格式。基本上是将C结构存储到一个文件中。

以下是如何使用它的python2示例:

代码语言:javascript
复制
import struct
#messenger.c
MESSENGER_STATE_TYPE_NOSPAMKEYS = 1
MESSENGER_STATE_TYPE_NAME = 4
MESSENGER_STATE_TYPE_STATUSMESSAGE = 5

def process_chunk(index, state):
    if index + 8 >= len(state):
        return
    length = struct.unpack_from("<H", state, index)[0]
    new_index = index + length + 8
    data_type = struct.unpack_from("<H", state, index + 4)[0]

    if data_type == MESSENGER_STATE_TYPE_NOSPAMKEYS:
        result = str(state[index + 8:index + 8 + length]).encode('hex')
        print("nospam = {}, public_key = {}, private_key = {}".format(result[0:4],
                                                                      result[4:36],
                                                                      result[36:68]))
    if data_type == MESSENGER_STATE_TYPE_NAME:
        print("User name = {}".format(str(state[index + 8:index + 8 + length])))

    if data_type == MESSENGER_STATE_TYPE_STATUSMESSAGE:
        print("Status = {}".format(str(state[index + 8:index + 8 + length])))

    # ... there's much more data
    process_chunk(new_index, state)


tox_save = open('/tmp/tox_save.tox', 'rb').read()
process_chunk(8, tox_save)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30901873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档