记 Kylin 麒麟系统安全中心拦截导致 dotnet sdk 找不到 OpenSsl 构建失败

news/2024/10/30 7:11:22/文章来源:https://www.cnblogs.com/lindexi/p/18514833

错误信息如下

System.TypeInitializationException: The type initializer for 'Crypto' threw an exception.---> System.DllNotFoundException: Unable to load shared library 'libSystem.Security.Cryptography.Native.OpenSsl' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
/home/lindexi/wzc/dotnet/shared/Microsoft.NETCore.App/8.0.7/libSystem.Security.Cryptography.Native.OpenSsl.so: failed to map segment from shared object
libSystem.Security.Cryptography.Native.OpenSsl.so: cannot open shared object file: No such file or directory
/home/lindexi/wzc/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSystem.Security.Cryptography.Native.OpenSsl.so: cannot open shared object file: No such file or directory
/home/lindexi/wzc/dotnet/shared/Microsoft.NETCore.App/8.0.7/libSystem.Security.Cryptography.Native.OpenSsl: cannot open shared object file: No such file or directory
/home/lindexi/wzc/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSystem.Security.Cryptography.Native.OpenSsl: cannot open shared object file: No such file or directoryat Interop.Crypto..cctor()--- End of inner exception stack trace ---at Interop.Crypto.HashAlgorithmToEvp(String hashAlgorithmId)at System.Security.Cryptography.HashProviderDispenser.OneShotHashProvider.HashData(String hashAlgorithmId, ReadOnlySpan`1 source, Span`1 destination)at System.Security.Cryptography.SHA256.TryHashData(ReadOnlySpan`1 source, Span`1 destination, Int32& bytesWritten)at System.Security.Cryptography.SHA256.HashData(ReadOnlySpan`1 source, Span`1 destination)at System.Security.Cryptography.SHA256.HashData(ReadOnlySpan`1 source)at System.Security.Cryptography.SHA256.HashData(Byte[] source)at Microsoft.DotNet.Cli.Utils.Sha256Hasher.Hash(String text)at Microsoft.DotNet.Cli.Utils.Sha256Hasher.HashWithNormalizedCasing(String text)at Microsoft.DotNet.Cli.Utils.ApplicationInsightsEntryFormat.<>c__DisplayClass10_0.<WithAppliedToPropertiesValue>b__1(KeyValuePair`2 p)at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)at Microsoft.DotNet.Cli.Utils.ApplicationInsightsEntryFormat.WithAppliedToPropertiesValue(Func`2 func)at Microsoft.DotNet.Cli.Telemetry.TelemetryFilter.<Filter>b__3_0(ApplicationInsightsEntryFormat r)at System.Linq.Enumerable.SelectListIterator`2.Fill(ReadOnlySpan`1 source, Span`1 destination, Func`2 func)at System.Linq.Enumerable.SelectListIterator`2.ToList()at Microsoft.DotNet.Cli.Telemetry.TelemetryFilter.Filter(Object objectToFilter)at Microsoft.DotNet.Cli.Utils.TelemetryEventEntry.SendFiltered(Object o)at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient)at Microsoft.DotNet.Cli.Program.Main(String[] args)

尝试设置 export LD_DEBUG=all 命令寻找依赖,却没有看到有用的信息,能看到寻找信息如下

binding file /lib/loongarch64-linux-gnu/libssl.so.1.1 [0] to /lib/loongarch64-linux-gnu/libcrypto.so.1.1 [0]: normal symbol `UINT32_it' [OPENSSL_1_1_0f]

且能够在机器上找到此文件

/lib/loongarch64-linux-gnu$ ls | grep libssl
libssl3.so
libssl.so.1.1

尝试使用 LD_LIBRARY_PATH 环境变量设置寻找路径,依然没有帮助,依然提示上述错误

尝试重新去龙芯官方下载 dotnet sdk 安装,也没有解决问题,下载地址: http://ftp.loongnix.cn/dotnet/8.0.7/8.0.7-1/deb/dotnet-sdk-8.0_8.0.107-1_loongarch64.deb

我甚至都开始怀疑是龙芯新旧世界的问题了,因为龙芯提供的 dotnet 是旧世界的,我跑的麒麟系统也是旧世界的。通过安同的文档可知,只需判断 /lib64 路径下是否只有 ld.so.1 文件即可知道是否旧世界的系统

/lib64$ ls
ld.so.1

再使用 file 命令查看 dotnet 入口程序文件

file dotnet
dotnet: ELF 64-bit LSB shared object, LoongArch-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld.so.1, for GNU/Linux 4.15.0, BuildID[sha1]=b1631460420e1fb663d140cc85a9b39b7783f7f3, stripped

通过以上命令的 interpreter /lib64/ld.so.1 可以知道龙芯提供的 dotnet sdk 也是旧世界的。新世界的 dotnet 是在龙芯社区组织里面的,详细请看 https://github.com/loongson-community/dotnet-unofficial-build

以上这些推测都不正确,我后面在调试别的问题的时候,发现了麒麟系统的安全中心才发现了核心问题

核心原因是我是使用 ssh 远程过去的,麒麟系统的安全中心将我的 dotnet sdk 运行给拦截了,但是在 SSH 里面啥都没有提示,啥都没有看见

解决方法就是在实体机器上,插入显示器和键盘鼠标,再敲一次 dotnet build 命令,接着将弹出的安全中心的未授权程序都点允许

点击那会我忘记截图了,下图可见是在麒麟系统的通知栏上的内容

点击允许之后,再次在远程的 ssh 里面执行 dotnet build 就都能通过了

如此证明龙芯提供的 dotnet sdk 是没有问题的。只是麒麟系统的安全中心在逗我

参考文档:

  • Unable to load shared library 'libFabricCommon.so' or one of its dependencies. · Issue #1203 · microsoft/service-fabric-issues
  • https://github.com/loongson-community/dotnet-unofficial-build
  • 新旧世界
  • http://ftp.loongnix.cn/dotnet/8.0.7/8.0.7-1/deb/dotnet-sdk-8.0_8.0.107-1_loongarch64.deb
  • 我需要帮助,关于gcc的 - LA UOSC
  • The program cannot be started on Linux , Loongson, Arch · Issue #7747 · AvaloniaUI/Avalonia
  • https://github.com/shushanhf/runtime
  • Add LoongArch64 architecture port · Issue #59561 · dotnet/runtime
  • https://nuget.loongnix.cn/packages/Microsoft.NETCore.App.Runtime.linux-loongarch64
  • LoongArch & Avalonia
  • 常见问题(FAQ) · 文档
  • 在LoongArch Loongnix开发C#的问题 - LA UOSC
  • The unofficial yet comprehensive FAQ for LoongArch (last updated 2022-11-23) write(2)
  • [LoongArch64] A plan for amending the LoongArch64‘s port · Issue #69705 · dotnet/runtime

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zlibrary镜像网址及官网客户端app合集(持续更新)

Zlibrary镜像网址及官网客户端app合集(持续更新) Zlibrary数字图书馆介绍Zlibrary(简称 Z-lib)是一个影子图书馆,收录了超 1045 万本书籍和 8483 万篇文章,Zlibrary用户可以通过网络在该平台上下载所需的书籍和文章等资源,对于有大量文献资料需求的人来说,Zlibrary提供…

数据采集与融合技术实践作业3

102202143 梁锦盛 1.中国气象网信息爬取 爬取这个网站中的所有图片,控制总页数(学号尾数2位)、总下载的图片数量(尾数后3位)等限制爬取的措施 一、作业代码与展示 1.编写spider代码文件 import scrapy from urllib.parse import urljoin from scrapy.pipelines.images …

Bluetooth Audio Receiver使用(Win10)

Bluetooth Audio Receiver有时失灵重置设置即可

Tauri(一)——更适合 Web 开发人员的桌面应用开发解决方案 ✅

背景 我们最近决定开发一个开源的桌面端应用程序(先卖个关子,会尽快推出,敬请期待!关注一下不迷路!),并选择了 Tauri 作为技术方案。可能只有少部分人了解过它,感兴趣的朋友们可以一起深入探讨! Tauri 介绍官方网站:https://tauri.app/ (v2.0) GitHub:https://git…

Zlibrary入口电子图书馆官网最新可用镜像网址(持续更新)

Zlibrary电子图书馆介绍 Zlibrary 是全球最大电子数字图书馆之一,藏书丰富,有超 982 万册电子书及 8483 万余篇学术期刊文章。其涵盖经典文学、理工学科、人文艺术、学术论文等广泛领域,能满足各类求知者阅读学习需求。Zlibrary如一座知识宝库,为人们探索知识提供广阔资源,…

MASM的使用和DOS调试(微机原理课程作业)

1、指令 ———————————————— t:执行下一条语句。 u:查看汇编代码。 g:跳转到该内存所对应的语句 r:查看寄存器的内容(后可直接接寄存器的名称,就只查看该寄存器的内容)。 d:后接内存地址,查看该地址后面 8 * 16 个字节空间的地址(每行 16 个字节,共 8…

24山东省赛wp

24山东省赛wpmisc ezpic 在这个通道可以看到二维码扫一下能看到前半flag010里看到后半flag简单编码根据提示有,我们可以找到rot系列的rot13和rot47,尝试一下就有flag了pwn epwn 这回真是ezpwn了( 检查保护IDA找到漏洞函数gets和偏移量以及后门函数于是可以快乐的写exp了 from p…

Animal Controller文档——General

General 在General选项卡中,你会找到可以修改的最常用参数(AC)。Parameters Player如果设置为true,该Animal将是你的主角。 这将使用单例模式,并设置静态值:Animal.isPlayer.Value = true;。这样,Respawn System和CheckPoints将知道在Animal死亡时应该重生哪个主Animal(…

VUEDjango开发-1-环境搭建

一、使用pyenv,安装python,创建虚拟环境 pyenv是管理python版本的神器,官方链接:github.com/pyenv/pyenv,在macOS、Linux、Windows上均可以安装使用。 使用自动脚本一键安装 curl https://pyenv.run | bash配置SHELL环境 对于Zsh,运行如下命令,把pyenv命令安装到 ~/.zsh…

总线协议系列——USART协议初探

前言 概述 USART全名Universal Synchronous/Asynchronous Receiver/Transmitter,也即通用同步/异步串行接收/发送器。是一种异步全双工点对点总线架构,其总共需要TX传输线、RX接收线和GND共地线。如果两个USART硬件没有自主供电VCC,还需要VCC线 电路特性 USART总线采用推挽输…

Meterpreter生成被控端并进行远程控制

Meterpreter生成被控端并进行远程控制 Meterpreter简介 Meterpreter是kali中自带的用于渗透测试和漏洞利用的工具,它的本质上是一种payload, 允许使用者使用命令行执行命令的生成及执行 生成木马 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=本机的ip lport=5000…

13. 分组数据

1. 数据分组 分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算 2. 创建分组 分组是在SELECT语句的GROUP BY子句中建立的。 比如: select vend_id, count(*) as num_prods from products group by vend_id;输出如下:上面的SELECT语句指定了两个列,vend_id包含产品供…