【发布时间】:2019-03-22 13:47:09
【问题描述】:
所以我一直在阅读有关如何使用 Frida 的教程:https://www.frida.re/docs/functions/,我遇到了以下问题:
$ ./client 127.0.0.1
connect() is at: 0x400780
Here's the serv_addr buffer:
02 00 13 88 7f 00 00 01 30 30 30 30 30 30 30 30
Press ENTER key to Continue
本教程指出 字节 表示 0x1388 或 5000,因此很明显它不是十六进制或十进制。我尝试使用 base64 转换器转换字符串以查看是否出现 0x1388 或 5000 但没有运气。
这究竟是什么格式?我最近没有进行低级编程,如果我记得,字节是 8 位 1 和 0 的组。
编辑: 是的,教程指出这代表一个结构。但是他怎么知道它代表的是0x1388呢?如果我收到这样的字符串,有没有办法让我理解它代表一个特定的值,而不是发送消息的代码的作者?
【问题讨论】:
-
根据你的链接页面是
struct sockaddr_in。 -
字节
13和88在该输出中,因此可以猜到0x1388的来源。也可以猜测它是二进制结构的原始字节输出,如果您查看代码就可以确认。 -
@EugeneSh。但是struct是什么格式的,他是怎么从这个字符串中取出0x1388的呢?
-
对我来说看起来像原始二进制文件。第 3 和第 4 个字节是 0x13 和 0x88。
sockaddr_in中的sin_port处于网络顺序。根据文档。 -
数字似乎采用大端格式 - 在网络相关数据中并不少见。
标签: c networking format byte