http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
Debian 11 x86_64.
Пакет не отлаживал, почти по debian/rules.
> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
> Debian 11 x86_64.
> Пакет не отлаживал, почти по debian/rules.Пакеты тамже
http://www.tinyware.ru/garbage/
По проблемме dlopen.
Возьмем тестовую библиотеку без зависимостей ldd:
cat > liba.cdouble 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И чего он нас предупреждает, если потянул бы рантайм от библиотеки а не от самого бинарника?
А glibc чем не угодила я так и не понял....
Бывают системы с uClibc и без glibc.
> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
> Debian 11 x86_64.
> Пакет не отлаживал, почти по debian/rules.Молодцы ребятя!!! Атака на /home успешна!!!! Пришлось роутер перезагружать и профиль файерфокса удалять...
>> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
>> Debian 11 x86_64.
>> Пакет не отлаживал, почти по debian/rules.
> Молодцы ребятя!!! Атака на /home успешна!!!! Пришлось роутер перезагружать и профиль файерфокса
> удалять...Короче хакнули, молодцы. Говенный бытовой роутер. Предложу вам че по серьезней чуть попозже.