加密情况

首先我们到顺F官网,下载顺F速运APP,当然,是Android版,毕竟穷。

接下来,得看看怎么用,当然顺便用Wireshark抓包,点那个显眼的立即登录按钮。

使用手机号登录,随便敲敲,看看报文情况。

原来数据是HTTP承载的,host为ezgo.sf-express.com,POST体内为BASE64编码,使用Fiddler自带工具尝试解码,得到的是十六进制数据串,看样子,数据进行了加密,那只能从APK中去查找算法和密钥了。

上Android Killer。

咦,被加壳了,爱加密的壳呀,只能看看能不能脱壳了。

找密钥学算法

经过一番折腾,第一层皮被脱掉了,但是DEX里面很多函数被抽取掉了,看样子,爱加M的壳用了点功,再仔细看看,里面还是有些东西没有被抽取掉,大部分是一些第三方库。

查找下BASE64算法和URL,竟然找到了。

看样子,爱加M把关键的加密方法给漏掉了,就随便忽悠了下,顺丰速运程序员哥哥估计哭晕在厕所了。

我们找到了密钥,16字节,四个int,就是上图中的f.c变量。

然后,找到了算法,这是什么算法呢。下面介绍一点技巧,通过关键数据获取算法的技巧。

一般来说,大部分软件都会使用加密算法,但是,它们都不会自创算法,而是使用一些经典的常见的算法。

我们分析算法,需要找到算法的特征,特征包括什么呢?大数和逻辑。

在算法smali里,找到了几个整数。那我们就去网上搜索吧,一番搜索,就得到了算法。

使用算法和密钥,试一试,果然解出了结果。

params={"requstParams":{"mobileRegion":"CN","mobile":"18454312344","codeType":"06"},"method":"user.sendPublicCaptcha"}

再看看其他数据,也都能解呀。

自己动手试试,看看能不能找到顺F速运使用的加密算法名称,找完后,发送“顺顺顺”获取答案。

长按进行关注。

顺F速运,你被爱加M坑了的更多相关文章

  1. 顺F速运国际版,你的密码漏点了

    - 加密情况分析 对APP的分析过程,当然首先是安装,使用,抓包啦. 同样地,登录,抓包看看. 使用账号密码登录. - 壳呢? 虽然直接解密了顺F国际版的加密数据,但还是有必要看看它的APK. 经过分 ...

  2. F. Gourmet and Banquet(贪心加二分求值)

    题目链接:http://codeforces.com/problemset/problem/589/F A gourmet came into the banquet hall, where the ...

  3. Angular4项目运行时URL自动加#方法

    import {HashLocationStrategy , LocationStrategy} from '@angular/common'; @NgModule({   declarations: ...

  4. 【转】clang warning 警告清单(备查,建议直接command + F 速查 )

    Warning Message -WCFString-literal input conversion stopped due to an input byte that does not belon ...

  5. Android动态加载入坑指南

    曾几何时,国内各大公司掀起了一股研究Android动态加载的技术,两年多过去了,动态加载技术俨然成了Android开发中必须掌握的技术.那么动态加载技术是什么呢,这里谈谈我的个人看法,如有雷同,纯属偶 ...

  6. 【运维相关】MongoDB那些坑

    前言 某个早期技术债务项目线上有一个mongoDB服务,用途很简单,存一些文件而已.不过用户那边突然报个bug说上边的图片丢失了,起初没当回事认为是代码遇到错了,直到后来看了用户详细的bug复现后,登 ...

  7. 顺F分享,你是在裸奔吗?

    " 对顺F旗下各APP顺藤摸瓜分析--顺F分享." 前文对顺F速运和顺F速运国际版进行了分析,二者使用同一套接口,虽然保护强度不高,但对代码和数据的保护却区别对待,实在让人诧异. ...

  8. Linux运维笔记--第二部

    第2部-重要目录结构详解 1.回顾Linux目录结构知识 /dev/            设备目录 /etc/             系统配置及服务配置文件,启动命令的目录 /proc       ...

  9. extjs4.0 treepanel节点的选中、展开! 数据的重新加载

    1.extjs4.0API较3.0有非常大变化2.多级子父节点的选中和展开.3.数据的重新加载.tree.getStore().load4.节点的移除,从树中根据ID获取节点 tree.getStor ...

随机推荐

  1. python django-admin.py startproject xxx 错误:from django.core import management

    1. Python安装路径以及Python安装路径\Script文件夹,已经添加到PATH环境变量中. 2. 查看django 版本正常: import django print(django.__v ...

  2. SimpleDateFormat类简单学习

    一.简介 SimpleDateFormat是一个格式化和解析日期的具体类,其可以将时间转化为指定格式的日期字符串,也可以将具有格式的日期字符串转换为时间. formatting (date → tex ...

  3. SpringCloud(六):服务网关zuul-API网关(服务降级和过滤)

    什么是API网关: 在微服务架构中,通常会有多个服务提供者.设想一个电商系统,可能会有商品.订单.支付.用户等多个类型的服务,而每个类型的服务数量也会随着整个系统体量的增大也会随之增长和变更.作为UI ...

  4. js闭包计数器及闭包的思考

    //定义自增计数器,初始值是0,步长是1 var add = (function(){ var counter =0; return function () {counter += 1; return ...

  5. sqlserver实现分隔字符串

    sqlserver 使用函数实现分隔字符串 create function dbo.fn_split ( @str_source nvarchar(max), ) ) returns @temp ta ...

  6. 2019-2020-1 20199305《Linux内核原理与分析》第三周作业

    操作系统的秘密 (一)计算机的三大法宝 存储程序计算机: 函数调用堆栈机制: 中断机制. (二)堆栈 (1)堆栈的作用 记录函数调用框架: 传递函数参数: 保存返回值的地址: 提供局部变量存储空间. ...

  7. 【洛谷5299】[PKUWC2018] Slay the Spire(组合数学)

    点此看题面 大致题意: 有\(n\)张强化牌\(a_i\)和\(n\)张攻击牌\(b_i\),每张牌有一个权值(强化牌的权值大于\(1\)),每张强化牌能使所有攻击牌的权值乘上这张强化牌的权值,每张攻 ...

  8. 基于Django的Rest Framework框架的视图组件

    本文目录 一 基本视图 二 mixin类和generice类编写视图 三 使用generics 下ListCreateAPIView,RetrieveUpdateDestroyAPIView 四 使用 ...

  9. Java连载52-单例模式的缺点以及抽象类

    一.单例模式 1.单例模式的缺点:单例模式的类型没有子类,无法被继承. 例如:下面的例子,由于父类的构造方法是私有的,所以子类中的构造方法是无法创建的,因为它是引用父类的构造方法 package co ...

  10. C语言程序设计100例之(2):一元二次方程

    例2   一元二次方程 [题目描述] 输入系数a.b和c,求方程ax2+bx+c=0的根. [输入格式] 输入数据有多组.每组数据包括三个系数a,b,c.当a=0时,输入数据结束. [输出格式] 输出 ...