2016-03-22 19 views
1

Tüm Hata şu şekildedir: "Ordinal 112, dinamik bağlantı kitaplığında bulunamadı: D: \ GNU-C-compiler \ GNUstep \ bin \ openssl.exe ""Ordinal 112, dinamik bağlantı kitaplığında bulunamadı ..."

Web'de hiçbir çözüm bulunmayan bir çözüm bulmak için etrafta arama yapıyorum. Son zamanlarda OpenSSL kullanarak şifreleme yapmaya başladım, ancak yükleme işlemi sırasında test için yazılımın birden çok farklı sürümünü yükledim ancak bu diğer sürümleri silerken, düzgün bir kaldırma prosedürü yerine klasörü sildim (openssl programı bazı dll, windows system dizinine giriyor, böylece bu çoklu dll'ler tutuldu). Bu yüzden bu ekstra dll'lerin problemin kaynağı olduğuna inanıyorum (belki) ama bunları kolayca kaldırabilmek için bir yol bulamıyorum ve bu yüzden bu soruna makul bir çözüm buluyorum.

+0

Evet, bu DLL'lerle bir sürüm uyuşmazlığı olduğu anlamına gelir. Statik olarak bağlantılı bir sürümü alabilir veya DLL'lerin doğru sürümlerini aynı dizine ekleyebilirsin? – Rup

+0

Merhaba Rup, OpenSSL programını yeniden yükleyerek çalışmayı başarabiliyordum, ancak ddl'leri Windows sistem dizininde değil de yerel bir bin klasörüne kaydetmeyi başardım. – DiscreteTomatoes

cevap

-1

Ben spekülasyon ediyorum “Sıra 112 ... dinamik bağlantı kitaplığında bulunamadı” onun SSLv23_server_method veya OpenSSL 1.0.2 den BN_MONT_CTX_free; veya OpenSSL 1.1.0'dan RSA_PSS_PARAMS_free veya SSL_CONF_CTX_clear_flags. Bazı son değişikliklere dayanarak, OpenSSL 1.0.2 ve SSLv23_server_method tahmin ediyorum.

# OpenSSL 1.1.0 
$ find $PWD -type f -iname '*.num' -exec grep " 112" {} \; 
RSA_PSS_PARAMS_free      112 1_1_0 EXIST::FUNCTION:RSA 
SSL_CONF_CTX_clear_flags    112 1_1_0 EXIST::FUNCTION: 
... 

# OpenSSL 1.0.2 
$ find $PWD -type f -iname '*.num' -exec grep " 372" {} \; 
BN_MONT_CTX_free      112 EXIST::FUNCTION: 
SSLv23_server_method     112 EXIST::FUNCTION:RSA 
... 

Sen dumpbin veya Dependency Walker kullanarak bunu doğrulamak gerekir. Ayrıca Yığın Taşması üzerinde How can I find the exported function name from ordinal (export by ordinal)?'a bakın.


sıra sayıları <openssl src>\util\mkdef.pl kullanılarak oluşturulur. Kaynak kodunu OpenSSL'nin GitHub varlığından görebilirsiniz. Here is 1.0.2 ve here is 1.1.0. İşte

dosya için kafa yorumlar şöyle:

#!/usr/local/bin/perl -w 
# 
# generate a .def file 
# 
# It does this by parsing the header files and looking for the 
# prototyped functions: it then prunes the output. 
# 
# Intermediary files are created, call libcrypto.num and libssl.num, 
# The format of these files is: 
# 
# routine-name nnnn vers info 
# 
# The "nnnn" and "vers" fields are the numeric id and version for the symbol 
# respectively. The "info" part is actually a colon-separated string of fields 
# with the following meaning: 
# 
# existence:platform:kind:algorithms 
# 
# - "existence" can be "EXIST" or "NOEXIST" depending on if the symbol is 
# found somewhere in the source, 
# - "platforms" is empty if it exists on all platforms, otherwise it contains 
# comma-separated list of the platform, just as they are if the symbol exists 
# for those platforms, or prepended with a "!" if not. This helps resolve 
# symbol name variants for platforms where the names are too long for the 
# compiler or linker, or if the systems is case insensitive and there is a 
# clash, or the symbol is implemented differently (see 
# EXPORT_VAR_AS_FUNCTION). This script assumes renaming of symbols is found 
# in the file crypto/symhacks.h. 
# The semantics for the platforms is that every item is checked against the 
# environment. For the negative items ("!FOO"), if any of them is false 
# (i.e. "FOO" is true) in the environment, the corresponding symbol can't be 
# used. For the positive itms, if all of them are false in the environment, 
# the corresponding symbol can't be used. Any combination of positive and 
# negative items are possible, and of course leave room for some redundancy. 
# - "kind" is "FUNCTION" or "VARIABLE". The meaning of that is obvious. 
# - "algorithms" is a comma-separated list of algorithm names. This helps 
# exclude symbols that are part of an algorithm that some user wants to 
# exclude. 
-1

OpenSSL 1.0.2g kullanarak aynı sorunu vardı - Eksik fonksiyonu "SSLv2_client_method" idi (113, eksik sıralı mesaj off-by gibi görünüyor -bir). 1.0.2f ve 1.0.2g [1 Mar 2016]

  • Devre Dışı SSLv2 varsayılan yapı, varsayılan müzakere ve zayıf şifrelerin arasında

    değişiklikler. SSLv2, yapı zamanında varsayılan olarak devre dışıdır. "Enable-ssl2" ile yapılandırılmamış olan yapılar SSLv2'yi desteklemez.

İlgili konular