【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密

2024-05-07 14:52

本文主要是介绍【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.下载 app

2.frida 调试

3.抓包查看接口

4.分析加密数据

5.易语言编写代码


 1 .开始下载

下载好发现有越狱检测,检测点为:

-[AppDelegate isJailBreak];

于是编写插件xm代码 :

%hook AppDelegate- (void)isJailBreak{NSLog(@"AppDelegate  isJailBreak  method : %@", self);
}
%end

编译代码放入:

/Library/MobileSubstrate/DynamicLibraries

 从新打开 app,即可正常打开了

2.开始frida 调试

经过反复分析,发现关键点为:

GMSm2Utilss
GMSm3Utilss
GMSm4Utilss

直接使用通配符 hook

"*[GMSm* *]"

3.抓包查看接口

例如:发送请求数据为

{"data":"D7E31B425B6E92CDCC6A10D17ABED1611E7E08353F3D07485CB899F7C15F79910040184F85F61D7DDD4486EAD694F81BE3780BC92064CD540A42BAA079","skey":"04BCE3480EFA72C7E7DD02B6B38F5D8664D7D66237F3192C1CF2C4D386787A0C605A990FEFE897B740D8638F8C27B6526A71023FC4D798C27E34A937B43F54F1BAD3A890B1F7B7E4C3D07369E201625A471CB223877A2F74DCA47C779927B6FC98290779C4723BB78226594A1E110B1E55E24200F6CC8590D5A22480632C289A01","timestamp":"1715060263637"}

 

{"

data":"D7E31B425B6E92CDCC6A10D17ABED1611E7E08353F3D07485CB899F7C15F79910040184F85F61D7DDD4486EAD694F81BE3780BC92064CD540A42BAA074F7BB568A708367A61FDA62F655F33300E67B3080A",

"sign":"BDB75DCB4E7A1451689C5F0A431E711D71E1B95AEAAB95C129CD881001F14029","

skey":"04BCE3480EFA72C7E7DD02B6B38F5D8664D7D66237F3192C1CF2C4D386787A0C605A990FEFE897B740D8638F8C27B6526A71023FC4D798C27E34A937B43F54F1BAD3A890B1F7B7E4C3D07369E201625A471CB223877A2F74DCA47C779927B6FC98290779C4723BB78226594A1E110B1E55E24200F6CC8590D5A22480632C289A01",

"timestamp":"1715060263637

"}

4.分析加密数据

字段有

data,sign,skey,timestamp

timestamp为:

当前时间戳

skey 的算法为:

sm2 加密 随机32位字符串,结果为skey

data 的算法为:

sm4 加密  发送的请问数据,密钥为: 上面随机32位字符串

sign 的算法为:

sm3 加密 (skey  +  data  +  timestamp)

5.易语言编写代码

计算加密:

 

 运行结果:

这篇关于【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo