ICSharpCode.SharpZipLib.Zip 解析时报错System.NotSupportedException: No data is available for encoding 936

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: ​分析原因利用ICSharpCode.SharpZipLib.Zip进行APK解析时,因为APK内编译的名称为中文,查询微软开发文档936为gb2312中文编码[微软开发文档地址](https://docs.microsoft.com/zh-cn/windows/win32/intl/code-page-identifiers "微软开发文档地址")```csharp// 错误代码using (ZipInputStream zip = new ZipInputStream(File.OpenRead(path))) { using (var filestream = new


分析原因
利用ICSharpCode.SharpZipLib.Zip进行APK解析时,因为APK内编译的名称为中文,查询微软开发文档936为gb2312中文编码
请在此添加图片描述

微软开发文档地址

// 错误代码
using (ZipInputStream zip = new ZipInputStream(File.OpenRead(path))) 
{
   
   
    using (var filestream = new FileStream(path, FileMode.Open, FileAccess.Read)) 
    {
   
   

        // 出现错误部分
        ZipFile zipfile = new ZipFile(filestream);
        foreach (ZipEntry entry in zipfile) 
        {
   
   
            if (entry != null) 
            {
   
   
                if (entry.Name.ToLower() == "androidmanifest.xml") 
                {
   
   
                    manifestData = new byte[50 * 1024];
                    Stream strm = zipfile.GetInputStream(entry);
                    strm.Read(manifestData, 0, manifestData.Length);
                }
                if (entry.Name.ToLower() == "resources.arsc") 
                {
   
   
                    Stream strm = zipfile.GetInputStream(entry);
                    using (BinaryReader s = new BinaryReader(strm)) 
                    {
   
   
                        resourcesData = s.ReadBytes((int)entry.Size);
                    }
                }
            }
        }
    }
}
// 解决方法
using (ZipInputStream zip = new ZipInputStream(File.OpenRead(path))) 
{
   
   
    using (var filestream = new FileStream(path, FileMode.Open, FileAccess.Read)) 
    {
   
   
        // 在.Net Core中默认System.Text中不支持CodePagesEncodingProvider.Instance
        // 添加下方这行代码允许访问.Net Framework平台上不支持的编码提供程序
     System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
        ZipFile zipfile = new ZipFile(filestream);
        foreach (ZipEntry entry in zipfile) 
        {
   
   
            if (entry != null) 
            {
   
   
                if (entry.Name.ToLower() == "androidmanifest.xml") 
                {
   
   
                    manifestData = new byte[50 * 1024];
                    Stream strm = zipfile.GetInputStream(entry);
                    strm.Read(manifestData, 0, manifestData.Length);
                }
                if (entry.Name.ToLower() == "resources.arsc") 
                {
   
   
                    Stream strm = zipfile.GetInputStream(entry);
                    using (BinaryReader s = new BinaryReader(strm)) 
                    {
   
   
                        resourcesData = s.ReadBytes((int)entry.Size);
                    }
                }
            }
        }
    }
}

以上就是ICSharpCode.SharpZipLib.Zip 解析时报错System.NotSupportedException: No data is availa的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

目录
相关文章
|
3月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
281 2
|
5月前
|
JSON 文字识别 数据格式
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
|
大数据 数据挖掘 BI
几款主流的App统计工具解析:友盟、Talking Data、openinstall
本文简要分析友盟、Talking Data、openinstall的优劣势以及特点,希望能给入门人员一点帮助
5107 0
|
7月前
|
存储 Java 数据库连接
Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析
Spring Boot 的嵌入式服务器功能是一项方便而强大的功能,它允许你在应用程序中直接运行 Web 服务器,无需将其部署到单独的独立 Web 服务器中。这使得开发、测试和部署 Web 应用程序变得容易,而且它还是轻量级的、易于启动和停止的,易于配置。
116 0
|
SQL 存储 缓存
深入解析 RDS Serverless 之 Data API
RDS Serverless Data API 已发布
深入解析 RDS Serverless 之 Data API
|
Web App开发 移动开发 JavaScript
某神奇App data加密算法解析(一)
某神奇App data加密算法解析(一)
某神奇App data加密算法解析(一)
Google Earth Engine ——数据全解析专辑(SRTM Digital Elevation Data Version 4)数字高程数据集
Google Earth Engine ——数据全解析专辑(SRTM Digital Elevation Data Version 4)数字高程数据集
393 0
Google Earth Engine ——数据全解析专辑(SRTM Digital Elevation Data Version 4)数字高程数据集
QR Data Reconstructor-kali下视频和二维码解析
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396736 ...
978 0
|
网络协议 Shell Linux
Bash data exfiltration through DNS (using bash builtin functions)
https://forsec.nl/2015/01/bash-data-exfiltration-through-dns-using-bash-builtin-functions/ Af...
1019 0

推荐镜像

更多