博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——浙理体育(飞翔的红蜻蜓)反编译分析
阅读量:2036 次
发布时间:2019-04-28

本文共 1997 字,大约阅读时间需要 6 分钟。

基本概念

飞翔的红蜻蜓:飞翔的红蜻蜓app是一款由开发的专门为高校阳光体育开发的手机跑步软件,输入高校阳光体育管理系统的学号和密码就可以开启跑步了,但是一定要注意连接好校内wifi哦,通过这个人员软件可以查看详细的跑步信息和线路,提高学生的锻炼意识。

浙理体育:飞翔的红蜻蜓定制化版本

解决方案

1、Android反编译

Android反编译:

2、关键代码

数据上传接口: Api/webserver/uploadRunData

3、抓包分析

Fiddler安卓抓包: 

 

其中Body数据进行gzip压缩无法直接查看

查看二进制数据 

导出二进制数据 

4、数据解析

package io.shentuzhigang.demo.text;import java.io.*;import java.util.zip.GZIPInputStream;import java.util.zip.GZIPOutputStream;/** * @author ShenTuZhiGang * @version 1.0.0 * @date 2020-10-12 23:01 */public class GZIPTest {    public static void main(String[] args) throws IOException {        byte[] arrOutput = {};//导出的数据        System.out.println(new String(uncompress(arrOutput)));    }    public static byte[] compress(String str, String encoding) {        if (str == null || str.length() == 0) {            return null;        }        ByteArrayOutputStream out = new ByteArrayOutputStream();        GZIPOutputStream gzip;        try {            gzip = new GZIPOutputStream(out);            gzip.write(str.getBytes(encoding));            gzip.close();        } catch ( Exception e) {            e.printStackTrace();        }        return out.toByteArray();    }    public static byte[] uncompress(byte[] bytes) {        if (bytes == null || bytes.length == 0) {            return null;        }        ByteArrayOutputStream out = new ByteArrayOutputStream();        ByteArrayInputStream in = new ByteArrayInputStream(bytes);        try {            GZIPInputStream ungzip = new GZIPInputStream(in);            byte[] buffer = new byte[256];            int n;            while ((n = ungzip.read(buffer)) >= 0) {                out.write(buffer, 0, n);            }        } catch (Exception e) {            e.printStackTrace();        }        return out.toByteArray();    }}

 

{    "begintime": "",开始时间    "endtime": "",结束时间    "uid": "",未知id    "schoolno": "",学校代码    "distance": "",距离    "speed": "",速度    "studentno": "",学生代码    "atttype": "",类型    "eventno": "",    "location": "",定位    "usetime": ""}

参考文章

 

转载地址:http://snwof.baihongyu.com/

你可能感兴趣的文章
vi中跳到文件的第一行和最后一行
查看>>
jasypt-spring-boot修改加解密用得盐的key
查看>>
Maven常见异常及解决方法
查看>>
Java 8简明教程
查看>>
go学习笔记(1 基础)
查看>>
go学习笔记(2指针)
查看>>
go学习笔记(3结构体)
查看>>
Go学习笔记(4语言切片(Slice))
查看>>
go是面向对象语言吗?
查看>>
golang 格式“占位符”%d,%f,%s等应用类型
查看>>
GO语言学习系列九——GO的结构(struct)与方法(method)
查看>>
Go 单例模式
查看>>
由浅入深剖析 go channel
查看>>
golang 中 sync.Mutex 和 sync.RWMutex
查看>>
为什么Java永远比C++慢?
查看>>
大众点评 链路监控cat源码的几个片段分析(初始化 messageId的传递)
查看>>
MySQL优化(5):索引失效分析、in与exists使用场合
查看>>
谈谈我对Harbor认识
查看>>
链路监控 大众点评cat接口主要看的两个地方
查看>>
圈复杂度Cyclomatic Complexity
查看>>