解决Shadowsocks-4.0.8无法加载libcrypto-1_1.dll

升级win下的纸飞机版本到4.08后,飞机变得相当不稳定,查log发现是找不到libcrypto-1_1.dll链接库的问题,再看看项目release的介绍是添加了OpenSSL 1.1.0g实现硬件加速

[2018-02-21 08:23:13] System.DllNotFoundException: 无法加载 DLL“libcrypto-1_1.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
在 Shadowsocks.Encryption.OpenSSL.EVP_get_cipherbyname(Byte[] name)
在 Shadowsocks.Encryption.OpenSSL.GetCipherInfo(String cipherName)
在 Shadowsocks.Encryption.Stream.StreamOpenSSLEncryptor.initCipher(Byte[] iv, Boolean isEncrypt)
在 Shadowsocks.Encryption.Stream.StreamEncryptor.Encrypt(Byte[] buf, Int32 length, Byte[] outbuf, Int32& outlength)
在 Shadowsocks.Controller.TCPHandler.SendToServer(Int32 length, AsyncSession session)
在 Shadowsocks.Controller.TCPHandler.StartPipe(AsyncSession session)

根据issue1679提供的方法,4.08之前的版本都没有实现win下的AES硬件加速,这次通过libcrypto-1_1.dll实现了硬解,不过libcrypto-1_1.dll依赖vc库的支持,再由于纸飞机项目依旧在使用x86target,所以需要安装 Microsoft Visual C++ 2015 Redistributable Update 3 所提供的 vc_redist.x86.exe

附上纸飞机运行的依赖库链接

感谢纸飞机项目组成员的辛勤维护!

分享到: