Linux 静态链接的openssl,CA证书从何处加载?

Linux 静态链接的openssl,CA证书从何处加载?,linux,openssl,Linux,Openssl,我正在尝试修复一个旧的二进制文件(当然,源代码不可用…)现在无法连接,可能是因为它使用了过时的CA列表 但是,在strace中运行时,我没有看到二进制文件试图从/etc/ssl/certs读取我的CA CA列表是否可能已绑定到二进制文件中 非常感谢 Adam说得很清楚,既然你说源代码不可用,我想你是指一个使用OpenSSL库的自定义程序,因为名为OpenSSL的实用命令行接口程序的源代码仍然适用于上个世纪的版本(直到1.1.0才有很大变化,即使它可能应该有变化) 是的,当然。使用libssl(和

我正在尝试修复一个旧的二进制文件(当然,源代码不可用…)现在无法连接,可能是因为它使用了过时的CA列表

但是,在strace中运行时,我没有看到二进制文件试图从/etc/ssl/certs读取我的CA

CA列表是否可能已绑定到二进制文件中

非常感谢


Adam

说得很清楚,既然你说源代码不可用,我想你是指一个使用OpenSSL库的自定义程序,因为名为
OpenSSL
的实用命令行接口程序的源代码仍然适用于上个世纪的版本(直到1.1.0才有很大变化,即使它可能应该有变化)

是的,当然。使用libssl(和libcrypto)的程序可以选择是使用标准文件作为其信任库,还是使用它指定的其他(自定义)文件(通常来自配置),或者根据您的要求使用硬编码数据,或者使用来自其他源(如(我们希望是安全的!)数据库的数据,或者,如果它使用不使用证书身份验证的密码套件(匿名、PSK或SRP),甚至根本就没有信任库,这很少使用,但OpenSSL支持

您可以尝试在程序上使用
字符串
,看看它们是否足够基本,可以在PEM中嵌入证书(可能还有其他东西)——IINM这就是联想Superfish的发现方式。如果它们嵌入了二进制“DER”,那么仍然有足够的冗余,您可以找到它,但不是那么容易

使用Wireshark或类似工具查看网络流量,或者如果您有权访问服务器,请检查其日志,查看程序是否在41到49范围内发送警报,以响应服务器的第一次飞行,即服务器Hellodone之后。
这肯定表明存在证书问题。

非常感谢,遗憾的是二进制文件也被剥离了,所以我看不到有多少使用字符串的内容。我猜我是f****,看起来我唯一的出路就是用二进制补丁来修补一个被剥去的精灵垃圾箱,这显然太复杂了。。。无论如何谢谢你@AdamC.:剥离将删除符号(通常包括链接器符号和调试符号),但保留数据——尽管
字符串
仅在数据为可读形式时才会显示数据。您是否可以按照我的建议检查实际的协议行为?