RPC和安卓抓包

感谢正己大佬开源:安卓逆向这档事

目前不是很用的到,留个位置以后再说.

抓包

这里用小黄鸟进行抓包

http相关原理就不写了,这个比我学C语言还早()

反制手段

不写先,抓包这件事目前不是很用得上

请求体解析

HTTP请求报文分为3部分:第一部分叫起始行(Request line),第二部分叫首部(Request Header),第三部分叫主体(Body)。
图片|400

  • 状态:表示请求的状态,这里是"Completed",意味着请求已经完成。
  • 方法:HTTP 请求的方法(也称为动词),这里为 "GET",说明这是一个获取资源的请求。
  • 协议:使用的 HTTP 协议版本,此处为 "HTTP/1.1"。(Reqable支持HTTP1、HTTP2和HTTP3(QUIC)协议)
  • Code:HTTP 状态码,200 表示服务器成功处理了请求。
  • 服务器地址:请求的目标服务器的 IP 地址和端口号,这里是 "180.76.198.77:443"。
  • Keep Alive:是否保持连接 alive,值为 "true" 意味着会保持连接。
  • Content Type:返回内容的数据类型,这里没有指定具体的类型。
  • 代理协议:如果使用了代理,则显示代理协议,此例中为 "https"。
HTTP方法
方法 描述
GET 请求指定的页面信息并返回实体主体
HEAD 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或对已有资源的修改
PUT 从客户端向服务器传送的数据取代指定文档的内容
DELETE 请求服务器删除指定的页面
HTTP常见状态码
名 称 释 义
200 OK 服务器成功处理了请求。
301 Moved Permanently 请求的URL已被永久移动。Response应包含Location URL指向新位置。
302 Moved Temporarily 请求的URL被暂时移动。Response应包含Location URL指向临时位置。
304 Not Modified 客户端缓存的资源是最新的,无需重新发送,客户端应使用缓存。
404 Not Found 请求的资源未在服务器上找到。
401 Unauthorized 请求要求用户的身份认证。
500 Internal Server Error 服务器遇到了意外的情况,无法完成请求。

原始报文及请求头解析
图片|500
这张图片展示的是一个HTTP请求报文的原始格式,以下是对各个行的解释:

  1. 第一行是请求行,包含了请求方法(GET)、请求路径以及HTTP协议版本(HTTP/1.1)。在这个例子中,请求方法是GET,表明这是一个获取操作;请求路径是/ZJ2595/wuaijie/raw/master/movie/list1.json,这意味着请求的目标资源位于gitee.com网站的某个特定目录下,具体来说是在ZJ2595/wuaijie仓库下的master分支中的movie/list1.json文件;HTTP/1.1表示使用的HTTP协议版本。
  2. 第二行 Host: gitee.com 是一个HTTP头字段,指明了请求要访问的具体主机名,即gitee.com。
  3. 第三行 Connection: Keep-Alive 表示客户端希望保持持久连接。这意味着一旦TCP连接建立之后,可以重复使用该连接来发送多个HTTP请求,而不需要为每个请求单独建立一个新的连接。
  4. 第四行 Accept-Encoding: gzip 告诉服务器客户端支持的压缩编码类型。在这个例子中,客户端表示它可以接受gzip压缩编码的内容。
  5. 最后一行 User-Agent: okhttp/3.12.0 提供了关于发起请求的应用程序的信息。User-Agent头字段通常用于标识发出请求的浏览器或应用程序的类型、版本和其他相关信息。在这里,User-Agent是okhttp/3.12.0,这表示请求是由OkHttp库的一个版本3.12.0发出的。
请求头 (Request Headers)
名称 描述
Accept 指定客户端能接收的媒体类型。
Accept-Charset 指定客户端能接收的字符集。
Accept-Encoding 指定客户端能解码的编码方式,如gzip或deflate。
Accept-Language 指定客户端首选的语言。
Authorization 包含用于访问资源的认证信息。
Cache-Control 控制缓存行为,如no-cache或max-age。
Connection 控制HTTP连接是否保持活动状态,如keep-alive或close。
Content-Length 指明请求体的长度。
Content-Type 指明请求体的数据类型,如application/json。
Cookie 包含客户端的cookie信息。
Date 请求生成的时间。
Expect 指定客户端期望服务器执行的操作。
From 发送请求的用户邮箱地址。
Host 请求的目标服务器的域名和端口号。
If-Modified-Since 用于条件性GET,如果资源自指定日期后未被修改则返回304。
If-None-Match 用于条件性GET,如果资源的ETag与提供的不匹配则返回资源。
Origin 指明请求来源的源站地址,常用于跨域资源共享(CORS)。
Pragma 包含与特定代理有关的指令。
Referer 指明请求前一个页面的URL,可用于跟踪引用页面。
TE 表示客户端能处理的传输编码方式。
Trailer 指明报文主体之后的尾部字段。
Transfer-Encoding 指明报文主体的传输编码方式,如chunked。
Upgrade 指示客户端希望升级到另一种协议。
User-Agent 包含客户端软件的名称和版本信息。
Via 记录请求经过的中间节点,用于追踪和诊断。
Warning 包含非致命问题的警告信息。

响应体解析

图片|400

响应头 (Response Headers)
名称 描述
Age 响应对象在代理或缓存中的存储时间。
Cache-Control 控制缓存行为,如public、private、no-store、no-cache等。
Connection 指示连接是否保持打开,如keep-alive或close。
Content-Encoding 指明响应体的编码方式,如gzip或deflate。
Content-Length 响应体的长度。
Content-Type 响应体的数据类型,如text/html。
Date 服务器生成响应的时间。
ETag 响应资源的实体标签,用于判断资源是否已被修改。
Expires 响应过期时间,之后缓存不应再使用。
Last-Modified 资源最后修改的时间。
Location 用于重定向,包含资源的新位置。
Pragma 与特定代理有关的指令。
Proxy-Authenticate 当代理服务器需要认证时使用。
Retry-After 在重试之前等待的时间。
Server 服务器软件的名称和版本。
Set-Cookie 用于设置或更新客户端的cookie。
Trailer 指明响应尾部字段。
Transfer-Encoding 响应体的传输编码方式,如chunked。
Upgrade 用于协议升级。
Vary 指明哪些请求头会影响响应的内容,用于缓存控制。
WWW-Authenticate 当服务器需要认证时使用。
X-Frame-Options 控制页面是否可以在iframe中显示。

图片|400

  • count: 表示返回的电影总数,这里是102个。

  • results
    这是一个包含电影信息的数组。每个电影信息包括以下字段:
    • id: 电影的唯一标识符。
    • name: 电影的名称。
    • alias: 电影的别名或英文名称。
    • cover: 电影封面的URL链接。
    • categories: 电影的分类,通常是一个数组,包含多个类别。
    • published_at: 电影的上映日期。
    • minute: 电影的时长,以分钟为单位。
    • score: 电影的评分。
    • regions: 电影的上映地区,通常是一个数组,包含多个地区名称。
    • drama: 电影的剧情简介。
posted @ 2025-04-16 16:51  T0fV404  阅读(40)  评论(0)    收藏  举报