我在计算机上的软件和远程服务器上的软件之间截获了数据包。这个想法是对两者之间的API进行反向工程,然后将API集成到另一个软件模块中。

问题是我不知道如何读取数据。这里是92字节的十六进制数据,以举例说明:

10:02:42:6d:95:72:1a:70:be:00:ba:cc:a9:95:72:81:49:dd:00:ae:39:bd:c2:4a:0e:00:d1:fe:a6:01:fc:51:09:42:c1:49:dd:00:59:57:31:b2:3a:ce:00:d1:7e:7c:fa:1d:65:c9:42:41:7c:b6:40:dd:f5:71:52:f1:c7:65:12:be:c0:86:71:03:62:eb:81:49:dd:00:dd:f5:71:dc:7a:ce:00:d1:be:00:ba:1d:65:61:52:c2


这将转换为ASCII字符串:

??Bm?r?p??????r?I???9??J???????Q?B?I??YW1?:???~|??e?BA|?@??qR??e????q?b??I????q?z???????eaR?


我大概知道如果有帮助,这些数据应该包含什么。

我只是在寻找入门技巧来帮助我破解代码。

最佳答案

假设数据仅是编码的,而不是加密的,则可能揭示大量有关该数据的信息的一件事是随时间比较数据包。
随时间变化的部分可能是数据,而没有变化的部分可能是结构信息。

通过更改软件的状态进行实验(假设有可能),发现数据中的任何变化都是线索。

由于您大概知道数据包仅应包含哪些内容,因此可能会为您提供足够的线索以找出数据格式。特别是如果您可以很好地控制软件的状态。

注意:
还要记住,多字节数据具有字节序,假设错误的字节序会使事情非常混乱。同样,除了使用ASCII编码外,还有许多其他方式可以编码字符串。

如果发送了很多数据,您可能还想检查一下是否以任何方式压缩了数据。

关于encryption - 解码/解密:入门,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6912853/

10-09 01:05