我有代表表格的二进制数据。

这是用Python的repr()打印时的数据:专有软件

test1的test1test1test test1test1 test1test2测试1测试1测试1测试1测试1测试1测试1

我能猜出它的一些:


它是从左上角的单元格开始,然后是逐列,接着是逐个单元格。意思是最后一个值

任何人都知道数据是否遵循标准或有任何提示如何解码它吗?

谢谢! python的示例:

q431207 8q

评论

你有模块本身吗?假设repr函数以C扩展模块中的正常方式注册,则反汇编repr函数几乎是微不足道的。

我不确定我是否理解“模块”的含义。但是这里是十六进制0xFFFF050474657374024105746573743140040340400405403000004005057465737432030505746573743106403000014000中的数据。我使用repr()只是为了消除python中的'解码错误-输出不是utf-8'消息,因此您可以忽略它。

数据属于某种对象,通常属于模块,例如您在Python中导入的对象;)

数据来自MSSQL数据库中的[varbinary](max)字段,供专有和不合作的软件使用。

拥有处理数据的软件将很有意义。看这里。基本上没有什么信息对您有帮助。

#1 楼

这是我认为各个符号含义的解释。我基于这样一个假设,即一个小选择器正在一个接一个地遍历单元格。 \xFF =接下来是一个字符串,\x05紧跟在字符串之后,以定义将字符串与选择器当前位置的位移量,如果有的话。

\xNumber =长度为数字的字符串

\xNumber string =可能是一个字节,表示不替换当前字符串,并假定下一个数据段正在定义要放在下一个单元格中的字符串。含义可疑。

\x2A =将选择器移至\x04 \xNumber单元格前面,并将先前的字符串放入其中。 。
\xNumber =将先前使用的字符串放在当前字符串之后的单元格中。

所以这是我对您提供给我们的数据的解释:



0 \x00 \x0Number =两个空单元格

\xNumber =单个字符串,带有字符串的单元格,放在空单元格之后,原因是@跟随字符串
> \xFF\xFF =字符串。

\x05 =另一个字符串放入后面的单元格中。不需要数字,因为\ x2A表示它正好在“ test”之后放置

\x2A =首次放置“ test1”字符串后,将“ test1”放置到单元格中。 /> \x04 test =将选择器向前移动三个单元格,然后将test1放置在它所着陆的地方。两个单元格。

\x2A \x05 test1 =新列。

@ =使用最后定义的字符串(test1),将其放入列的前两个单元格。

\x04 \x03 =将一个单元格放在三个单元格后词。

@@ =将test1放在test2之后的单元格6中

\x04 \x05 @ =再次放置test1。

0 =移至下一列

\x00 \x00 @ =将上一个字符串放置在位置01

\x05 \x05 test2 \x03 =并且在位置02

\x05\x05test1\x06 =完成

说明:我的方法是寻找一种模式,检查该模式是否经受住了进一步的审查-我检查的第一个模式似乎可以-清除我遇到的所有小问题。似乎奏效了。

评论


请正确设置答案的格式。 @ 0xC0000022L这次为您做了。

–asheeshr
13年5月5日在3:46