java android客户端SSL通信 遇到的几个报错及处理

Android做客户端,PC做服务器端,SSLSocket通信,双向认证 最近上Trustworthy Computing这课的,终于结课了。最后的Final Project熬了几天夜总算做出来了。 题目是Android Based Medical Record Security, 老师就给了个题目,实现方法任意。 然后就网上各种查资料,其实关于SSL双向验证的还挺多,大家可以搜一下,基本原理就不赘述了,讲个思路。 做网络编程的我们都应该学过Socket通 阅读详情
tips:注意一定要在AndroidManifest.xml里面加上权限:
<uses-permission android:name="android.permission.INTERNET"/>

异常一:java.security.NoSuchProviderException:no such provider:BC

说明:keytool 错误,没有通过可信的组织签名

解决方法(两种):

1、修改JDK的配置文件:%JDK_HOME%\jre\lib\security\java.security,加上security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

2、在代码里直接添加Java代码:

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); 
加上这句如果报org.bouncycastle不能解析的错误,则去网站http://www.bouncycastle.org/latest_releases.html下载一个最新的jar包放入工程。

异常二:Address already in use: JVM_Bind

说明:这是端口冲突导致。

解决方法(两种):

1、换端口。

2、把占用的端口释放,可以用netstat-ano命令查看哪些端口被占用了。

在调试过程中,我最开始每次修改程序重新运行测试的时候都是原来端口被占用,因为我上一次运行了没有关掉进程直接F5了,这样就会这样报错,可以通过ctrl+c或者点击console窗口的小红方块关闭进程。这个弱智的有关eclipse的操作问题弄得我好囧。

异常三:java.io.StreamCorruptedException: invalid type code: AC

说明:反序列化错误。引起该问题有两种可能的原因:

1、在同一线程里面new了两个ObjectInputStream,因为ObjectOutputStream 流只可以对应,不可以生成多次。所以比如把这样的代码

ObjectInputStream inOfClient = new ObjectInputStream(client.getInputStream());

放在whlie里面就会报这样的错误。

解决方法:不要new多个ObjectInputStream,比如new的时候不要放在循环语句里面。别的InputStream没有此限制。

2、我一开始就排除了第一种情况,但是还出现这个错误,让我觉得很郁闷,再查原因,发现ObjectOutputStream是不能直接在一个文件后追加东西的,直                                     接追加的话,每次追加时都会多写一个header进去,导致在反序列化的时候出现标题所说的异常。

解决方法:在写流的时候区分一下:第一次写的时候写header,后面再写的时候不写header。所以自己定义一个MyObjectOutputStream(不写header)用于第二次及以后写的时候调用,第一次写还是调用ObjectOutputStream。

MyObjectOutputStream.java的内容为:

import java.io.*;
class MyObjectOutputStream extends ObjectOutputStream {
 public MyObjectOutputStream() throws IOException {
  super();
 }
 public MyObjectOutputStream(OutputStream out) throws IOException {
  super(out);
 }
 @Override
 protected void writeStreamHeader() throws IOException {
  return;
 }
}


5分钟搞定安卓抓包:Xposed+JustTrustMe绕过SSL证书绑定 在移动应用安全测试和网络协议分析中,HTTPS流量抓包是基础技能。HTTPS通过SSL/TLS协议对通信进行加密,保障了数据传输的机密性和完整性。其核心原理是基于数字证书的信任链验证,确保客户端与预期服务器通信。然而,SSL Pinning(证书绑定)技术增强了安全性,它使应用只信任预置的特定证书,导致常规代理工具的中间人攻击失效。为解决这一工程难题,Xposed框架提供了系统级的运行时Hook能力,而JustTrustMe模块则针对性Hook了TrustManager等证书验证API,使其无条件信任所有证 阅读详情

相关推荐

使用Frida动态Hook技术快速绕过Android应用SSL Pinning证书绑定

SSL/TLS加密是保障网络通信安全的基础技术,通过数字证书实现身份认证与数据加密。其核心原理基于非对称加密与证书链验证机制,确保客户端与服务端之间的通信不被窃听或篡改。在移动应用安全领域,SSL Pinning(证书绑定)技术通过将服务器证书指纹硬编码到应用中,有效防御中间人攻击,提升应用安全性。然而,在安全测试与逆向工程场景中,这一机制会阻碍对应用网络流量的合法分析。Frida作为动态插桩框架,通过运行时注入JavaScript代码,能够Hook关键证书验证函数(如X509TrustManager.ch

weixin_33646989的博客 371

ERROR: SSL peer shut down incorrectly错误解决(Android Studio)

Android Studio在首次安装创建项目的时候,出现“ERROR: SSL peer shut down incorrectly”错误,这是因为android studio在下载“gradle-4.10.1-all.zip”文件的时候出现的错误,错误原因是studio工具不支持https请求,如下这类型的网址: https\://services.gradle.org/distribut...

czc514的博客 2万+

突破SSL Pinning:从HTTPS原理到Android/iOS抓包实战

HTTPS通过SSL/TLS协议为网络通信提供加密与身份认证,其核心在于证书链验证机制,确保数据传输的机密性与完整性。中间人攻击原理揭示了传统代理工具在解密流量时面临的挑战,而SSL Pinning作为一种客户端安全加固技术,通过将服务器证书或公钥哈希预置在应用中,有效抵御了此类攻击,提升了移动应用的安全性。对于开发调试、安全测试与性能分析等工程实践场景,理解并掌握绕过SSL Pinning的技术具有重要价值。本文聚焦于Charles抓包工具,结合Frida动态注入等热词,系统阐述在Android与iOS平

weixin_30516243的博客 351

java.security.NoSuchProviderException: no such provider: BC 的问题解决

在做Android通过https访问tomcat时,需要做keystore证书,在使用命令:  keytool -import -alias tomcat -file server.cer -keystore server_trust.keystore -storepass 1

黄绍添的个人博客 1万+

Android OkHttp SSL证书验证全解析:从原理到安全实践

SSL/TLS证书验证是HTTPS安全通信的基石,它通过数字证书机制确保客户端与服务器之间的身份可信与数据传输安全。其核心原理涉及非对称加密、证书链验证和信任锚点等概念,在移动应用开发中直接关系到用户数据隐私和防中间人攻击能力。OkHttp作为Android主流网络库,其默认的证书验证机制基于系统信任库,但在开发测试、企业内网或特定集成场景下,开发者常需处理自签名证书、证书链不完整等验证异常。本文聚焦OkHttp的TrustManager机制与HostnameVerifier等关键组件,提供分场景的安全解决

weixin_30608503的博客 382

安卓SSL Pinning绕过实战:Magisk模块化HTTPS抓包技术

SSL Pinning(证书固定)是Android应用层关键的TLS信任机制,其原理并非增强加密强度,而是建立证书或公钥哈希的‘信任白名单’,用以防范中间人攻击。理解其在OkHttp、Conscrypt及JNI SSL库中的不同实现路径,是开展合法安全测试与HTTPS流量分析的基础。该技术广泛应用于移动App渗透测试、网络质量保障与HTTPS健壮性自检等工程场景。本文聚焦于基于Magisk模块的标准化绕过方案,不依赖重打包或Xposed,覆盖Android 10–14主流版本,兼顾Java层与Native层

weixin_34254464的博客 558

AndroidAES加密适配9.0

最近在做项目加密,用的是AES,有一个很麻烦的坑,之前加密用的md5和des没有说适配7.0,甚至于Android9.0都不支持SHA1PRNG算法和Crypto,同样的代码在main()方法跑出来的结果和后台的加解密方式一样,这里加密的字段和方法都是一样的,但是跑9.0真机就报错抛异常. 先看抛出的异常信息如下: ...

u012556114的博客 2285

Magisk Zygisk绕过SSL Pinning实现安卓HTTPS抓包实战

SSL Pinning(证书固定)是移动App保障HTTPS通信安全的核心机制,其原理是将可信证书或公钥哈希硬编码于客户端,强制校验服务端身份,从而抵御中间人攻击。该技术的价值在于提升传输层身份验证强度,广泛应用于金融、政务、电商等高敏感场景。但对安全测试与开发自测而言,需在可控环境下解密并分析真实TLS流量。本文聚焦Android平台,基于Magisk Zygisk框架,深入Native层Hook libssl.so、libconscrypt.so及BoringSSL符号,提供可落地的SSL Pinnin

weixin_30496999的博客 626

Cause: invalid type code: 3C

今天编译一份安卓项目,出现这个问题:Cause: invalid type code: 3C ,点开 build 栏目,查看详情 发现是gradle版本和插件问题,要么gradle插件版本低了不符合 当前gradle版本,这个在build里面有详细提示 ,要么是你的gradle项目太超前或者落后,与整个项目代码有冲突,这个时候需要改gradle插件和gradle版本,直到符合项目运行为止 ...

九区大虾的博客 1089

Android企业级App HTTPS与WebView安全通信实战指南

HTTPS作为保障网络通信安全的核心协议,通过TLS/SSL握手建立加密通道,确保数据传输的机密性、完整性与身份认证。其技术价值在于有效抵御中间人攻击与数据窃听,是构建可信应用的基石。在企业级移动应用开发中,Android WebView作为加载H5页面的核心组件,其与HTTPS的协同工作尤为关键,直接影响到混合应用的安全性与稳定性。实际应用场景中,开发者常需处理SSL证书校验、混合内容加载及网络错误(如android webview 412错误)等问题。本文聚焦于通过Network Security Co

weixin_33722405的博客 396

使用Frida绕过Android高版本SSL Pinning实现闲鱼App抓包

HTTPS协议通过SSL/TLS加密保障网络通信安全,其核心原理基于证书链验证机制,确保客户端与服务端之间的数据传输不被窃听或篡改。在移动应用开发中,证书绑定(SSL Pinning)是一项重要的安全加固技术,它通过将服务器证书或公钥硬编码到应用中,防止中间人攻击。这项技术对于保护金融、社交等高敏感场景的用户数据具有关键价值。然而,在安全研究、协议分析和故障排查等场景下,安全研究人员常需解密HTTPS流量进行分析。针对Android 7.0及以上版本系统强化的网络安全配置,传统代理抓包方法常因证书不被信任而

dengyulong的专栏 159

Android P设备SSL证书报错

最近在做高德地图SDK开发,遇到一个SSL证书报错的问题,虽然该问题出现概率极低,还是记录一下,以防止以后遇到类似的问题。 报错信息如下: System.err: javax.net.ssl.SSLHandshakeException: Chain validation failed System.err: at com.android.org.conscrypt.ConscryptFil...

Sunxiaolin2016的博客 5136

Java中的NoSuchProviderException异常处理

NoSuchProviderException是Java中的一个异常类,用于指示请求的服务提供者不存在。当尝试使用不存在的提供者时,就会抛出NoSuchProviderException异常。在上面的示例中,我们尝试使用Security类的getProvider方法获取一个不存在的提供者。通过上述处理方式,可以有效地处理Java中的NoSuchProviderException异常。根据实际需求,可以在异常处理逻辑中添加其他的处理方式,以提高程序的健壮性和用户体验。如有更多疑问,请随时提问。

CdiBug的博客 467

安卓模拟器HTTPS抓包实战:Burp Suite配置与SSL Pinning绕过指南

HTTPS(超文本传输安全协议)是保障网络通信安全的核心技术,通过TLS/SSL加密层对传输数据进行加密和身份验证。其工作原理基于非对称加密和数字证书体系,客户端与服务器通过握手协议协商密钥,建立安全信道。这项技术的核心价值在于防止数据在传输过程中被窃听或篡改,广泛应用于移动应用、Web服务等敏感数据传输场景。在移动安全测试和逆向工程中,分析HTTPS流量是理解应用行为、发现安全漏洞的关键步骤。通过配置Burp Suite代理和安装CA证书,可以解密并查看HTTPS通信内容,但需应对SSL Pinning等

weixin_30471561的博客 470

(project generation have a problem)STM32CubeMX生成工程一直报错项目生成有问题[玄学三步解]

解决办法 第一步,检查自己是不是真的配置的不对,JAVA安装没,pack路径设置的对不对,这里有一位前辈的博文写的非常好,附加链接https://blog.csdn.net/ybhuangfugui/article/details/52225736#commentBox 第二步,如果按照前辈的博文设置的都一模一样,还是不对,想我下图这样。 那你来对地方了 方法很简单,你把你生成工程文件的路径彻底的...

展桑博客-BenjieBlog 2922

FPGA实战:AXI BRAM Controller配置避坑指南(Vivado 2023版)

本文详细解析了Vivado 2023环境下AXI BRAM Controller的配置技巧与避坑指南,涵盖AXI4协议转换、BRAM地址空间配置、信号异常处理及突发传输优化等核心内容。针对写时序冲突、跨时钟域处理等常见问题提供实用解决方案,帮助开发者提升FPGA系统性能与稳定性。

q1w3e5r7t9y的博客 340

React Native 请求与Https中SSL认证

React Native 请求如何避开Https中SSL认证

m0_61502537的博客 2244

保姆级教程:在Windows上用VS2019和OpenCV4.6搞定海康MV-EB435i RGBD相机图像采集

本文提供了一份详细的教程,指导如何在Windows环境下使用VS2019和OpenCV4.6配置海康MV-EB435i RGBD相机进行图像采集。从开发环境准备、SDK部署到代码移植和优化,涵盖了深度图与RGB图同步采集的实战技巧,帮助开发者快速上手工业级RGBD相机的应用开发。

weixin_28675557的博客 466

Android SSL Pinning绕过原理与Frida实战指南

SSL Pinning(证书锁定)是移动应用保障HTTPS通信安全的核心机制,其本质并非加密增强,而是将信任锚点从系统CA证书库收缩至App内置的证书或公钥指纹,从而抵御中间人攻击。该机制基于TLS握手后的二次校验逻辑,常见于OkHttp CertificatePinner、自定义X509TrustManager及NATIVE层实现。技术价值在于提升金融、政务类App的防劫持能力,但同时也给合规安全测试带来挑战。典型应用场景包括渗透测试中的流量捕获、接口分析与业务逻辑验证。本文聚焦Java层运行时干预,结合

weixin_30482181的博客 495

告别C盘空间焦虑!Miniforge环境路径精准配置全攻略

本文深入解析Miniforge虚拟环境默认占用C盘空间的根本原因,即未正确配置`.condarc`文件中的`envs_dirs`路径优先级。通过详细的诊断步骤与配置命令,指导用户将环境路径精准迁移至指定磁盘(如D盘),并分享禁用自动激活、使用`--prefix`参数等高阶技巧,帮助开发者彻底告别C盘空间焦虑,实现虚拟环境的整洁与可控管理。

weixin_28831399的博客 238

使用kmplot在线进行生存分析

欢迎关注”生信修炼手册”!kmplot是一个生存分析的在线工具,最初是设计用来对肝癌中的miRNA进行生存分析,对应的文章发表在scientific reports上,链接如下https...

庐州月光的博客 1万+

使用Frida绕过Android SSL Pinning:从原理到实战抓包分析

SSL/TLS证书验证是保障HTTPS通信安全的核心机制,它通过数字证书体系确保客户端与服务器之间的连接不被窃听或篡改。其原理基于非对称加密和证书链信任模型,客户端会验证服务器证书是否由受信任的根证书颁发机构签发。在移动安全领域,SSL Pinning(证书绑定)是一种强化验证的技术,它将应用信任的证书指纹预先内置,以抵御中间人攻击,提升应用层的安全防护。这项技术对于金融、电商等高安全要求场景尤为重要。然而,在安全研究、漏洞挖掘和协议分析等正当场景下,安全工程师需要分析应用网络通信,此时SSL Pinnin

weixin_29326909的博客 348

零基础入门Simulink——基于Simulink的MIMO-OFDM系统仿真建模示例

MIMO概述MIMO技术利用多个天线进行信号发送和接收,通过空间复用来提高数据传输速率,或通过空间分集来增强信号的可靠性。OFDM概述OFDM是一种将高速率数据流分成多个低速数据流并行传输的技术,每个子载波都采用调制方式(如BPSK、QPSK),并通过IFFT/FFT变换实现串并转换。MIMO-OFDM优势结合了MIMO的空间分集增益与OFDM对抗多径效应的能力,适用于宽带无线通信系统。提供了更高的数据速率和更好的频谱效率,是现代无线通信标准(如4G LTE、5G NR等)的核心技术之一。

amy_mhd的博客 888

Frida实战:绕过Instagram SSL Pinning实现HTTPS抓包分析

SSL/TLS证书验证是保障HTTPS通信安全的核心机制,其原理是通过验证服务器证书的合法性来建立加密通道。在移动应用安全领域,SSL Pinning(证书绑定)技术通过将特定证书或公钥内置到应用中,增强了对中间人攻击的防护,但也给安全研究和流量分析带来了挑战。Frida作为动态插桩框架,能够在应用运行时注入代码并挂钩关键函数,为绕过此类防护提供了技术可能。通过Hook Java层的X509TrustManager或OkHttp的CertificatePinner等验证接口,可以修改或跳过证书检查逻辑,从而

weixin_34203832的博客 434

用 ABAP OAuth 2.0 Client 直连 SAP SuccessFactors:从体系到落地的一条龙实践指南

ABAP SMI允许在后端对外部服务的OData端点进行定义与自定义化配置,并以受信连接的方式暴露给ABAP应用调用。它并不替代OAuth,而是扮演端点与自定义参数的集中化定义者,最终认证依旧由完成。对于需要在ABAP后端发起临时或补充型OData调用的场景,SMI是一个轻量而清晰的集成入口。scope的客户端应用已经完成注册,API DomainCompany ID、证书或密钥都已归档。ABAP的Profile与Client已建立并绑定,OA2C_GRANT可见绿色访问状态。SMI。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 286

NTC热敏电阻选型快速指南

NTC(Negative Temperature Coefficient Thermistor)负温度系数热敏电阻器,是由锰Mn,镍Ni,铜Cu,一氧化碳Co等烧结而成的氧化物。其电阻值随温度的升高而减小,即具有复温度系数,故被称为负温度系数热敏电阻。本文对热敏电阻的应用场景,结构特点和选型参数进行总结。

fydar的博客 1293
上一篇: 单PC Windows环境MySQL主从master-slave模式配置与测试
下一篇: apache-hadoop-1.2.1、hbase、hive、mahout、nutch、solr安装教程
luckymelina
博客等级 码龄15年 53粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值