2017-02-22 19 views
0

У меня есть двоичный файл, который я пытаюсь запустить, что, кажется, специально требует OPENSSL_1.0.0 версии 4:Как построить Openssl_1.0.0 версию 4

Version needs section '.gnu.version_r' contains 2 entries: 
Addr: 0x00000000080486ac Offset: 0x0006ac Link: 6 (.dynstr) 
    000000: Version: 1 File: libcrypto.so.1.0.0 Cnt: 1 
    0x0010: Name: OPENSSL_1.0.0 Flags: none Version: 4 

Я проверил исходный код из OpenSSL мерзавца и построил 1.0.0-stable, но не может понять, как конкретно построить то, что нужно бинарному.

Какой выпуск я должен проверить из репозитория openssl и как его скомпилировать, чтобы он мог использоваться этим двоичным кодом?

Вот другие, возможно, relivant поля от его эльф заголовок:

ELF Header: 
    Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
    Class:        ELF32 
    Data:        2's complement, little endian 
    Version:       1 (current) 
    OS/ABI:       UNIX - System V 
    ABI Version:      0 
    Type:        EXEC (Executable file) 
    Machine:       Intel 80386 
    Version:       0x1 
    Entry point address:    0x804a6e0 
    Start of program headers:   52 (bytes into file) 
    Start of section headers:   214412 (bytes into file) 
    Flags:        0x0 
    Size of this header:    52 (bytes) 
    Size of program headers:   32 (bytes) 
    Number of program headers:   9 
    Size of section headers:   40 (bytes) 
    Number of section headers:   37 
    Section header string table index: 34 


Relocation section '.rel.plt' at offset 0x73c contains 37 entries: 
Offset  Info Type   Sym.Value Sym. Name 
0805b038 00000d07 R_386_JUMP_SLOT 00000000 [email protected]_1.0.0 

Dynamic section at offset 0x11f0c contains 25 entries: 
    Tag  Type       Name/Value 
0x00000001 (NEEDED)      Shared library: [libcrypto.so.1.0.0] 

Symbol table '.dynsym' contains 43 entries: 
    Num: Value Size Type Bind Vis  Ndx Name  
    13: 00000000  0 FUNC GLOBAL DEFAULT UND [email protected]_1.0.0 (4) 

Version symbols section '.gnu.version' contains 43 entries: 
Addr: 0000000008048656 Offset: 0x000656 Link: 5 (.dynsym) 
    00c: 2 (GLIBC_2.0)  4 (OPENSSL_1.0.0) 2 (GLIBC_2.0)  0 (*local*) 
+0

Я считаю, что SONAME 'OPENSSL_1.0.0' - это строка OpenSSL 1.0.x. Эта строка включает OpenSSL 1.0.1 и 1.0.2. Оформить заказ 'OpenSSL_1_0_2-stable'. Также см. [Стратегия выпуска] (https://www.openssl.org/policies/releasestrat.html) на веб-сайте OpenSSL. – jww

ответ

1

версии вы видите, не версия библиотеки, но (произвольная) версия символа в таблице. Как уже отмечалось, это относится к OPENSSL_1.0.0, который является строкой версии символа, и относится к ветви релиза 1.0.x.

См. https://blog.flameeyes.eu/2011/06/gold-readiness-obstacle-2-base-versioning/ для одной случайной ссылки на управление версиями символов, о которой я писал ранее.

Смежные вопросы