未知的数据编码

问题描述:

当我和一个老的应用程序与现有的数据库,这是在MS-访问工作包含了一些奇怪的数据编码如48001700030E0F465075465A56525E1100121D04121B565A58电子邮件地址未知的数据编码

什么样的数据编码的这是什么?我试过base64,但它似乎似乎。任何具有ms访问经验的人都可以告诉我可能的编码是什么。

编辑:

更多的样本

  1. 54001700030E0F46507546474550481C1D09090D04461B565A195E5F
  2. 40001700030E0F4650755F564E545F06025D100E0C
  3. 38001700030E0F4650754545564654155C101C0C
  4. 46001700030E0F4650755D565150591D1B0007124F565A58

上述样品是肯定的电子邮件和网页URL看起来这

  1. 440505045D070D54585C5B50585D581C1701004F025A58
  2. 440505045D121147544C5B584D4B5D17015D100E4F5C5B

这是VB + MS访问计划,如果可以是任何的帮助,我认为这一些标准编码

编辑(2)::

从看网页的URL编码似乎0505045D可能是HTTP://

编辑(3)::

1组合发现

52021301161209755354595A5E5F561D170B030E1341461B56585A == [email protected]

+0

我不能告诉你它是什么,但如果你确定数据代表电子邮件地址,并且你有足够的数据,你应该能够使用一些简单的解密技术来解码它。 – 2010-06-13 10:15:54

+0

这显然是一个十六进制字符串,但很难说出它是如何解释的。你有纯文本/编码文本对吗? – 2010-06-13 10:17:00

+0

@Mark假定字符串是用固定密钥加密的电子邮件地址的十六进制表示形式 - 例如128位AES密钥。打破这个要求成功地执行已知纯文本(如果OP可以生成新对的选择明文)对AES的攻击。这可能需要一段时间... – 2010-06-13 10:22:51

它似乎是以十六进制编码的字节。但是这些字节意味着什么,我不知道。其解码为ASCII没有太大透露:

 
H \x00\x17\x00\x03\x0e\x0fFPu FZVR^ \x11\x00\x12\x1d\x04\x12\x1bVZX 
T \x00\x17\x00\x03\x0e\x0fFPu FGEPH \x1c\x1d\t\t\r\x04F\x1bVZ\x19^_ 
@ \x00\x17\x00\x03\x0e\x0fFPu _VNT_ \x06\x02]\x10\x0e\x0c 
8 \x00\x17\x00\x03\x0e\x0fFPu EEVFT \x15\\\x10\x1c\x0c 
F \x00\x17\x00\x03\x0e\x0fFPu ]VQPY \x1d\x1b\x00\x07\x12OVZX 

事情我已经注意到,可能有助于破解密码:

  • 第2至第10个字节出现不断\x00\x17\x00\x03\x0e\x0fFPu
  • 第一个字节是BCD长度(由DanielBrückner发现!)
  • 第16个字节向前看起来像一些二进制格式,要么是对数据进行编码,要么是对数据的指针。
  • 其中两个结束于:\x12?VZX
+0

我确定它是电子邮件,但我怎么能逆向工程呢? – 2010-06-13 10:15:07

+0

@Keyur Shah:你能发表更多的例子吗?说5到10个例子?你有没有编码地址,你碰巧也知道解码版本,或者可以根据例如他们工作的人或公司的名字,对部分或全部地址进行逻辑猜测?你有其他可以发布的信息吗?有了足够的信息,可能会对该格式进行逆向工程。例如,第二个和第三个字节可能是一个长度编码。虽然如果有人能够找到明显更容易的方法的规格。 – 2010-06-13 10:17:54

+0

1)54001700030E0F46507546474550481C1D09090D04461B565A195E5F 2)40001700030E0F4650755F564E545F06025D100E0C 3)38001700030E0F4650754545564654155C101C0C 4)46001700030E0F4650755D565150591D1B0007124F565A58 这是VB + MS访问程序如果能够任何帮助,我认为它的一些标准编码 – 2010-06-13 10:21:18

这些字符串似乎是一些二进制数据的十六进制表示。

前两位是字符串的长度 - 十进制,不是十六进制 - 所以不是整个字符串是十六进制的。

38 001700030E0F465075 4545 5646 5415 5C10 1C0C 
40 001700030E0F465075 5F56 4E54 5F06 025D 100E 0C 
46 001700030E0F465075 5D56 5150 591D 1B00 0712 4F56 5A58 
48 001700030E0F465075 465A 5652 5E11 0012 1D04 121B 565A 58 
54 001700030E0F465075 4647 4550 481C 1D09 090D 0446 1B56 5A19 5E5F 
^^
| | 
| +---- constant part, 9 bytes, maybe mailto: or same domain name of 
|  reversed email addresses ([email protected]) 
| 
+---- length of the reset in decimal, not hexadecimal 

我可以看到没有明确指示at-sign的位置和*域之前的点。似乎是针对简单的单字母替换如ROT13的指示。

[email protected] 

Length 

    26 characters 

Histogram 

1x 

h @ f l i n g x t . c 

3x o 
2x p 2x a 2x m 2x r 2x e 2x s 

ASCII values in hexadecimal representation 

    70 61 72 65 73 68 40 66 61 6C 
    6D 69 6E 67 6F 65 78 70 6F 72 
    74 73 2E 63 6F 6D 

The length of 52 hexadecimal symbols matches length of the 
encoded string. 

52 02 13 01 16 12 09 75 53 54 59 
    5A 5E 5F 56 1D 17 0B 03 0E 13 
    41 46 1B 56 58 5A 

Histogram 

1x 

01 02 03 09 0B 0E 12 16 17 1B 
1D 41 46 53 54 58 59 5E 5F 75 

2x 13 2x 56 2x 5A 

直方图不匹配 - 所以这就排除了单字母替换后可能跟着字符串的排列。

+0

+1好发现。那些字节看起来是BCD。可能只有第一个字节是长度,但看看他最近的例子。 – 2010-06-13 10:36:47