一.涉及知识点

app脱壳
java层
so层动态注册

二.抓包信息

POST /user/login.html HTTP/1.1
x-app-session: 1603177116420
x-app-lng: 121.xxxx
x-app-lat: 31.xxxxxx
x-app-version: 4.5.6
x-app-pushid: 1a0018970a165a9944f
x-app-locationcityid: xxxxxx
x-app-uuid: cd6df0a047ae0fbb
User-Agent: Caibeike/1.0(com.caibeike.android 4.5.6; Nexus_5;Android 6.0.1; cd6df0a047ae0fbb; zh_CN)
x-app-cityid: xxxx
x-app-platform: android
x-app-nonce: 1683473123
x-app-timestamp: 1603182403928
x-app-encrypt-text: 72157d096e1793b4f7696ea92285e93a
host: mapi.caibeike.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 54
Connection: Keep-Alive
Accept-Encoding: gzip pw=2aed29ddfb50fc6f07e1a2bf3e6e3d87&mobile=xxxx

三.分析

x-app-lng: 121.xxx
x-app-lat: 31.xxxx
x-app-locationcityid: xxx
x-app-cityid: xxxx
#这些是地理信息 x-app-encrypt-text
#这个明显是加密信息 #请求参数中pw很明显做了加密

四.开始找参数

#首先先不管请求头直接搞请求参数加密
#为什么呢不搞请求头呢,因为请求头未必有用

脱壳

日常习惯看看有没加壳

简单的加固而已

看我往期的博客

https://www.cnblogs.com/pythonywy/p/13536130.html

定位加密参数

这个全经验吧,同学们自己多多专研这个很难教

#python转一下
from Crypto.Cipher import AES class Aes_ECB(object):
def __init__(self):
self.key = 'gSPs4aHZL1ocan1w' #秘钥
self.MODE = AES.MODE_ECB
self.BS = AES.block_size
self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(self.BS - len(s) % self.BS)
self.unpad = lambda s: s[0:-ord(s[-1])] # str不是16的倍数那就补足为16的倍数
def add_to_16(value):
while len(value) % 16 != 0:
value += '\0'
return str.encode(value) # 返回bytes def AES_encrypt(self, text):
aes = AES.new(Aes_ECB.add_to_16(self.key), self.MODE) # 初始化加密器
encrypted_text = aes.encrypt(Aes_ECB.add_to_16(self.pad(text))).hex()
# 执行加密并转码返回bytes
return encrypted_text

运行发现他还需要请求头进行破解

破解请求头

#找java层方法都一样,日积月累关键字查找,你会发现x-app-encrypt-text在so文件中

反编译so文件

1.修改apk的后缀名为zip

2.用ida打开so文件

获取so层方法的偏移位置

我之前的代码

https://www.cnblogs.com/pythonywy/p/13787332.html

定位位置之后找盐







哈哈,盐就是这个

至于入参毕竟是他人的app我就不写的很详细拉

方法和思路都有了大家可以去试试

彩贝网app破解登入参数(涉及app脱壳,反编译java层,so层动态注册,反编译so层)的更多相关文章

  1. Node.js+Express+MongoDB数据库实现网页注册登入功能

    通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...

  2. 爬虫破解知乎登入(不使用Selenium模块)

    一.分析 知乎完成登入的步骤 首先获得cookies(如果不获得后面验证码无法获得) 获得验证码 提交登入相关内容 前两步简单稍微细心寻找规律即可 其中最难的是第三步应该他前端进行了js加密 这里没什 ...

  3. python_Django 实现登入功能form表单的参数接收处理

    1.创建Django工程. 参考https://www.cnblogs.com/CK85/p/10159159.html中步骤. 2.在urls.py文件中添加url分发路径 "" ...

  4. 14-python登入教务网(python+bs4)

    用request先得到到session对象,用其去放送请求,会自动保存cookie. 模拟有验证码的登入步骤: 1.发送请求登入页面: 2.分析验证码的地址,以及要将登入请求发往的地址(可以先输入错的 ...

  5. Mac app 破解之路

    6年之前一直做过一些内存挂,脚本挂.都是比较低级的技术. 这几年期间,断断续续利用业余时间学了一些汇编的知识,当时只是想着破解游戏. 所有的黑技术都是业余自学的,没有老师可以问,只能百度和自己领悟,比 ...

  6. [ASP.NET MVC] ASP.NET Identity登入技术应用

    [ASP.NET MVC] ASP.NET Identity登入技术应用 情景 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授权等等机制.在ASP.NET I ...

  7. [Django]登陆界面以及用户登入登出权限

    前言:简单的登陆界面展现,以及用户登陆登出,最后用户权限的问题 正文: 首先需要在settings.py设置ROOT_URLCONF,默认值为: ROOT_URLCONF  = 'www.urls'# ...

  8. c#实现Google账号登入授权(OAuth 2.0)并获取个人信息

    c#实现Google账号登入授权(OAuth 2.0)并获取个人信息   此博主要介绍通过google 账号(gmail)实现登入,授权方式OAuth2.0,下面我们开始介绍. 1.去google官网 ...

  9. c#实现microsoft账号登入授权(OAuth 2.0)并获取个人信息

    本博主要介绍microsoft 账号授权(OAuth 2.0)登入并获取用户信息的过程,因为写过google账号授权登入的过程,所以这里就简单介绍一下,google授权登入参考地址:http://ww ...

随机推荐

  1. Mybatis的Mapper中的方法为什么不能重载?

    目录 前言 环境配置 错误示范 为什么不能重载? 如何找到XML中对应的SQL? 总结 前言 在初入门Mybatis的时候可能都犯过一个错误,那就是在写Mapper接口的时候都重载过其中的方法,但是运 ...

  2. USB URB的status及其代表的意义

    USB URB的status及其代表的意义 平时在处理客户问题时,经常需要分析出现问题时抓取的usbmon log,这个log中有一个字段非常重要:URB Status word,这个字段就是stru ...

  3. 不定方程(Exgcd)

    #include<cstdio> using namespace std; int x,y; inline int abs(int a){return a>?a:-a;} int e ...

  4. 常见重构技巧 - 5种方式去除多余的if else

    常见重构技巧 - 去除多余的if else 最为常见的是代码中使用很多的if/else,或者switch/case:如何重构呢?方法特别多,本文带你学习其中的技巧. 常见重构技巧 - 去除多余的if ...

  5. MySQL多版本多实例安装启动

    多版本,大版本不同测试多实例,一个MySQL5.7.30一个MySQL8.0.20 解压8.0 tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar tar ...

  6. 基于abp的小小设备控制系统设计

    客户有一堆小设备,需要通过小程序来控制它们,主要是设备门的开关.电源开关.状态查询.压力控制等.下面主要纪录下设计思路.源码地址:https://gitee.com/bxjg1987/abp 最初的设 ...

  7. k8s运行容器之deployment(三)

    deployment 我们已经知道k8s是通过各种controller来管理pod的生命周期.为了满足不同业务场景,k8s开发了Deployment.ReplicaSet.DaemonSet.Stat ...

  8. ERP与EHR系统的恩怨纠葛--开源软件诞生13

    ERP中需要EHR的存在吗--第13篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon ...

  9. C++练习案例1.计算机类(利用多态实现)

    c++简单计算机类 简介 大家好,这里是天天like的博客,这是我发的第一篇随笔,用来记录我的学习日程,大家可以相互学习,多多交流,感谢 今天我要记录的随笔是在学习c++多态的知识点练习改进的一个案例 ...

  10. MySQL数据库入侵及防御方法

    来自:http://blog.51cto.com/simeon/1981572 作者介绍 陈小兵,高级工程师,具有丰富的信息系统项目经验及18年以上网络安全经验,现主要从事网络安全及数据库技术研究工作 ...