reverse-android-淘最热点so

资源

1.  com.maihan.tredian  2021版 淘最热点  

2. 该 app 没有加壳 ,也没混淆。

登录抓包

POST: https://api.taozuiredian.com/api/v1/auth/login/sms

POST /api/v1/auth/login/sms HTTP/1.1
Content-Type: application/json
Connection: close
Charset: UTF-8
User-Agent: Dalvik/2.1.0 (Linux; U; Android 14; Pixel 6 Build/AP1A.240505.004)
Host: api.taozuiredian.com
Accept-Encoding: gzip
Content-Length: 566

{"sign":"3c0bc27ca0e9a647f32f5e9751d0db63e38849b5","nonce":"8bfisg1718611936552","tzrd":"BwzXzSGFyiPstMIVuzTZb7LzTZzbXRJOFzpbQiIaT7ujUDo3\/3Itq4wx7VQB94J9yQcrD22YICXHDicUiOY8ggIARFsAfdxkYDBJCJN5ScgdFKnF1+ISjECffNemekpceZEtoWiE8Dw8qF5DYd\/RAGF7iNzRF3WoESa4CR2\/JzHhlwW4d8a2HNEPaNGcdwvomjmkQRh17mnDNufFD3YbHeoTId4Gz0h+IzLUuHCLgQFWoUK\/FPYa7epLPvJ0fi5U1wrV+FU+avqDNzGQVyeewhofZU5c511E0ITgSI27IrqBdCwvtpyW29F8T5dsHhmTrkKyJqs43AS\/fAapl7jYuzLz1+P7PPNEATv5y8GVTQJb+xYVZSVeyNpXmpSgkNIiSQVcRG8xw\/tAAOh6LpuZrx4Xay6OlulssTeYvnaAR1k=","timestamp":"1718611936","app_ver":"100"}

HTTP/1.1 400 Bad Request
Server: nginx
Date: Mon, 17 Jun 2024 08:12:03 GMT
Content-Type: application/json
Content-Length: 167
Cache-Control: no-cache, private
Access-Control-Allow-Origin: *
Vary: Origin
Connection: close

{"code":1,"error":{"code":1,"ex_code":0,"exid":"9a16e02c3c1769177721bc0ece924941","message":"\u9a8c\u8bc1\u7801\u4e0d\u6b63\u786e","custom_params":[]},"success":false}

需要一下三个参数逆向:

sign: 3c0bc27ca0e9a647f32f5e9751d0db63e38849b5

nonce: 8bfisg1718611936552

tzrd: BwzXzSGFyiPstMIVuzTZb7LzTZzbXRJOFzpbQiIaT7ujUDo3\/3Itq4wx7VQB94J9yQcrD22YICXHDicUiOY8ggIARFsAfdxkYDBJCJN5ScgdFKnF1+ISjECffNemekpceZEtoWiE8Dw8qF5DYd\/RAGF7iNzRF3WoESa4CR2\/JzHhlwW4d8a2HNEPaNGcdwvomjmkQRh17mnDNufFD3YbHeoTId4Gz0h+IzLUuHCLgQFWoUK\/FPYa7epLPvJ0fi5U1wrV+FU+avqDNzGQVyeewhofZU5c511E0ITgSI27IrqBdCwvtpyW29F8T5dsHhmTrkKyJqs43AS\/fAapl7jYuzLz1+P7PPNEATv5y8GVTQJb+xYVZSVeyNpXmpSgkNIiSQVcRG8xw\/tAAOh6LpuZrx4Xay6OlulssTeYvnaAR1k=

java层分析

1. 搜索 login/sms

2. 搜索sign, tzrd 字段

可以定位到在 MhRequestUtil.a中

tzrd: Base64.encodeToString(AesUtil.b(jSONObject.toString().getBytes(), a.getBytes(), b.getBytes()), 2);

我们在hook 下 encodeToString ()看是不是这里。 encodeToString里面是个AES ,

String a = "AES/CBC/PKCS5Padding"; 从代码中可以看出 是 aes 自吐算法

Java.perform(function(){

    var Base64 = Java.use('android.util.Base64');
    var String =Java.use('java.lang.String');
    // Base64.encodeToString(AesUtil.b(jSONObject.toString().getBytes(), a.getBytes(), b.getBytes()), 2);
    Base64.encodeToString.overload("[B","int").implementation =function(input,flag){
        console.log(' hook encodeToString.overloads("[B","int") ...' );
        console.log(getStackTrace());
        
        var data= this.encodeToString(input,flag);
        console.log('res data origin: ', data);
        console.log('res data string: ', String.$new(data));

        return data;
        
    }


    // public static byte[] b(byte[] bArr, byte[] bArr2, byte[] bArr3) throws Exception {
    var  AesUtil = Java.use('com.maihan.tredian.util.AesUtil');
    AesUtil.b.implementation= function(src,key,key2){ // key =PeMBjWOVbrMgElXO 写死 , key2: VTToNCiifIJ9c2co

        console.log(getStackTrace());
        console.log('src: ',src)
        console.log('key: ',key)
        console.log('key2: ',key2)

        var data= this.b(src,key,key2);
        console.log('res data origin: ', data);
        console.log('res data string: ', String.$new(data));
        return data;
        
    }

    


    function getStackTrace(){
        return Java.use('android.util.Log').getStackTraceString(Java.use("java.lang.Throwable").$new());
    }
})

//frida -UF -l hook_sign_java.js

打印出:

src string:  {"imei2":"null","device_name":"google Pixel 6","code":"6465","imei1":"null","phone":"18051116656","device_udid":"47cba2e1a0c4aed30ddf6687e096ab84","device_id":"2fd841981ec9f6dbb162d6bf7f93de5e","channel":"official","system":"1","from":"app","mac":"02:00:00:00:00:00","os_ver_code":"34","android_id":"e3de5277cf5deadf"}


key string:  PeMBjWOVbrMgElXO


key2 string:  VTToNCiifIJ9c2co

可以看出上面的  几个数据都是 定2量的。

tzrd= Base64(AES(src,key,key2))

sign: TreUtil.sign(a(map, false, false))

sign 是so里面:  System.loadLibrary("tre");

    public static native String sign(String str);

从lib中找出 libtre.so 是32位的, 用 IDA 32位打开。 在 导出表里面.

hook sign so

nonce:  随机数

 private static String a() {
        Random random = new Random();
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < 6; i++) {
            stringBuffer.append("abcdefghijklmnopqrstuvwxyz0123456789".charAt(random.nextInt(36)));
        }
        return stringBuffer.toString() + System.currentTimeMillis();
    }

so层分析

算法还原

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/717078.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++中list容器常用接口

list的基本定义: 在C中&#xff0c;list被定义为一个双向链表容器。它是标准模板库&#xff08;STL&#xff09;中的一部分&#xff0c;位于<list>头文件中。 list是一个通用模板类&#xff0c;可以存储任何类型的数据&#xff0c;因此它是一个模板类。它实现了双向链表数…

Web应用安全测试-综合利用(一)

Web应用安全测试-综合利用&#xff08;一&#xff09; 文章目录 Web应用安全测试-综合利用&#xff08;一&#xff09;1.跨站脚本攻击&#xff08;XSS&#xff09;漏洞描述测试方法GET方式跨站脚本Post方式跨站脚本 风险分析风险等级修复方案总体修复方式对于java进行的web业务…

Pycharm怎么默认终端连接远程服务器

因为经常需要从宿舍到学校内通勤&#xff0c;期间所有连接都会中断&#xff0c;所以每次开SSH特别麻烦&#xff0c;每次终端自动切换到本地&#xff1a; 每次都得点一下Start SSH Session 想要默认终端连接远程服务器&#xff0c;需要点File->Setting->Tools->SSH T…

详细描述拍立淘接口的实现过程,包括接口设计、开发、测试、部署等关键步骤

拍立淘接口的实现过程可以详细分为以下几个步骤&#xff1a; 注册与权限获取&#xff1a; 注册成为阿里巴巴开放平台开发者&#xff0c;并创建应用。获取API的调用权限和密钥&#xff08;如AppKey和AppSecret&#xff09;&#xff0c;这些密钥将用于后续的身份验证和请求签名。…

SmartEDA体验记:探索电路设计新纪元,乐趣无限!

在科技日新月异的今天&#xff0c;电路设计早已不再是专业人士的专属领域。随着智能化工具的不断发展&#xff0c;普通人也能轻松体验到电路设计的乐趣。今天&#xff0c;就让我带大家走进SmartEDA的世界&#xff0c;一起感受前所未有的电路设计之旅。 SmartEDA&#xff0c;作为…

Ubuntu如何添加用户环境变量

一&#xff0c;简介 在工作中&#xff0c;需要将某个环境变量添加到用户环境变量中&#xff0c;方便使用。 要将 SOF_WORKSPACE~/work/sof 添加到用户的环境变量中&#xff0c;需要将该设置添加到用户的 shell 配置文件中&#xff0c;例如 ~/.bashrc&#xff08;对于 Bash 用…

IEPL专线和IPLC专线有什么区别?

IEPL和IPLC是两种广泛用于国际通信的专线服务&#xff0c;IEPL是一种以太网专线服务&#xff0c;IPLC是一种传统的专线服务&#xff0c;它们在某些方面有相似之处&#xff0c;但也存在一些关键的区别。下面是IEPL和IPLC的主要区别: 1.技术和定义: IEPL: 技术: IEPL是一种以太…

推广结算统计,Xinstall助您轻松掌握每一分投入与回报!

在移动互联网时代&#xff0c;App的推广与运营离不开精准的数据支持和高效的结算系统。然而&#xff0c;面对众多的推广渠道和复杂的结算流程&#xff0c;如何确保每一分投入都能得到合理的回报&#xff0c;成为了众多企业和开发者关注的焦点。今天&#xff0c;我们就来聊聊如何…

猫:“喵不知道不喝水要打针”,主食冻干、主食罐头骗水远离缺水

猫咪如果长期不喝水&#xff0c;一直处于缺水状态&#xff0c;会对健康产生很大的影响。可能会导致便秘、上火、尿黄、尿少等。在高温的夏季&#xff0c;猫还可能会因为脱水而出现中暑的情况&#xff0c;严重时甚至会导致死亡。此外&#xff0c;长期饮水不足的猫咪也容易患上泌…

SaaS案例分享:成功构建销售渠道的实战经验

面对SaaS产品推广的难题&#xff0c;你是否曾感到迷茫&#xff0c;不知如何选择有效的销售渠道&#xff1f;Shopify独立站联盟营销或许能为你提供新的思路。Shopify作为领先的电商解决方案提供商&#xff0c;其独立站功能为众多商家提供了强大的在线销售平台。而联盟营销&#…

【SpringBoot整合系列】SpringBoot整合kinfe4j

目录 kinfe4j与Swagger的区别 SpringBoot2.x整合kinfe4j1.添加依赖2.启动类注解3.创建Knife4J配置类4.实体类5.接口admin访问 api访问 常用注解汇总SpringBoot3.x整合Kinfe4j启动报错解决1.更换依赖2.启动类3.配置4.配置类5.参数实体类6.接口admin访问 api访问 各版本注解参照 …

SQL综合查询-学校教务管理系统数据库

一、一个完整的数据查询语句的格式 SELECT 【ALL|DISTINCT】<目标列表达式>【&#xff0c;<目标列表达式2>&#xff0c;...】 FROM <表名或视图名1>【&#xff0c;<表名或视图名2>&#xff0c;...】 【WHERE <元组选择条件表达式>】 【GROUP…

AI大模型浪潮席卷而来,你准备好乘风破浪成为行业翘楚了吗?

揭秘AI大模型浪潮&#xff1a;你准备好乘风破浪了吗&#xff1f; 在繁华的都市中&#xff0c;程序员小李一直默默耕耘在代码的海洋中。然而&#xff0c;随着AI大模型技术的迅猛发展&#xff0c;他发现自己仿佛置身于一场没有硝烟的战争中。身边的同事纷纷掌握了新技术&#xf…

Python基础教程(二十四):日期和时间

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

bit band

位带(bit band) 简介: 在嵌入式系统和微控制器中,位带是一种特殊的内存映射技术. 它允许程序员像访问普通内存一样直接访问和修改特定寄存器的单个位. 使用bit band技术,可以通过内存映射的方式,将特定的位操作转换位对整个字的操作,从而实现对单个位的读写. 作用: 提高位操…

oracle发送http请求

UTL_HTTP包让SQL和PLSQL能够调用超文本传输协议&#xff08;HTTP&#xff09;&#xff0c;也就是说可以使用它在Internet上访问数据。 当包用HTTPS从Web site获取数据时&#xff0c;要使用Oracle Wallet&#xff0c;它是由Oracle Wallet Manager或者orapki utility创建。非HTT…

Elixir学习笔记——调试

在 Elixir 中&#xff0c;有多种调试代码的方法。在本章中&#xff0c;我们将介绍一些较常见的方法。 IO.inspect/2 O.inspect(item, opts \\ []) 在调试中真正有用的原因是它返回传递给它的 item 参数而不影响原始代码的行为。让我们看一个例子。 打印&#xff1a; 如您所见…

web3.0链游农民世界开发搭建0撸狼人杀玩法模式定制开发

随着区块链技术的飞速发展&#xff0c;Web3.0时代的链游已成为游戏行业的新宠。本文将介绍一款基于Web3.0的链游——农民世界&#xff0c;如何定制开发0撸狼人杀玩法模式&#xff0c;以及该模式的专业性、深度思考和逻辑性。 一、背景介绍 农民世界是一款以农业为主题的链游…

5G消息 x 融媒 | 媒体融合新入口

5G消息 x 融媒 | 媒体融合新入口 5G 消息是 5G 时代三大运营商联合手机厂商推出的平台型应用&#xff0c;5G 消息以短信为入口&#xff0c;以富媒体消息为媒介&#xff0c;具有权威真实、全面覆盖、精准投放、内容汇聚、开放共享等特点。这些特点符合当下融媒体发展的需求&…

最新下载:Hype 4 mac版【软件附加安装教程】

Hype是一款强大的Mac OS平台 HTML5 创作工具&#xff0c;它可以在网页上做出赏心悦目的动画效果&#xff0c;创建丰富的网页交互动画&#xff0c;支持层、时间轴等编辑方式&#xff0c;并能很好的导出HTML5/CSS3/JavaScript&#xff0c;在台式机&#xff0c;智能手机和iPad上流…