米斗APP逆向分析

这篇具有很好参考价值的文章主要介绍了米斗APP逆向分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 该app难点就是个360数字壳 : com.touchtv.midou
    逆向分析app,逆向乾坤,APP逆向项目,java,http,android

直接脱壳处理,脱完壳分析dex:

package com.touchtv.internetSDK.network;
逆向分析app,逆向乾坤,APP逆向项目,java,http,android

            hashMap.put("X-ITOUCHTV-Ca-Timestamp", currentTimeMillis + "");
            if (str2 == null) {
                str4 = str3 + "\n" + str + "\n" + currentTimeMillis + "\n";
            } else if (!"".equals(str2)) {
                MessageDigest instance = MessageDigest.getInstance("MD5");
                str4 = str3 + "\n" + str + "\n" + currentTimeMillis + "\n" + new String(Base64.encodeBase64(instance.digest(str2.getBytes())));
            } else {
                str4 = str3 + "\n" + str + "\n" + currentTimeMillis + "\n";
            }
            hashMap.put("X-ITOUCHTV-Ca-Signature", r(str, str4));

时间戳 ,md5 ,64se64 , 还有请求的url ,参数等做了一些操作。

我们重点看下:"X-ITOUCHTV-Ca-Signature“

逆向分析app,逆向乾坤,APP逆向项目,java,http,android

走了一个r方法:
=======判断x(str)

private static boolean x(String str) {
    return str.contains("/baoliaoservice");
}

其除了请求中/baoliaoservice,则秘钥为:bArr = b.c().getBytes();
其余秘钥都为: bArr = b.h().getBytes();
b是导入的:import i.s.b.a.b;、

=============先去找b.c:

逆向分析app,逆向乾坤,APP逆向项目,java,http,android

public static String b() {
    return new String(Base64.decodeBase64("MDE3MzMyMjk5MzU5OTA0NDEwMTY1MjQ4NTc3NDYzNzI=".getBytes()));
}

==============再去找b.h

逆向分析app,逆向乾坤,APP逆向项目,java,http,android

package i.s.b.a;

import android.text.TextUtils;
import com.touchtv.internetSDK.Environment;
import com.touchtv.internetSDK.TouchtvInternet;
import com.touchtv.internetSDK.network.a;
import org.apache.commons.codec.binary.Base64;

public class b {
    public static String a() {
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_QUZHI.value())) {
            return f();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_QUJIAN.value())) {
            return d();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_TOUCHTV.value())) {
            return i();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_MIDOU.value())) {
            return b();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_GDSPORT.value())) {
            return "";
        }
        TouchtvInternet.getInstance().getConfig().a().equals(a.ID_COUNTY.value());
        return "";
    }

    public static String b() {
        return new String(Base64.decodeBase64("MDE3MzMyMjk5MzU5OTA0NDEwMTY1MjQ4NTc3NDYzNzI=".getBytes()));
    }

    public static String c() {
        return new String(Base64.decodeBase64("T3NpbGdJMFZ6RmNBNGl4MVh4OGNwYU1XM1BWUE9tN1BaWkhMYm1FSjNqUUM5cGs4VTc1T09PdU9NeW14WEtpdA==".getBytes()));
    }

    public static String d() {
        return f();
    }

    private static String e() {
        return g();
    }

    public static String f() {
        return new String(Base64.decodeBase64((TouchtvInternet.getInstance().getConfig().b() == Environment.TEST ? "wNzg0Mzg0ODk4MDc5ODc5MTQ3NDU0Nzk4NzA5NTY0MDY=" : "wNzc1NDMyMjA3NDIxMjM2MzQ0NzA1OTA0MDQwNDMyNzI=").substring(1).getBytes()));
    }

    private static String g() {
        String str = TouchtvInternet.getInstance().getConfig().b() == Environment.TEST ? "kajY3TTBXN2hBbWtDNTFORHYyTTVxWmZpRVE5QnhOaFVaTjhpaDJ4QVRSaTNmUnBKZmE0Y3hUbVdBbnlUaUkwVg==" : "hdjU3eEp4NkJxdWVGOGNPekxVZURGVXd5WWd0M1dDZEFUQWhndks3aGtpeVZGY3lybEF4ZGJUejVNaTVpbFVyUw==";
        if (TextUtils.isEmpty(str)) {
            return "";
        }
        return new String(Base64.decodeBase64(str.substring(1, str.length()).getBytes()));
    }

    public static String h() {
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_QUZHI.value())) {
            return g();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_QUJIAN.value())) {
            return e();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_TOUCHTV.value())) {
            return j();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_MIDOU.value())) {
            return c();
        }
        if (TouchtvInternet.getInstance().getConfig().a().equals(a.ID_GDSPORT.value())) {
            return "";
        }
        TouchtvInternet.getInstance().getConfig().a().equals(a.ID_COUNTY.value());
        return "";
    }

    public static String i() {
        return new String(Base64.decodeBase64("MDQwMzkzNjg2NTM1NTQ4NjQxOTQ5MTA2OTEzODk5MjQ=".getBytes()));
    }

    public static String j() {
        return new String(Base64.decodeBase64("cW1pSGVCOWJLZ293SHF4UnYwcHJjMmNQTjJFd1hMMUhPWXUzRFBpWUNjYVl4eXhkRkl5VDVtQWZCbXIwVUtQTw==".getBytes()));
    }
}

没啥东西,自己捋一下就都出来了。。。。。。文章来源地址https://www.toymoban.com/news/detail-523601.html

到了这里,关于米斗APP逆向分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • xx音乐app逆向分析

    目标 看一下评论的请求 抓包 这里使用httpcanary 请求包如下 参数分析 首先看看变化的参数 结果如下 clienttime是时间戳,那么只要知道key是怎么来的就行了 反编译apk 直接用jadx反编译,使用最新版本的可以不用内存大小。 接着就要看看是不是在java层。首先搜索show_admin_tags试试

    2024年02月10日
    浏览(50)
  • 某安全对抗行走APP逆向分析

    https://api5.xxxx.com/xxx-rest-service/message/fun_getnearby 看一下参数: opentime:时间戳 reqdata:base64编码 sign 未知,需要解密

    2024年02月07日
    浏览(47)
  • 对某数藏app逆向安全分析

    目录 前言 分析 加密参数分析 webview调试 1.webviewdebughook调试 2.webviewpp调试 源码静态分析 x-request-id x-token sign: web端调试,逆向 uniapp调试分析 流程分析 尝试主动调用 广告(不喜忽略) 结语 昨晚我群里有个老哥在问移动端滑块怎么分析 因为大多app端的滑块都是加载在webview上的

    2024年02月06日
    浏览(41)
  • 电影APP项目(Android+Java+MySQL)

    设计采用C/S架构,前端使用JAVA开发app的客户端,服务器采用多线程+套接字架构开发一个数据后台用来传送数据。 1.DBUtil.java: 2.ServerAgentThread.java: 3.ServerThread.java: 4.Constant.java: 1AndroidManifest.xml: 2.left_in.xml: 3.left_out.xml: 4.shape_corner.xml: 5.shape_corner_login.xml: 6.activity_login.xml: 7.activi

    2024年02月09日
    浏览(48)
  • Android逆向学习(五)app进行动态调试

    非常抱歉鸽了那么久,前一段时间一直在忙,现在终于结束了,可以继续更新android逆向系列的,这个系列我会尽力做下去,然后如果可以的话我看看能不能开其他的系列,当然这就要看我以后忙不忙了,废话少说我们开始今天的学习,动态调试 对了,关于之前smali2java插件的

    2024年02月07日
    浏览(38)
  • 某Flutter-APP逆向分析

    图例: Flutter 打包后的so文件所在位置 使用IDA打开 libflutter.so文件,在 Srings window中搜索 ssl_server字符串,通过交互引用,可以查找到具体的引用函数,如下所示: 主要思路:Flutter框架通过中间人proxy无法拦截到数据包,需绕过其对证书绑定的判断。通过对libflut

    2024年02月13日
    浏览(35)
  • i茅台app逆向分析frida反调试

    i茅台 1.3.7 frida 14.2.17 安卓 9 系统 常规frida不注入任何脚本 这种情况就是有frida反调试,frida的反调试可以写在java层或者so层,搜罗网上的方法,比较 普遍的就是:使用葫芦娃版本的frida、改frida_server的名称,修改frida_server的端口,文章中的frida_server均已满足以上条件,情况比

    2024年02月12日
    浏览(51)
  • app反爬测试之apk逆向分析-frida

    目前为止,很多app的防护基本也还是用的ssl pinning检测证书。 因为,目前的app要么不用ssl,要么用就是一般的ssl,基本就是在手机上装个相关软件 的代理即可,而且这个代理基本就是fiddler,charlels,burpsuite,mitmproxy(Python环境下的)四个抓包软件自带的ssl证书,然后即可抓到

    2024年02月15日
    浏览(54)
  • 【该文章已被封禁】区块链钱包APP逆向分析及实现

    0、原文链接:点击我进行打开: https://qqizai.gitee.io/qqizai/views/Android_reverse/20210910_BlockchainWalletReverse.html 1、发布了很久的文章,突然间收到信息说,违反社区规定。。。 2、不知道哪里违反了规定哦,我也没指名道姓是什么APP,也没放源码教你们破坏。。。

    2024年02月12日
    浏览(37)
  • Android安卓实战项目(12)—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】生活助手类APP(源码在文末)

    B站演示 【Android安卓实战项目(12)—生活助手类APP—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】】 https://www.bilibili.com/video/BV1Wu4y1C76j/?share_source=copy_webvd_source=b2e9b9ed746acda34f499009647748ed 这段代码是一个Android应用程序的主要活动(Activity),它是一

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包