zoukankan      html  css  js  c++  java
  • 安卓逆向分析韵达超市app接口及其实现

    安卓逆向分析韵达超市app接口及其实现

    1.抓包响应的操作(登录-入库-出库等等接口)

    2.apk文件解压得出dex文件,然后反编译出jar包,。

    3.分析接口

    3.1登录接口

    抓包得出登录接口主要有六个参数,分别是sign_method,req_time,data,action,appver,version,sign

    其中sign_method是固定值yd_md5,req_time是13位时间戳,data里面的数据就是用户名和密码(密码是进行了MD5加密),action应该是固定值,登录这个接口的值应该就是market.appMarket.login,appver和version也是固定值,那么剩下的就只有sign不知道是怎么生成的.

    接下来就是分析jar包代码了.

     全局搜索login关键词,找到了登录接口的相关逻辑,但这里显然不是登录前的组包过程,这个是登录成功,返回信息后赋值的过程,那么就是继续找

     找到了这个函数,很明显这个就是登录请求的组包过程,可以看出来,先new一个Request对象,然后setPhone,setPassword,setData,setAction,setVersion.

    其中在setPassword的时候做了一个判断,真的时候用的是rsa加密,公钥就在源码里,false的时候是用的md5加密,很显然,密码是MD5加密的.

    但是还是没有看到sign的加密方法,那就得继续找了

    找到了这个函数,但是在这个工具里看不到这个函数的内容,那就只能用比较强大的工具了,jeb登场

     找到了这个函数,通过分析发现,是将请求参数进行按key的升序排序,然后拼接字符串,然后进行了g.a(g.c(v6.toString()))操作,进去里面的函数,发现是MD5加密.那么sign的生成方式就找到了.登录接口完成.

    发现登录接口的返回响应里面有个publicKey,有可能是RSA密钥.

    {
        "req_time":1589253822588,
        "body":{ "publicKey":"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAI6ZmE1edc709ZhZQ8dGMGLhYqHyzdU1KUCTP4mamczvqJChHSnGSy8tNBltapz8salszVaWQSp9qHkAlpp2aH0CAwEAAQ==",
            "message":"请求成功",
            "result":true,
            "token":"CKJBCg67eY_Z8djYgAD0ccA_",
            "data":{
                ....
            },
            "openid":"xxxxxxxxxxxx",
            "code":0
        },
        "success":true
    }
  • 相关阅读:
    HDU 5154 Harry and Magical Computer bfs
    opencv第一课 打开一个图片
    Codeforces Round #131 (Div. 1) A
    Topcoder SRM 643 Div1 250<peter_pan>
    bestcoder#23 1002 Sequence II 树状数组+DP
    bestcoder#23 1001 Sequence
    Oil Deposits 搜索 bfs 强联通
    迷宫问题 模拟队列 广度优先搜索
    Codeforces Round #283 (Div. 2) C. Removing Columns 暴力
    Codeforces Round #283 (Div. 2) B. Secret Combination 暴力水题
  • 原文地址:https://www.cnblogs.com/blog-rui/p/13048704.html
Copyright © 2011-2022 走看看