app逆向入门之车智赢

news2024/11/24 2:21:51

声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究

目录

  • 案例分析
  • 技术依赖
  • 参数分析
  • 效果展示
  • 代码分享

案例分析

aHR0cHM6Ly9kZWFsZXJjbG91ZGFwaS5jaGUxNjguY29tL3RyYWRlcmNsb3VkL3NlYWxlZC9sb2dpbi9sb2dpbi5hc2h4

  1. 对应接口和难点
    在这在这里插入图片描述
里插入图片描述

技术依赖

电脑需要的依赖

python 版本3.8
frida—14.2.18
frida-tools —9.2.5

我这边用的真机,所以真机的依赖也需要装证书我们上一期都已经说了,不知道的可以看

https://blog.csdn.net/w62181310/article/details/134162716

frida-server 安装,因为我市真机所以对应是不同的,如果使用其他模拟器什么的要下载对应的,并且要跟frida版本对应
在这里插入图片描述
frida要装在手机的/data/local/tmp/下
在这里插入图片描述

需要加权限,我这边是已经加了,就不演示了

chmod 777 frida-server-14.2.18-android-arm64

那么我们可以启动frida,这样是已经启动了

在这里插入图片描述
启动了frida,还需要转发端口

adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043

frida不懂可以百度下,还要准备jadx
在这里插入图片描述这个可以网上下载哈,同样需要java环境,我这边是1.8的版本,如果打不开可能是java版本不匹配

在这里插入图片描述
我们环境都准备好了那么可以开始了

参数分析

我们通过jadx打开这个app的apk,还记得之前搞web的搜索大法嘛,这个同样适用

在这里插入图片描述
点进去查看发现有点像但是不确定,那么我们可以借助frida进行hook,在hook之前要查到他对应的包名,我使用的是python的方法

import frida

# 获取设备信息
rdev = frida.get_remote_device()
# 获取在前台运行的APP
front_app = rdev.get_frontmost_application()
print(front_app)

效果
在这里插入图片描述
我们知道了包名就可以使用frida进行hook了, 1.js就是我们些的hook脚本
在这里插入图片描述
通过搜索md5可以找到这里是最像的,进去之后进入md5,我们对md5进行hook
在这里插入图片描述hook他查看入参
在这里插入图片描述
结果,我们看到一个md5hook出来两个参数美滋滋,密码就是输入的,另一个是拼接的
在这里插入图片描述
我们来看sign的解密参数里面有包含udid,我们可以发现udid后半段是会变的,其他都是固定的,那么我们还需要在hook下udid看看什么情况
在这里插入图片描述通过抓包可以看到他是进行的3Des
在这里插入图片描述
到这里整体的加密就全部知道了,那么我们用python还原一下就行,中间的一些值就自行hook下
整体来说很简单,frida等于web的动态调试,只是需要找找位置
其他位置可以自己写下试试,hook代码下面有分享
我们下期再见
在这里插入图片描述

效果展示

在这里插入图片描述

代码分享

1.DES3的分享

import base64

from Crypto.Cipher import DES3



def getDES3Token(text):
    # PKCS5Padding
    # 字符串长度需要是8的倍数
    BS = 8
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS).encode()
    unpad = lambda s: s[0:-ord(s[-1])]

    # 后端给的key是 YcwjZGpmZZhpAmtsbW5qcHFyc3R1pnd4 长度位32位
    # 注意3DES的MODE_CBC模式下只有前24位有意义
    # key和iv都需要是bytearray
    key = b'appapiche168comappapiche'
    iv = b'appapich'

    # text也需要encode成bytearray
    plaintext = pad(text.encode())

    # 使用MODE_CBC创建cipher
    cipher = DES3.new(key, DES3.MODE_CBC, iv)

    # 加密
    result = cipher.encrypt(plaintext)

    # base64 encode
    result = base64.b64encode(result)

    return str(result, encoding='utf-8').replace('\n', '')

2.hook代码分享
在这里插入图片描述

Java.perform(function () {
    console.log('--------------------- hook start ---------------------------')
    let wb = Java.use('com.autohome.ahview.utils.AHViewUtils');
    wb.encodeMD5.implementation = function (str){
        console.log('=====================================================================================')
        console.log(str)
        let res = this.encodeMD5(str);
        console.log("加密结果:" + res);
        return res;

    }
})

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW开发自动批次称重和卸料系统

LabVIEW开发自动批次称重和卸料系统 对自动批次称重系统具明显的优势,例如确保批次完整性,确保批次质量和一致性,允许更好的批次跟踪,并且报告生成范围更广,上层接口的规定更容易。称重配料系统应根据配料方法、输送机…

APP攻防--ADB基础

进入app包 先使用 adb devices查看链接状态 手机连接成功的 adb shell 获取到手机的一个shell 此时想进入app包时没有权限的,APP包一般在data/data/下。没有执行权限,如图 Permission denied 权限被拒绝 此时需要手机root,root后输入 su …

DbUtils + Druid 实现 JDBC 操作 --- 附BaseDao

文章目录 Apache-DBUtils实现CRUD操作1 Apache-DBUtils简介2 主要API的使用2.1 DbUtils2.2 QueryRunner类2.3 ResultSetHandler接口及实现类 3 JDBCUtil 工具类编写3.1 导包3.2 编写配置文件3.3 编写代码 4 BaseDao 编写 Apache-DBUtils实现CRUD操作 1 Apache-DBUtils简介 com…

2-爬虫-代理池搭建、代理池使用(搭建django后端测试)、爬取某视频网站、爬取某视频网站、bs4介绍和遍历文档树

1 代理池搭建 2 代理池使用 2.1 搭建django后端测试 3 爬取某视频网站 4爬取某视频网站 5 bs4介绍和遍历文档树 1 代理池搭建 # ip代理-每个设备都会有自己的IP地址-电脑有ip地址---》访问一个网站---》访问太频繁---》封ip-收费:靠谱稳定--提供api-免费&#xff…

NOIP2023模拟10联测31 涂鸦

题目大意 有一面由 n m n\times m nm个格子组成的墙,每个格子要么是黑色,要么是白色。你每次将会进行这样的操作:等概率随机选择一个位置 ( x , y ) (x,y) (x,y)和一个颜色 c c c(黑色或白色),&#xff0…

Portraiture4.1.2最新中文汉化版

提起PS后期修图人像美白磨皮,大家会想到各种磨皮工具,其中Portraiture这款磨皮效率超高,是99%摄影师的必备插件,一秒磨皮,无卡顿,效果好!人像摄影师人均一款,磨皮质感非常好&#xf…

ER图:改变你数据库设计流程的神器!

在现今数据驱动的世界中,数据库设计扮演了至关重要的角色。为了实现有效且准确的数据存储和检索,企业们开始倾向于采用实体关系图(Entity-Relationship Diagram,简称ER图)来优化他们的数据库设计流程。本文将带你走进E…

Rust编程基础之条件表达式和循环

1.if表达式 if 表达式允许根据条件执行不同的代码分支, 以下代码是一个典型的使用if表达式的例子: fn main() {let number 3; ​if number < 5 {println!("condition was true");} else {println!("condition was false");} } 所有的 if 表达式都以…

win10 + vs2017 + cmake3.17编译OSG-3.4.1

参考教程&#xff1a;https://blog.csdn.net/bailang_zhizun/article/details/120992244 1. 下载与解压 2. 修改configure 1&#xff09;Ungrouped Entries -- 》ACTUAL_3RDPARTY_DIR: 设置为&#xff1a; D:/Depend_3rd_party/OSG341/3rdParty 2&#xff09; Ungrouped E…

免费的 AI 视频生成工具 Moonvalley 厉害了!Moonvalley 怎么用(保姆级教程)

一、Moonvalley 介绍 Moonvalley&#xff0c;号称地表最强的 AI 视频生成工具&#xff0c;到底有多厉害&#xff1f;今天一起来看一下~ 这是 Moonvalley 官网的介绍&#xff1a; Moonvalley 是一个开创性的新型文本到视频的生成式 AI 模型。用简单的文本即可创建出惊人的电影和…

分享一个自己写的免费的微信聊天记录提取软件 2023.11.03

有什么办法可以导出与某个人的微信聊天记录&#xff1f; 只想导出与某个微信好友的聊天记录&#xff0c;有办法做到吗&#xff1f;导出所有的话&#xff0c;文件太大了&#xff0c;只想导出与其中一个人的&#xff0c;求大神教。 我的需求和上面这个人的比较类似&#xff0c;因…

2023辽宁省数学建模竞赛选题建议及AB题思路

大家好呀&#xff0c;今天早上2023年辽宁省大学生数学建模竞赛开赛&#xff0c;在这里给大家带来初步的选题建议及思路。 注意&#xff0c;本文只是比较简略的图文版讲解&#xff0c;完整的视频版讲解请移步&#xff1a; 2023辽宁省数学建模竞赛选题建议及初步思路_哔哩哔哩_…

【面经】讲一下synchronized锁升级的过程

synchronized锁升级是指从偏向锁到轻量级锁&#xff0c;再到重量级锁的过程。 当线程获取synchronized对象时&#xff0c;首先会进行偏向锁的尝试。 如果偏向锁没有竞争&#xff0c;线程将永远不需要同步。 但是&#xff0c;如果偏向锁竞争失败&#xff0c;将升级到轻量级锁。…

python自动化测试模板

1:准备html模版 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>接口自动化…

数据库管理-第114期 Exadata 05-ESS-上(202301103)

数据库管理-第114期 Exadata 05-ESS-上&#xff08;202301103&#xff09; 之前提到过&#xff0c;Exadata通过ESS将存储转换为了智能存储&#xff0c;其实相较于纸面参数非常牛逼但性能还是比不过Exadata的国产一体机&#xff0c;最大的差距也就是在ESS上&#xff0c;从数据库…

自动化测试如何准备测试数据

其实大部分类型的测试都需要去准备测试数据。 手工测试&#xff1a;一些基础数据&#xff0c;比如配置数据等等是需要去准备的&#xff1b;自动化测试&#xff1a;基础需要准备&#xff0c;现有数据&#xff0c;动态运行时产生的数据是需要准备的&#xff1b;性能测试&#xf…

华为云API Explorer伙伴招募火热进行中~

API编排新特性助力伙伴 零代码构建API工作流 实现快速集成场景编排能力 面向三大核心场景&#xff1a; API调用逻辑频繁改动 API间高耦合不便管理 复杂API解决方案难构建 伙伴加入可立享四大限时福利&#xff1a; 免费试用、专家咨询、技术指导、生态支持 点此报名>&…

XSpirit 2智能边缘计算机使用测评

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 拆箱过程介绍视频使用感受 我之前就参加过 Spirit 1 第一代智能边缘计…

Web自动化测试 —— PageObject设计模式!

一、page object 模式简介 1.1、传统 UI 自动化的问题 无法适应 UI 频繁变化无法清晰表达业务用例场景大量的样板代码 driver/find/click 二、page object 设计原则 2.1、POM 模式的优势 降低 UI 变化导致的测试用例脆弱性问题让用例清晰明朗&#xff0c;与具体实现无关 2.…

人工智能AI创作系统ChatGPT网站系统源码+AI绘画系统支持GPT4.0/支持Midjourney局部重绘

一、前言 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建…