pytho之app逆向破解password RSA

2023-11-25 10:50

本文主要是介绍pytho之app逆向破解password RSA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载好app 一只船教育

1.还是先抓包

2.给app脱壳

3.用jadx-gui打开

打开 0x9f557000.dex
并搜索关键字password
一看就是RSA用公钥加密("RSA/ECB/PKCS1Padding")

并搜索关键字password
点击addRSAData查找用例

4.可以同时Hook以下四个方法

encryptByPublicKey,addRSAData,splitString,bcd2Str

得出Hook结果

5.获取token抓包

6.java二进制转字符串 用python实现

def b2str(b: bytes):new_b = ''for a in b:c = ((a & 240) >> 4) & 15# print(c)if c > 9:A1 = (c + ord('A')) - 10else:A1 = c + ord('0')c2 = a & 15if c2 > 9:A2 = (c2 + ord('A')) - 10else:A2 = c2 + ord('0')new_b += chr(A1)new_b += chr(A2)print(new_b)return new_b

7.python改写RSA加密

import rsa
import uuid
import random
import string
import base64
import requests
from Crypto.PublicKey import RSAdef b2str(b: bytes):new_b = ''for a in b:c = ((a & 240) >> 4) & 15# print(c)if c > 9:A1 = (c + ord('A')) - 10else:A1 = c + ord('0')c2 = a & 15if c2 > 9:A2 = (c2 + ord('A')) - 10else:A2 = c2 + ord('0')new_b += chr(A1)new_b += chr(A2)#print(new_b)return new_bdef encryptPassword(data):'''data:内容publicKeyStr:不需要-----BEGIN PUBLIC KEY-----开头,-----END PUBLIC KEY-----结尾的格式,只要中间部分即可key_encoded:不需要-----BEGIN PUBLIC KEY-----开头,-----END PUBLIC KEY-----结尾的格式'''publicKeyStr = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzOIykY8AmZkoDPDL9zfgV48FKY1RcqWYj4YE/zzvNXDl8e7hnkNRNRHk3InE95ehk340iOumV+RJ9KdihoWKHqnSPH2wTxDdI2WFuI1FOfndL67fJliEHx9z6A7bfFUZZq9xuzoA/zPCZbLsfWfa2mbi96Qc1lI73kCa8sLmDwwIDAQAB'# 1、base64编码publicKeyBytes = base64.b64decode(publicKeyStr.encode())# 3、生成publicKey对象key = RSA.import_key(publicKeyBytes)# key = RSA.import_key(key_encoded)# 4、对原密码加密encryptPassword = rsa.encrypt(data.encode(), key)return b2str(encryptPassword)def login_info(phone):headers = {'domain': 'ketang.aboatedu.com','User-Agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5 Build/MMB29X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.117 Mobile       Safari/537.36'}Password = ''.join(random.sample(string.digits + string.ascii_letters, 9))# print(Password)screen = random.choice(["1080x1920", "1776x1080", "720x1280", "640x1136", "1080x2040"])model = random.choice(['Nexus 5', 'Nexus 6', 'Nexus 6p', 'Nexus 7', 'Nexus 10', 'Xiaomi', 'HUAWEI', 'HTC 802t', 'HTC M8St','vivo X7', 'vivo X9','vivo X9i', 'vivo X9L', 'OPPO A57', 'vivo Y66', 'Galaxy A3'])schoolId = random.randint(1, 20000)# companyId = random.randint(1, 20000)companyId = 14972uuid_str = ''.join(random.sample(string.digits + string.ascii_letters, 23))version = random.choice(['5.1.1', '5.1', '6.0.1', '6.0', '7.1.2', '8.0', '9.0', '7.0.1', '7.0'])url = 'https://sdk.yunduoketang.com/appApi/company/getUserToken'data = {"v": "2.4.3","os": "2","osv": version,"model": model,"screen": screen,"density": "3.0","uuid": uuid_str,"domain": "ketang.aboatedu.com","optType": "android", "appType": 1,"tSchoolId": schoolId,"companyId": companyId}res = requests.post(url, headers=headers, json=data, verify=False, proxies=proxies)token = res.json()['data']# print(res.json())url = 'https://sdk.yunduoketang.com/appApi/user/login'data = {"v": "2.4.3","os": "2","osv": version,"model": model,"screen": screen,"density": "3.0","uuid": uuid_str,"domain": "ketang.aboatedu.com","optType": "android","appType": 1,"tSchoolId": schoolId,"token": token,"schoolId": schoolId,"mobile": phone,"encryption": 1,"password": encryptPassword(Password)}response = requests.post(url, headers=headers, json=data, verify=False, proxies=proxies)msg = response.json()
if __name__ == '__main__':print(login_info('13776788171'))

app下载地址
链接:https://pan.baidu.com/s/1au0v2Vxfd8Qc6ngdV7hFrg
提取码:lq4y

这篇关于pytho之app逆向破解password RSA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423647

相关文章

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

用Pytho解决分类问题_DBSCAN聚类算法模板

一:DBSCAN聚类算法的介绍 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,DBSCAN算法的核心思想是将具有足够高密度的区域划分为簇,并能够在具有噪声的空间数据库中发现任意形状的簇。 DBSCAN算法的主要特点包括: 1. 基于密度的聚类:DBSCAN算法通过识别被低密

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

ConstraintLayout布局里的一个属性app:layout_constraintDimensionRatio

ConstraintLayout 这是一个约束布局,可以尽可能的减少布局的嵌套。有一个属性特别好用,可以用来动态限制宽或者高app:layout_constraintDimensionRatio 关于app:layout_constraintDimensionRatio参数 app:layout_constraintDimensionRatio=“h,1:1” 表示高度height是动态变化

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出

App Store最低版本要求汇总

1,自此日期起: 2024 年 4 月 29 日 自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。将 iOS App 提交至 App Store - Apple Developer 2,最低XCode版本 Xcod

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

鸿蒙自动化发布测试版本app

创建API客户端 API客户端是AppGallery Connect用于管理用户访问AppGallery Connect API的身份凭据,您可以给不同角色创建不同的API客户端,使不同角色可以访问对应权限的AppGallery Connect API。在访问某个API前,必须创建有权访问该API的API客户端。 1.登录AppGallery Connect网站,选择“用户与访问”。选择左侧

【MyBatis学习14】MyBatis的逆向工程生成代码

1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。 2. 使用逆向工程 使用mybatis的逆向工程,需要导入逆向