【安卓逆向】某房产app Authorization参数分析

嗯,2021年快结束了,学习忙碌一年了,年底了写点文章,总结性学习成果吧!

今天我们要分析的app是6LSd5aOzdjIuNjYuMA== (base64解码),小伙伴们可以去各大应用商定自行下载,也是一个很好的逆向分析案例。

转载文章,请注明出处,谢谢!https://blog.csdn.net/weixin_38819889/article/details/122058454

参考链接:https://core.vivcms.com/2021/10/25/637.html

1.抓包找参数

第一步,打开我们的charles直接抓包,发现这个时候没有抓到对应的包。好吧,那我们换一种vpn抓包的方式。先打开postern,然后再开启charles,这个时候就成功的抓到数据包了,如下图所示,Authorization 就是要分析研究的字段,经过多次的测试,发现其他字段可以去掉,但唯独这个字段是不能的。
在这里插入图片描述

2.反编译和静态分析

找到这个加密参数 Authorization ,接下来就是反编译apk,来把我们的贝壳app拖进去jadx里面,看看加密逻辑是咋写的。
在这里插入图片描述
搜索一波,感觉这里很像的样子map2.put("Authorization", getSignString(str3, null)); ,点进去看一看。然后我们来到这里了,可以看到(下图)这里是调用一个getSignString()方法,并传入参数str3 和null,然后计算出结果当做Authorization 的值。

在这里插入图片描述
跟进去看看 getSignString()方法是咋实现的,然后就来到了这里。

具体代码如下,没错,可以大胆的猜测下,这就是最核心的加密方法。首先,我们先静态分析一波逻辑,然后再用frida动态调试下,验证下我们的猜想对不对。

  public String getSignString(String str, Map<String, String> map2) {
   
        Map<String, String> urlParams = getUrlParams(str);
        HashMap hashMap = new HashMap();
        if (urlParams != null) {
   
            hashMap.putAll(urlParams);
        }
        if (map2 != null) {
   
            hashMap.putAll(map2);
        }
        ArrayList arrayList = new ArrayList(hashMap.entrySet());
        Collections.sort(arrayList, new Comparator<Map.Entry<String, String>>() {
    // from class: com.bk.base.netimpl.a.1
            public int compare(Map.Entry<String, String> entry, Map.Entry<String, String> entry2) {
   
                return entry.getKey().compareTo(entry2.getKey());
            }
        });
        String httpAppSecret = ModuleRouterApi.MainRouterApi.getHttpAppSecret();
        boolean notEmpty = Safe.C2266e.notEmpty(httpAppSecret);
        String str2 = BuildConfig.FLAVOR;
        if (!notEmpty) 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值