The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"По поводу статической линковки sqlite3"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"По поводу статической линковки sqlite3"  +/
Сообщение от GOrilla (?), 06-Янв-23, 13:10 
http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
Debian 11 x86_64.
Пакет не отлаживал, почти по debian/rules.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "По поводу статической линковки sqlite3"  +/
Сообщение от GOrilla (?), 06-Янв-23, 13:20 
> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
> Debian 11 x86_64.
> Пакет не отлаживал, почти по debian/rules.

Пакеты тамже
http://www.tinyware.ru/garbage/

Ответить | Правка | Наверх | Cообщить модератору

2. "По поводу статической линковки sqlite3"  +/
Сообщение от GOrilla (?), 06-Янв-23, 15:40 
По проблемме dlopen.
Возьмем тестовую библиотеку без зависимостей ldd:

cat > liba.c

double cos(double arg)
{
    return 4.1234567890;
}

mkdir lib
gcc -shared liba.c -o lib/liba.so

Возьмем тестовую программу из man dlopen:


cat > test.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
#define LIBM_SO "liba.so"
       int
       main(void)
       {
           void *handle;
           double (*cosine)(double);
           char *error;

           handle = dlopen(LIBM_SO, RTLD_LAZY);
           if (!handle) {
               fprintf(stderr, "%s\n", dlerror());
               exit(EXIT_FAILURE);
           }

           dlerror();    /* Clear any existing error */

           cosine = (double (*)(double)) dlsym(handle, "cos");

           /* According to the ISO C standard, casting between function
              pointers and 'void *', as done above, produces undefined results.
              POSIX.1-2001 and POSIX.1-2008 accepted this state of affairs and
              proposed the following workaround:

                  *(void **) (&cosine) = dlsym(handle, "cos");

              This (clumsy) cast conforms with the ISO C standard and will
              avoid any compiler warnings.

              The 2013 Technical Corrigendum 1 to POSIX.1-2008 improved matters
              by requiring that conforming implementations support casting
              'void *' to a function pointer.  Nevertheless, some compilers
              (e.g., gcc with the '-pedantic' option) may complain about the
              cast used in this program. */

           error = dlerror();
           if (error != NULL) {
               fprintf(stderr, "%s\n", error);
               exit(EXIT_FAILURE);
           }

           printf("%f\n", (*cosine)(2.0));
           dlclose(handle);
           exit(EXIT_SUCCESS);
       }
gcc -static test.c -ld
/usr/bin/ld: /tmp/ccpQ2mA7.o: в функции «main»:
test2.c:(.text+0x15): предупреждение: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

Запуститм в chroot е без каких-либо рантаймов.


sudo chroot . ./a.out
4.123457

И чего он нас предупреждает, если потянул бы рантайм от библиотеки а не от самого бинарника?

Ответить | Правка | Наверх | Cообщить модератору

3. "По поводу статической линковки sqlite3"  +/
Сообщение от GOrilla (?), 06-Янв-23, 15:47 
А glibc чем не угодила я так и не понял....

Ответить | Правка | Наверх | Cообщить модератору

4. "По поводу статической линковки sqlite3"  +/
Сообщение от ACCA (ok), 06-Янв-23, 19:39 
Бывают системы с uClibc и без glibc.
Ответить | Правка | Наверх | Cообщить модератору

5. "По поводу статической линковки sqlite3"  +/
Сообщение от GOrilla (?), 07-Янв-23, 15:13 
> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
> Debian 11 x86_64.
> Пакет не отлаживал, почти по debian/rules.

Молодцы ребятя!!! Атака на /home успешна!!!! Пришлось роутер перезагружать и профиль файерфокса удалять...

Ответить | Правка | Наверх | Cообщить модератору

6. "По поводу статической линковки sqlite3"  +/
Сообщение от GOrilla (?), 07-Янв-23, 15:49 
>> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
>> Debian 11 x86_64.
>> Пакет не отлаживал, почти по debian/rules.
> Молодцы ребятя!!! Атака на /home успешна!!!! Пришлось роутер перезагружать и профиль файерфокса
> удалять...

Короче хакнули, молодцы. Говенный бытовой роутер. Предложу вам че по серьезней чуть попозже.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2023 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру