app逆向 || xx合伙人登陆参数

news2024/12/26 11:56:27

声明

本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!

如果觉得文章对你有所帮助,可以给博主点击关注和收藏哦!
本文适用于对安卓开发和Java有了解的同学

前言

本人最近一直在学习app方面的逆向,会不定期的分享逆向的思路和技巧。
目标app:xx合伙人
目标参数:apisign

链接放在文末,有需要自行安装

逆向工具介绍

关于抓包工具、反编译工具、模拟器等工具的使用和安装这里不多做讲解。

我这里的环境是:

  • 真机 Google Nexus 6p(安卓8.0)
  • chalres
  • 抓包工具:postren、HttpCanary等
  • jadx 1.4.5
  • Android Studio
  • Ratel平头哥(Android hook工具)
  • Frida14.2.17、frida-tools9.2.4(版本一定要对应!!!)

有感兴趣的可以阅读大佬文章:知识笔记 - 平头哥ratel安卓Hook框架的安装与简单使用

项目地址是: https://github.com/virjarRatel

抓包分析

配置好以上这些环境之后,开始抓包。这个app十分的简单并没有对抓包进行检测,所以使用了小黄鸟去抓包,抓包结果如下:
在这里插入图片描述

登陆的请求基本都是以post为主,在这里请求的参数发送了data和aisign,其中apisign进行了加密。一个32位的加密,很明显能想到md5,究竟是不是呢,使用jadx反编译看一下源码便知。

在这里插入图片描述

该参数一搜索就出来了,选择一个地方直接点进去。
在这里插入图片描述

由于没有混淆代码,很清楚的就能看到data是请求的表单数据。
在这里插入图片描述

使用一个递减的循环pwd和user放进来,这也符合提交的参数。

再看apisign,使用了md5加密,参数分别是Constants.MD5_KEY和data.toString()
鼠标选中Constants.MD5_KEY同时按下ctrl就可以跳进声明的地方了。
在这里插入图片描述

逻辑全部清楚后,就是写hook代码验证了。

开发Ratel插件

在这里插入图片描述
运行代码后,会在手机上安装一个app。
重新启动app输入账号密码。
在这里插入图片描述
输出的内容和抓包的内容完全相同,证明插件是没有问题的。

Frida hook代码编写

首先安装frida

pip install frida
pip install frida-tools

时间比较漫长,耐心等待即可。

参考资料:frida文档

frida的hook是非常简单的,找到加密代码所在的类然后复制下来使用,再找到加密方法去hook打印输出即可。
在这里插入图片描述
frida不使用python,直接使用js脚本用法
frida -U APP包名 -l js脚本名: frida -U com.xxx.xxx -l xxx.js
重启app操作
frida -U -l xxx.js -f com.xx.xx --no-pause

运行结果:
在这里插入图片描述

最后使用python进行加密:
在这里插入图片描述

可以看到结果是一样的。

最后

链接:https://pan.baidu.com/s/1v09qWEP5qnaxfqeYAmBTGw
提取码:8888

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

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

相关文章

学习笔记5:关于操作符与表达式的求值

目录​​​​​​​ 一.移位操作符 1.左移操作符 2.右移操作符 二.位操作符 1.位运算基本知识 2.位运算的巧妙运用 三.其他操作符 1.算术操作符 2.单目操作符 3.关于逻辑操作符 四.表达式求值 隐式类型转换 (1)整形提升(短整型家族数据的二进制序列补位转换) (2).算…

【最新】SpringBoot集成Dubbo3

最近在学习dubbo,构建一个简单的springboot集成dubbo,中间也是出了好多问题,在这记录下整体的过程。 1. 构建SpringBoot环境 一个简单的聚合工程 dubbo-consumer:是服务消费方dubbo-provider:是服务提供方dubbo-inte…

机器学习笔记之前馈神经网络(二)非线性问题

机器学习笔记之前馈神经网络——非线性问题引言回顾:关于非线性问题解决非线性问题的三种方式引言 上一节介绍了从机器学习到深度学习的过渡,并介绍了深度学习的发展过程。本节将主要介绍如何使用神经网络处理非线性问题 回顾:关于非线性问…

决策树生成、决策树可视化、决策树算法api、泰坦尼克号乘客生存预测案例代码

一、决策树算法api class sklearn.tree.DecisionTreeClassifier(criterion’gini’,max_depthNone,random_stateNone) criterion:特征选择标准,"gini"或者"entropy",前者代表基尼系数,后者代表信息增益&…

来自 GitHub 2022 的趋势和见解

《Github 2022 发展趋势和见解》发布了这件事小伙伴们知道了吧?这是每个程序员不能错过的年度报告,因为里面详细介绍了语言的发展趋势和热门领域的介绍。那就让我们来看看吧 目录 编程语言 地理分布 贡献时间分配 技术发展趋势 最受欢迎的存储库 …

GoogLeNet详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上,有需要的朋友可以康康✨ https://github.com/tt-s-t/Deep-Learning.git 目录 一、GoogLeNet…

C++入门——auto、范围for、nullptr

下一篇就要类和对象了,剩了点零碎的知识点就浅浅水一篇把 一. auto关键字 在早期C/C中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的 是一直没有人去使用它,这是由于变量本身就具备生命周期…

算法及时间、空间复杂度

算法 算法是对问题求解过程的一种描述,是为解决一个或一类问题给出的一个确定的、有限长的操作序列。严格说来,一个算法必须满足以下5个重要特性: (1)有穷性:对于任意一组合法的输入值,在执行有…

【数据结构与算法——C语言版】5. 排序算法(2)——冒泡排序

前言 上篇文章【数据结构与算法——C语言版】4. 排序算法(1)——选择排序我们介绍了排序算法中的选择排序,其时间复杂度是O(n2),本篇文章我们将介绍另一种同样时间复杂度是O(n2)的排序算法——冒牌排序,这两种算法思路…

ChatGPT背后的开源AI框架Ray,现在值10亿美元

Ray 被 OpenAI、亚马逊等科技公司用来开发大模型,是最近异军突起的框架。 最近一段时间,文本生成的人工智能在互联网上掀起了一阵风暴:ChatGPT 因为可以对人们能想到的几乎任何问题提供非常详细、近乎逼真的回答而受到追捧。大模型应用的出现…

Mapper代理开发案例及MyBatis核心

本片文章需要参考我的前一篇文章:MyBatis入门案例引入总结,使用mapper代理开发的好处就是可以解决开发中硬编码的问题和简化后期的SQL执行。使用这种方式可以不用写接口的实现类,免除了复杂的方法,使得代码更加清晰易懂按照以前的…

vue的过渡动画(有vue的动画库和ui库的介绍)

一、概念 Vue 在插入、更新或者移除 DOM 时&#xff0c;提供多种不同方式的应用过渡效果。 二、默认过渡 <template><div><button click"isShow!isShow">显示/隐藏</button><transition appear><h1 v-show"isShow" cl…

过滤器和拦截器的使用及管理

参考&#xff1a;(70条消息) Spring过滤器和拦截器的区别_yjc0403的博客-CSDN博客https://www.cnblogs.com/colin220/p/9606412.htm概述过滤器&#xff1a;是在javaweb中&#xff0c;你传入的request、response提前过滤掉一些信息&#xff0c;或者提前设置一些参数&#xff0c;…

Anaconda安装之后Spyder打不开解决办法--目前有用 jupyter notebook 无法正常运行2023.1.7

纯纯小白&#xff0c;探索一天&#xff0c;终于成功&#xff0c;需要我的经历没有白费&#xff0c;让大家少走弯路。 问题描述 从官网下载Anaconda之后&#xff0c;安装&#xff0c;一切正常。打开Anaconda navigator在弹出窗口选择了更新&#xff08;我怀疑这就根源&#xf…

Js逆向教程24-作用域和自执行函数

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程24-作用域和自执行函数 一、变量作用域 1.1局部变量 function jb() {var a"我是局部变量"return a; }1.2全局变…

【Java寒假打卡】Java基础-异常

【Java寒假打卡】Java基础-异常异常概述throws声明异常throw抛出异常try-catch 抛出异常throwable的成员方法异常概述 Exception:称之为异常类&#xff0c;他表示程序本身可以处理的问题 RuntimeException及其子类&#xff1a;运行时异常。&#xff08;空指针异常&#xff0c;…

JUC总结系列篇 (二) : 对线程的理解和使用总结

文章内容&#xff1a; 一.为什么需要多线程 二.线程的创建 三.线程的方法sleep(),run(),wait(),yeid(),join(),interrupt()等方法归纳总结 四.线程的状态及其转换 五.线程的交替执行案例 六.多个线程依次执行案例 七.多线程并发带来的线程安全问题 一.为什么需要多线程&#x…

Linux项目自动化构建工具-make/Makefile

一、前言 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力。一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件…

前端入门笔记 04 —— Web(html CSS)布局

响应式布局 屏幕尺寸变化&#xff0c;需要响应式网页设计RWD web页面适应不同屏幕宽度因素 液态站点&#xff0c;拉伸充满浏览器窗口 小屏幕挤成一团&#xff0c;大屏幕空白间隙过大固定宽度 像素为单位固定尺寸 小屏幕滚动&#xff0c;大屏幕空白 实现 设置meta标签媒体查…

数据结构入门5-1(数和二叉树)

目录 注 树和二叉树的定义 树的定义 树的基本术语 二叉树的定义 树和二叉树的抽象数据类型定义 二叉树的性质和存储结构 二叉树的性质 二叉树的存储结构 1. 顺序存储结构 2. 链式存储结构 遍历二叉树和线索二叉树 遍历二叉树&#xff08;traversing binary tree&a…